百科解釋
目錄·源起與目的·定義·腳本語言分類·常見的腳本語言 腳本語言(s cript language,s cripting language,s cripting programming language)是為了縮短傳統(tǒng)的編寫-編譯-鏈接-運(yùn)行(edit-compile-link-run)過程而創(chuàng)建的計(jì)算機(jī)編程語言。此命名起源于一個(gè)腳本“screenplay”,每次運(yùn)行都會(huì)使對話框逐字重復(fù)。早期的腳本語言經(jīng)常被稱為批次處理語言或工作控制語言。一個(gè)腳本通常是解釋運(yùn)行而非編譯。腳本語言通常都有簡單、易學(xué)、易用的特性,目的就是希望能讓程序設(shè)計(jì)師快速完成程序的編寫工作。而宏語言則可視為腳本語言的分支,兩者也實(shí)質(zhì)上的相同之處。 雖然許多腳本語言都超越了計(jì)算機(jī)簡單任務(wù)自動(dòng)化的領(lǐng)域,成熟到可以編寫精巧的程序,但仍然還是被稱為腳本。幾乎所有計(jì)算機(jī)系統(tǒng)的各個(gè)層次都有一種腳本語言。包括操作系統(tǒng)層,如計(jì)算機(jī)游戲,網(wǎng)絡(luò)應(yīng)用程序,字處理文檔,網(wǎng)絡(luò)軟件等。在許多方面,高級(jí)編程語言和腳本語言之間互相交叉,二者之間沒有明確的界限。 源起與目的 腳本語言是計(jì)算機(jī)編程語言,因此也能讓開發(fā)者藉以編寫出讓計(jì)算機(jī)聽命行事的程序。以簡單的方式快速完成某些復(fù)雜的事情通常是創(chuàng)造腳本語言的重要原則,基于這項(xiàng)原則,使得腳本語言通常比 C語言、C++語言 或 Java 之類的系統(tǒng)編程語言要簡單容易,也讓腳本語言另有一些屬于腳本語言的特性: 語法和結(jié)構(gòu)通常比較簡單 學(xué)習(xí)和使用通常比較簡單 通常以容易修改程序的“解釋”作為執(zhí)行方式,而不需要“編譯” 程序的開發(fā)產(chǎn)能優(yōu)于執(zhí)行效能 一個(gè)腳本可以使得本來要用鍵盤進(jìn)行的相互式操作自動(dòng)化。一個(gè)Shell腳本主要由原本需要在命令行輸入的命令組成,或在一個(gè)文本編輯器中,用戶可以使用腳本來把一些常用的操作組合成一組序列。主要用來書寫這種腳本的語言叫做腳本語言。很多腳本語言實(shí)際上已經(jīng)超過簡單的用戶命令序列的指令,還可以編寫更復(fù)雜的程序。 定義 計(jì)算機(jī)語言是為了各種目的和任務(wù)而開發(fā)的,一個(gè)常見任務(wù)就是把各種不同的已有組件連接起來以完成相關(guān)任務(wù)。大多腳本語言共性是:良好的快速開發(fā),高效率的執(zhí)行,解釋而非編譯執(zhí)行,和其它語言編寫的程序組件之間通信功能很強(qiáng)大。 許多腳本語言用來執(zhí)行一次性任務(wù),尤其是系統(tǒng)管理方面。它可以把服務(wù)組件粘合起來,因此被廣泛用于GUI創(chuàng)建或者命令行,操作系統(tǒng)通常提供一些默認(rèn)的腳本語言,即通常所謂shell腳本語言。 腳本通常以文本(如ASCII)保存,只在被調(diào)用時(shí)進(jìn)行解釋或編譯。 有些腳本是為了特定領(lǐng)域設(shè)計(jì)的,但通常腳本都可以寫更通用的腳本。在大型項(xiàng)目中經(jīng)常把腳本和其它低級(jí)編程語言一起使用,各自發(fā)揮優(yōu)勢解決特定問題。腳本經(jīng)常用于設(shè)計(jì)互動(dòng)通信,它有許多可以單獨(dú)執(zhí)行的命令,可以做很高級(jí)的操作,(如在傳統(tǒng)的Unix shell (sh)中,大多操作就是程序本身。) 這些高級(jí)命令簡化了代碼編寫過程。諸如內(nèi)存自動(dòng)管理和溢出檢查等性能問題可以不用考慮。在更低級(jí)或非腳本語言中,內(nèi)存及變量管理和數(shù)據(jù)結(jié)構(gòu)等耗費(fèi)人工,為解決一個(gè)給定問題需要大量代碼,當(dāng)然這樣能夠獲得更為細(xì)致的控制和優(yōu)化。腳本缺少優(yōu)化程序以提速或者降低內(nèi)存的伸縮性。 綜上所述,腳本編程速度更快,且腳本文件明顯小于如同類C程序文件。這種靈活性是以執(zhí)行效率為代價(jià)的。腳本通常是解釋執(zhí)行的,速度可能很慢,且運(yùn)行時(shí)更耗內(nèi)存。在很多案例中,如編寫一些數(shù)十行的小腳本,它所帶來的編寫優(yōu)勢就遠(yuǎn)遠(yuǎn)超過了運(yùn)行時(shí)的劣勢,尤其是在當(dāng)前程序員工資趨高和硬件成本趨低時(shí)。 然而,在腳本和傳統(tǒng)編程語言之間的界限越來越模糊,尤其是在一系列新語言及其集成暢出現(xiàn)時(shí)。在一些腳本語言中,有經(jīng)驗(yàn)的程序員可以進(jìn)行大量優(yōu)化工作。在大多現(xiàn)代系統(tǒng)中通常有多種合適的腳本語言可以選擇,所以推薦使用多種語言(包括C或匯編語言)編寫一種腳本。 腳本語言分類 工作控制語言和shell Shell 腳本 此類腳本用于自動(dòng)化工作控制,即啟動(dòng)和控制系統(tǒng)程序的行為。大多的腳本語言解釋器也同時(shí)是命令行界面,如Unix shell和MS-DOS COMMAND.COM。其他如Apples cript,可以為系統(tǒng)增加腳本環(huán)境,但沒有命令行界面。 具體分類有: 4NT Apples cript ARexx (Amiga Rexx) bash csh DCL JCL ksh Cmd.exe batch (Windows, OS/2) Command.com batch (DOS) REXX tcsh sh Winbatch Windows PowerShell Windows s cript Host zsh GUI 腳本 GUI出現(xiàn)帶來一種專業(yè)的控制計(jì)算機(jī)的腳本語言。它在用戶和圖形界面,菜單,按鈕等之間互動(dòng)。它經(jīng)常用來自動(dòng)化重復(fù)性動(dòng)作,或設(shè)置一個(gè)標(biāo)準(zhǔn)狀態(tài)。理論上它可以用來控制運(yùn)行于基于GUI的計(jì)算機(jī)上的所有應(yīng)用程序,但實(shí)際上這些語言是否被支持還要看應(yīng)用程序和操作系統(tǒng)本身。當(dāng)通過鍵盤進(jìn)行互動(dòng)時(shí),這些語言也被稱為宏語言。 具體分類有: AutoHotkey AutoIt Expect 應(yīng)用程序定制的腳本語言 許多大型的應(yīng)用程序都包括根據(jù)用戶需求而定制的慣用腳本語言。同樣地,許多電腦游戲系統(tǒng)使用一種自定義腳本語言來表現(xiàn)NPC(non-player character,non-playable character,non-player class)和游戲環(huán)境的預(yù)編程動(dòng)作。 此類語言通常是為一個(gè)單獨(dú)的應(yīng)用程序所設(shè)計(jì),雖然它們貌似一些通用語言(如QuakeC, modeled after C),但它們有自定義的功能。 具體分類: Action Code s cript Actions cript AutoLISP Blobbies cript [1] Emacs Lisp Game Maker Language HyperTalk IPTSCRAE IRC s cript Lingo Maya Embedded Language mIRC s cript NWs cript QuakeC Unreals cript Visual Basic for Applications VBs cript ZZT-oop web編程腳本 應(yīng)用程序定制的腳本語言中有一種重要的類別,用于提供WEB頁面的自定義功能。它專業(yè)處理互聯(lián)網(wǎng)通信,使用網(wǎng)頁瀏覽器作為用戶界面。當(dāng)然,大多現(xiàn)代WEB編程語言都比較強(qiáng)大可以做一些通用編程。 具體分類: ColdFusion (Application Server) Lasso Miva SMX IPTSCRAE-一些網(wǎng)絡(luò)開發(fā)團(tuán)隊(duì)用于創(chuàng)建論壇的工具 Text processing languages 處理基于文本的記錄是腳本語言最早的用處之一。如Unix''''s awk最早是設(shè)計(jì)來幫助系統(tǒng)管理員處理調(diào)用UNIX基于文本的配置和LOG文件。PERL最早是用來產(chǎn)生報(bào)告的,現(xiàn)在它已經(jīng)成了全面成熟的語言。 具體分類: AWK Perl sed XSLT 通用動(dòng)態(tài)語言 一些語言,比如PERL,從一門腳本語言發(fā)展成了更通用的編程語言。由于“解釋執(zhí)行,內(nèi)存管理,動(dòng)態(tài)”等特性,它們?nèi)员环Q為腳本語言。但它們已經(jīng)用于應(yīng)用程序編寫,用戶也不把它們看作腳本語言。 APL Dylan Groovy MUMPS (M) newLISP Nuva Perl PHP Python Ruby Scheme Smalltalk SuperCard Tcl (Tool command language) 擴(kuò)展/可嵌入語言 少數(shù)的語言被設(shè)計(jì)通過嵌入應(yīng)用程序來取代應(yīng)用程序定制的腳本語言。開發(fā)者(如使用C等其它系統(tǒng)語言)包入使腳本語言可以控制應(yīng)用程序的hook。這些語言和應(yīng)用程序定制的腳本語言是同種用途,但優(yōu)點(diǎn)在于可以在應(yīng)用程序之間傳遞一些技能。 具體分類: Ch (C/C++ interpreter) ECMAs cript a.k.a. DMDs cript, Javas cript, Js cript onkey_s cript&action=edit&redlink=1" class="new" title="GameMonkey s cript (尚未撰寫)">GameMonkeys cript Guile ICI Squirrel Lua Tcl RBs cript (REALbasic s cript) Z-s cript Javas cript直到現(xiàn)在仍然是網(wǎng)頁瀏覽器內(nèi)的主要編程語言,它的ECMAs cript標(biāo)準(zhǔn)化保證了它成為流行的通用嵌入性語言。 Tcl作為一種擴(kuò)展性語言而創(chuàng)建,但更多地被用作通用性語言,就如同Python, Perl, Ruby一樣。 其它 BeanShell (s cripting for Java) Cobols cript Escapade (server side s cripting) Euphoria F-s cript Ferite Groovy Gui4Cli Io KiXtart Mondrian Object REXX Pike Pliant REBOL s criptBasic Shorthand Language Simkin Sleep StepTalk Visual Dialogs cript 常見的腳本語言 C Shell Javas cript Nuva Perl PHP Python Ruby Tcl VBs cript
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助