共找到2條詞條名為腳本語言的結果 展開

腳本語言

一種編程語言

腳本語言又被稱為擴建的語言,或者動態語言,是一種編程語言,用來控制軟體應用程序,腳本通常以文本(如ASCII)保存,只在被調用時進行解釋或編譯。

概述


定義

腳本語言(Script languages,scripting programming languages,scripting languages)是為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。此命名起源於一個腳本“screenplay”,每次運行都會使對話框逐字重複。早期的腳本語言經常被稱為批處理語言或工作控制語言。一個腳本通常是解釋運行而非編譯。雖然許多腳本語言都超越了計算機簡單任務自動化的領域,成熟到可以編寫精巧的程序,但仍然還是被稱為腳本。幾乎所有計算機系統的各個層次都有一種腳本語言。包括操作系統層,如計算機遊戲,網路應用程序,文字處理文檔,網路軟體等。在許多方面,高級編程語言和腳本語言之間互相交叉,二者之間沒有明確的界限。一個腳本可以使得本來要用鍵盤進行的相互式操作自動化。一個Shell腳本主要由原本需要在命令行輸入的命令組成,或在一個文本編輯器中,用戶可以使用腳本來把一些常用的操作組合成一組序列。主要用來書寫這種腳本的語言叫做腳本語言。很多腳本語言實際上已經超過簡單的用戶命令序列的指令,還可以編寫更複雜的程序。

簡介

腳本語言是為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。它的命名起源於一個腳本“screenplay”,每次運行都會使對話框逐字重複。早期的腳本語言經常被稱為批量處理語言或工作控制語言。
一個腳本通常是解釋執行而非編譯。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序員快速完成程序的編寫工作。而宏語言則可視為腳本語言的分支,兩者也有實質上的相同之處。

特點

1、腳本語言(JavaScript,VBscript等)介於HTML和C,C++,Java,C#等編程語言之間。 HTML通常用于格式化和鏈接文本。而編程語言通常用於向機器發出一系列複雜的指令。
2、腳本語言與編程語言也有很多相似地方,其函數與編程語言比較相像一些,其也涉及到變數。與編程語言之間最大的區別是編程語言的語法和規則更為嚴格和複雜一些.
3、與程序代碼的關係:腳本也是一種語言,其同樣由程序代碼組成。
4、腳本語言是一種解釋性的語言,例如Python、vbscript,javascript,installshield script,ActionScript等等,它不象c\c++等可以編譯成二進位代碼,以可執行文件的形式存在,腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。
5、腳本語言一般都是以文本形式存在,類似於一種命令。
舉個例子說:如果建立了一個程序,叫aaa.exe,可以打開.aa為擴展名的文件,為.aa文件的編寫指定了一套規則(語法),當別人編寫了.aa文件后,自己的程序用這種規則來理解編寫人的意圖,並作出回應,那麼,這一套規則就是腳本語言。
6、相對於編譯型計算機編程語言:用腳本語言開發的程序在執行時,由其所對應的解釋器(或稱虛擬機)解釋執行。系統程序設計語言是被預先編譯成機器語言而執行的。腳本語言的主要特徵是:程序代碼即是腳本程序,亦是最終可執行文件。腳本語言可分為獨立型和嵌入型,獨立型腳本語言在其執行時完全依賴於解釋器,而嵌入型腳本語言通常在編程語言中(如C,C++,VB,Java等)被嵌入使用。
7、和系統程序設計語言相比:不同是腳本語言是被解釋而系統程序設計語言是被編譯。被解釋的語言由於沒有編譯時間而提供快速的轉換,通過允許用戶運行時編寫應用程序,而不需要耗時的編譯/打包過程。解釋器使應用程序更加靈活,腳本語言的代碼能夠被實時生成和執行。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序設計師快速完成程序的編寫工作。

優缺點


優點

