Can you summarize the following document?
        
  指令碼語言是一種計算機程式語言,因此也能讓開發者藉以編寫出讓電腦聽命行事的程式。以簡單的方式快速完成某些複雜的事情通常是創造指令碼語言的重要原則,基於這項原則,使得指令碼語言通常比C語言、C++語言或 Java之類的系統程式語言要簡單容易,也讓指令碼語言另有一些屬於指令碼語言的特性:  一個指令碼可以使得本來要用鍵盤進行的相互式操作自動化。一個Shell指令碼主要由原本需要在命令列輸入的命令組成,或在一個文字編輯器中,使用者可以使用指令碼來把一些常用的操作組合成一組序列。主要用來書寫這種指令碼的語言叫做指令碼語言。很多指令碼語言實際上已經超過簡單的使用者命令序列的指令,還可以編寫更復雜的程式。

  計算機語言是為了各種目的和任務而開發的,一個常見任務就是把各種不同的已有元件連線起來以完成相關任務。大多指令碼語言共性是:良好的快速開發,有效率的執行,解釋而非編譯執行,和其它語言編寫的程式元件之間通訊功能很強大。  許多指令碼語言用來執行一次性任務,尤其是系統管理方面。它可以把服務元件粘合起來,因此被廣泛用於GUI建立或者命令列,作業系統通常提供一些預設的指令碼語言,即通常所謂shell指令碼語言。  指令碼通常以文字(如ASCII)儲存,只在被呼叫時進行解釋或編譯。  有些指令碼是為了特定領域設計的,但通常指令碼都可以寫更通用的指令碼。在大型專案中經常把指令碼和其它低階程式語言一起使用,各自發揮優勢解決特定問題。指令碼經常用於設計互動通訊,它有許多可以單獨執行的命令,可以做很高階的操作,(如在傳統的Unix shell(sh)中,大多操作就是程式本身。)  這些高階命令簡化了程式碼編寫過程。諸如記憶體自動管理和溢位檢查等效能問題可以不用考慮。在更低階或非指令碼語言中,記憶體及變數管理和資料結構等耗費人工,為解決一個給定問題需要大量程式碼,當然這樣能夠獲得更為細緻的控制和優化。指令碼缺少優化程式以提速或者降低記憶體的伸縮性。  綜上所述,指令碼程式設計速度更快,且指令碼檔案明顯小於如同類C程式檔案。這種靈活性是以執行效率為代價的。指令碼通常是解釋執行的,速度可能很慢,且執行時更耗記憶體。在很多案例中,如編寫一些數十行的小指令碼,它所帶來的編寫優勢就遠遠超過了執行時的劣勢,尤其是在當前程式設計師工資趨高和硬體成本趨低時。  然而,在指令碼和傳統程式語言之間的界限越來越模糊,尤其是在一系列新語言及其整合常出現時。在一些指令碼語言中,有經驗的程式設計師可以進行大量優化工作。在大多現代系統中通常有多種合適的指令碼語言可以選擇,所以推薦使用多種語言(包括C或者組合語言)編寫一種指令碼。

  

  此類指令碼用於自動化工作控制,即啟動和控制系統程式的行為。大多的指令碼語言直譯器也同時是命令列介面,如Unix shell和MS-DOS COMMAND.COM。其他如AppleScript,可以為系統增加指令碼環境,但沒有命令列介面。  具體包括:

  GUI出現帶來一種專業的控制計算機的指令碼語言。它在使用者和圖形介面,選單,按鈕等之間互動。它經常用來自動化重複性動作,或設定一個標準狀態。理論上它可以用來控制執行於基於GUI的計算機上的所有應用程式,但實際上這些語言是否被支援還要看應用程式和作業系統本身。當通過鍵盤進行互動時,這些語言也被稱為巨集語言。  具體包括:

  許多大型的應用程式都包括根據使用者需求而定製的慣用指令碼語言。同樣地,許多電腦遊戲系統使用一種自定義指令碼語言來表現NPC(non-player character,non-playable character,non-player class)和遊戲環境的預程式設計動作。  此類語言通常是為一個單獨的應用程式所設計,雖然它們貌似一些通用語言(如QuakeC, modeled after C),但它們有自定義的功能。  具體包括:

  應用程式定製的指令碼語言中有一種重要的類別,用於提供WEB頁面的自定義功能。它專業處理網際網路通訊,使用網頁瀏覽器作為使用者介面。當然,大多現代WEB程式語言都比較強大可以做一些通用程式設計。  具體包括:

  處理基於文字的記錄是指令碼語言最早的用處之一。如Unix's awk最早是設計來幫助系統管理員處理呼叫UNIX基於文字的配置和LOG檔案。Perl最早是用來產生報告的,現在它已經成了全面成熟的語言。  具體包括:

  一些語言,比如Perl,從一門指令碼語言發展成了更通用的程式語言。由於“解釋執行,記憶體管理,動態”等特性,它們仍被稱為指令碼語言。但它們已經用於應用程式編寫,使用者也不把它們看作指令碼語言。

  少數的語言被設計通過嵌入應用程式來取代應用程式定製的指令碼語言。開發者(如使用C等其它系統語言)包入使指令碼語言可以控制應用程式的hook。這些語言和應用程式定製的指令碼語言是同種用途,但優點在於可以在應用程式之間傳遞一些技能。  具體包括:  JavaScript直到現在仍然是網頁瀏覽器內的主要程式語言,它的ECMAScript標準化保證了它成為流行的通用嵌入性語言。  Tcl作為一種擴充套件性語言而建立,但更多地被用作通用性語言,就如同Python, Perl, Ruby一樣。
指令碼語言(英語:Scripting language)是為了縮短傳統的「編寫、編譯、連結、執行」(edit-compile-link-run)過程而建立的計算機程式語言。早期的指令碼語言經常被稱為批處理語言或工作控制語言。一個指令碼通常是解釋執行而非編譯。指令碼語言通常都有簡單、易學、易用的特性,目的就是希望能讓程式設計師快速完成程式的編寫工作。而巨集語言則可視為指令碼語言的分支,兩者也有實質上的相同之處。