✔ 最佳答案
腳本語言(Script languages,scripting programming languages,scripting languages)是為了縮短傳統的編寫-編譯-連結-運行(edit-compile-link-run)過程而創建的電腦程式語言。此命名起源於一個腳本「screenplay」,每次運行都會使對話框逐字重複。早期的腳本語言經常被稱為批處理語言或工作控制語言。一個腳本通常是解釋運行而非編譯。
雖然許多腳本語言都超越了電腦簡單任務自動化的領域,成熟到可以編寫精巧的程序,但仍然還是被稱為腳本。幾乎所有電腦系統的各個層次都有一種腳本語言。包括作業系統層,如電腦遊戲,網路應用程序,字處理文檔,網路軟體等。在許多方面,高級程式語言和腳本語言之間互相交叉,二者之間沒有明確的界限。
一個腳本可以使得本來要用鍵盤進行的相互式操作自動化。一個Shell腳本主要由原本需要在命令行輸入的命令組成,或在一個文本編輯器中,用戶可以使用腳本來把一些常用的操作組合成一組序列。主要用來書寫這種腳本的語言叫做腳本語言。很多腳本語言實際上已經超過簡單的用戶命令序列的指令,還可以編寫更複雜的程序。
定義
電腦語言是為了各種目的和任務而開發的,一個常見任務就是把各種不同的已有組件連接起來以完成相關任務。大多腳本語言共性是:良好的快速開發,高效率的執行,解釋而非編譯執行,和其它語言編寫的程序組件之間通信功能很強大。
許多腳本語言用來執行一次性任務,尤其是系統管理方面。它可以把服務組件粘合起來,因此被廣泛用於GUI創建或者命令行,作業系統通常提供一些預設的腳本語言,即通常所謂shell腳本語言。
腳本通常以文本(如ASCII)保存,只在被調用時進行解釋或編譯。
有些腳本是為了特定領域設計的,但通常腳本都可以寫更通用的腳本。在大型項目中經常把腳本和其它低級程式語言一起使用,各自發揮優勢解決特定問題。腳本經常用於設計互動通信,它有許多可以單獨執行的命令,可以做很高級的操作,(如在傳統的UNIX shell (sh)中,大多操作就是程序本身。)
這些高級命令簡化了代碼編寫過程。諸如記憶體自動管理和溢出檢查等性能問題可以不用考慮。在更低級或非腳本語言中,記憶體及變數管理和資料結構等耗費人工,為解決一個給定問題需要大量代碼,當然這樣能夠獲得更為細緻的控制和優化。腳本缺少優化程序以提速或者降低記憶體的伸縮性。
綜上所述,腳本編程速度更快,且腳本文件明顯小於如同類C程序文件。這種靈活性是以執行效率為代價的。腳本通常是解釋執行的,速度可能很慢,且運行時更耗記憶體。在很多案例中,如編寫一些數十行的小腳本,它所帶來的編寫優勢就遠遠超過了運行時的劣勢,尤其是在當前程式設計師工資趨高和硬體成本趨低時。
然而,在腳本和傳統程式語言之間的界限越來越模糊,尤其是在一系列新語言及其集成暢出現時。在一些腳本語言中,有經驗的程式設計師可以進行大量優化工作。在大多現代系統中通常有多種合適的腳本語言可以選擇,所以推薦使用多種語言(包括C或彙編語言)編寫一種腳本。