快速開發:腳本語言極大地簡化了“開發、部署、測試和調試”的周期過程。
容易部署:大多數腳本語言都能夠隨時部署,而不需要耗時的編譯/打包過程。
同已有技術的集成:腳本語言被Java或者COM這樣的組件技術所包圍,因此能夠有效地利用代碼。
易學易用:很多腳本語言的技術要求通常要低一些,因此能夠更容易地找到大量合適的技術人員。
動態代碼:腳本語言的代碼能夠被實時生成和執行,這是一項高級特性,在某些應用程序里(例如JavaScript里的動態類型)是很有用也是必需的。

缺點

腳本語言不夠全面:它們會要求一門“真正的”編程語言的存在,必須找一個資料庫驅動程序將其內置進腳本語言里。
腳本語言並不是軟體工程和構建代碼結構的最佳選擇,例如面向對象和基於組件的開發。
腳本語言通常不是“通用”語言,但是能夠根據專門的應用來調整,例如:PHP。

應用和發展


應用

(1):作為批次處理語言或工作控制語言。許多腳本語言用來執行一次性任務,尤其是系統管理方面。DOS,Windows的批處理文件和Unix的shell腳本都屬於這種應用;
(2):作為通用的編程語言存在,如Perl、Python、Ruby等。由於“解釋執行,內存管理,動態”等特性,它們仍被稱為腳本語言。但它們已經用於應用程序編寫,用戶也不把它們看作腳本語言;
(3):許多大型的應用程序都包括根據用戶需求而定製的慣用腳本語言。同樣地,許多電腦遊戲系統使用一種自定義腳本語言來表現NPC(Non-Player Character,Non-Playable Character,Non-Player Class)和遊戲環境的預編程動作。此類語言通常是為一個單獨的應用程序所設計,雖然它們貌似一些通用語言(如Quake C,Modeled After C),但它們有自定義的功能;
(4):網頁中的嵌入式腳本語言。熟知的HTML(Hyper Text Mark-up Language)即超文本標記語言,就是一種腳本語言,它的解釋器就是瀏覽器。JavaScript直到現在仍然是網頁瀏覽器內的主要編程語言,它的ECMAScript標準化保證了它成為流行的通用嵌入式腳本語言。另外,隨著動態網頁技術發展,ASP、JSP、PHP等嵌入網頁的腳本語言正被廣泛使用,不過這些腳本要通過Web Server解釋,而Html則被瀏覽器執行;
(5):腳本語言在系統應用程序中嵌入使用,作為用戶與系統的介面方式。在工業控制領域,PLC編程、組態軟體的腳本語言是擴充組態系統功能的重要手段;在通信平台領域,IVR(自動語音應答)流程編程;Office辦公軟體,提供的宏和VBA;其他應用軟體如ER Studio提供的Basic MacroEditor,用戶可以編寫Sax Basic腳本操作ER圖,生成Access庫、導出Word文檔等擴展功能。

發展情況

腳本技術得益於計算機硬體的加速發展。某些情況下甚至系統程序設計語言也不夠有效,因此不得不用彙編編寫應用程序。而今的機器比1980年的快100~500倍,且仍在以每18個月翻一番的速度增長。計算機性能快速提高,使計算機程序越來越複雜。因此,開發時間已遠比運行時間緊迫。這時,腳本語言作為系統程序設計語言的補充,開始被主要的計算機平台所同時提供。編程語言已經由性能低下的硬體與執行效率之間的矛盾,轉變為快速變化的市場需要與低效的開發工具之間的矛盾,所以腳本語言的發展在軟體開發中有著必然的趨勢。

腳本語言分類


工作控制語言和shell
Shell 腳本
此類腳本用於自動化工作控制,即啟動和控制系統程序的行為。大多的腳本語言解釋器也同時是命令行界面,如Unix shell和MS-DOS command。其他如AppleScript,可以為系統增加腳本環境,但沒有命令行界面。
具體分類有:
1.4NT
2.AppleScript
3.ARexx(Amiga Rexx)
4.bash
5.csh
6.DCL
7.JCL
8.ksh
9.Cmd.exe batch(Windows,OS/2)
10.command batch(DOS)
11.REXX
12.tcsh
13.sh
14.Winbatch
15.Windows PowerShell
16.Windows Script Host
17.zsh
GUI 腳本
GUI出現帶來一種專業的控制計算機的腳本語言。它在用戶和圖形界面,菜單,按鈕等之間互動。它經常用來自動化重複性動作,或設置一個標準狀態。理論上它可以用來控制運行於基於GUI的計算機上的所有應用程序,但實際上這些語言是否被支持還要看應用程序和操作系統本身。當通過鍵盤進行互動時,這些語言也被稱為宏語言。
具體分類有:
1.AutoHotkey
2.AutoIt
3.Expect
應用程序定製的腳本語言
許多大型的應用程序都包括根據用戶需求而定製的慣用腳本語言。同樣地,許多電腦遊戲系統使用一種自定義腳本語言來表現NPC(non-player character,non-playable character,non-player class)和遊戲環境的預編程動作。
此類語言通常是為一個單獨的應用程序所設計,雖然它們貌似一些通用語言(如QuakeC, modeled after C),但它們有自定義的功能。
具體分類:
1.Action Code Script
2.ActionScript
3.AutoLISP
4.BlobbieScript
5.Emacs Lisp
6.Game Maker Language
7.HyperTalk
8.IPTSCRAE
9.IRC script
10.Lingo
11.Matlab Embedded Language
12.Maya Embedded Language
13.mIRC script
14.NWscript
15.QuakeC
16.UnrealScript
17.Visual Basic for Applications
18.VBScript
19.ZZT-oop
WEB編程腳本
應用程序定製的腳本語言中有一種重要的類別,用於提供WEB頁面的自定義功能。它專業處理網際網路通信,使用網頁瀏覽器作為用戶界面。當然,大多現代WEB編程語言都比較強大可以做一些通用編程。
具體分類:
1.ColdFusion(Application Server)
2.Lasso
3.Miva
4.SMX
5.IPTSCRAE-一些網路開發團隊用於創建論壇的工具
文本處理語言
處理基於文本的記錄是腳本語言最早的用處之一。如Unix's awk最早是設計來幫助系統管理員處理調用UNIX基於文本的配置和LOG文件。Perl最早是用來產生報告的,現在它已經成了全面成熟的語言。
具體分類:
1.Awk
2.Perl
3.sed
4.XSLT
通用動態語言
一些語言,比如Perl,從一門腳本語言發展成了更通用的編程語言。
1.APL
2.Dao
3.Dylan
4.Groovy
5.Lua
6.MUMPS(M)
7.newLISP
8.Nuva
9.Perl
10.PHP
11.Python
12.Ruby
13.Scheme
14.Smalltalk
15.SuperCard
16.Tcl(Tool command language)
擴展/可嵌入語言
少數的語言被設計通過嵌入應用程序來取代應用程序定製的腳本語言。開發者(如使用C等其它系統語言)包入使腳本語言可以控制應用程序的hook。這些語言和應用程序定製的腳本語言是同種用途,但優點在於可以在應用程序之間傳遞一些技能。
具體分類:
1.Ch(C/C++ interpreter)
2.Dao
3.ECMAScript亦稱DMDScript,JavaScript,JScript
4.GameMonkeyScript
5.Guile
6.ICI
7.Lua
8.RBScript(REALbasic Script)
9.Squirrel
10.Tcl
11.Z-Script
JavaScript直到現在仍然是網頁瀏覽器內的主要編程語言,它的ECMAScript標準化保證了它成為流行的通用嵌入性語言。
Tcl作為一種擴展性語言而創建,但更多地被用作通用性語言,就如同Python, Perl, Ruby一樣。

其它


1.BeanShell(scripting for Java)
2.CobolScript
3.Escapade (server side scripting)
4.Euphoria
5.F-Script
6.Ferite
7.Groovy
8.Gui4Cli
9.Io
10.KiXtart
11.Mondrian
12.Object REXX
13.Pike
14.Pliant
15.REBOL
16.ScriptBasic
17.Shorthand Language
18.Simkin
19.Sleep
20.StepTalk
21.Visual DialogScript

常見腳本語言


• C Shell
• JavaScript
• Nuva
• Perl
• PHP
• Python
• Ruby
• Tcl
• VBScript
• CSS