腳本語言

腳本語言

編程語言
腳本語言(英語:Scripting language),即腳本語言或擴建的語言,又叫動态語言,是一種編程語言控制軟件應用程序。腳本通常以文本(如ASCII)保存,隻在被調用時進行解釋或編譯。腳本語言是為了縮短傳統的編寫-編譯-鍊接-運行(edit-compile-link-run)過程而創建的計算機編程語言。它的命名起源于一個腳本“screenplay”,每次運行都會使對話框逐字重複。早期的腳本語言經常被稱為批量處理語言或工作控制語言,一個腳本通常是解釋運行而非編譯。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序員快速完成程序的編寫工作;而宏語言則可視為腳本語言的分支,兩者也有實質上的相同之處。
    中文名:腳本語言 外文名: 别名:動态語言 英文名:Scripting language 别 名:動态語言 類 别:編程語言 目 的:縮短傳統編寫等過程

概述

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

雖然許多腳本語言都超越了計算機簡單任務自動化的領域,成熟到可以編寫精巧的程序,但仍然還是被稱為腳本。幾乎所有計算機系統的各個層次都有一種腳本語言。包括操作系統層,如計算機遊戲,網絡應用程序,字處理文檔,網絡軟件等。在許多方面,高級編程語言和腳本語言之間互相交叉,二者之間沒有明确的界限。

特點

1、腳本語言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等編程語言之間。HTML通常用于格式化和鍊接文本。而編程語言通常用于向機器發出一系列複雜的指令。

2、腳本語言與編程語言也有很多相似地方,其函數與編程語言比較相像一些,其也涉及到變量。與編程語言之間最大的區别是編程語言的語法和規則更為嚴格和複雜一些.

3、與程序代碼的關系:腳本也是一種語言,其同樣由程序代碼組成。

4、腳本語言是一種解釋性的語言,例如Python、vbscript,javascript,installshield script,ActionScript等等,它不象cc++等可以編譯成二進制代碼,以可執行文件的形式存在,腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。

5、腳本語言一般都是以文本形式存在,類似于一種命令。

舉個例子說:如果建立了一個程序,叫aaa.exe,可以打開.aa為擴展名的文件,為.aa文件的編寫指定了一套規則(語法),當别人編寫了.aa文件後,自己的程序用這種規則來理解編寫人的意圖,并作出回應,那麼,這一套規則就是腳本語言。

6、相對于編譯型計算機編程語言:用腳本語言開發的程序在執行時,由其所對應的解釋器(或稱虛拟機)解釋執行。系統程序設計語言是被預先編譯成機器語言而執行的。腳本語言的主要特征是:程序代碼即是腳本程序,亦是最終可執行文件。腳本語言可分為獨立型和嵌入型,獨立型腳本語言在其執行時完全依賴于解釋器,而嵌入型腳本語言通常在編程語言中(如C,C++,VB,Java等)被嵌入使用。

7、和系統程序設計語言相比:不同是腳本語言是被解釋而系統程序設計語言是被編譯。被解釋的語言由于沒有編譯時間而提供快速的轉換,通過允許用戶運行時編寫應用程序,而不需要耗時的編譯/打包過程。解釋器使應用程序更加靈活,腳本語言的代碼能夠被實時生成和執行。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序設計師快速完成程序的編寫工作。

優缺點

優點

快速開發:腳本語言極大地簡化了“開發、部署、測試和調試”的周期過程。

容易部署:大多數腳本語言都能夠随時部署,而不需要耗時的編譯/打包過程。

同已有技術的集成:腳本語言被Java或者COM這樣的組件技術所包圍,因此能夠有效地利用代碼。

易學易用:很多腳本語言的技術要求通常要低一些,因此能夠更容易地找到大量合适的技術人員。

動态代碼:腳本語言的代碼能夠被實時生成和執行,這是一項高級特性,在某些應用程序裡(例如JavaScript裡的動态類型)是很有用也是必需的。

缺點

腳本語言不夠全面:它們會要求一門“真正的”編程語言的存在,必須找一個數據庫驅動程序将其内置進腳本語言裡。

腳本語言并不是軟件工程和構建代碼結構的最佳選擇,例如面向對象和基于組件的開發。

腳本語言通常不是“通用”語言,但是能夠根據專門的應用來調整,例如:PHP。

源起與目的

腳本語言(Scriptinglanguage)是電腦編程語言,因此也能讓開發者藉以編寫出讓電腦聽命行事的程序。以簡單的方式快速完成某些複雜的事情通常是創造腳本語言的重要原則,基于這項原則,使得腳本語言通常比C語言、C++語言或Java之類的系統編程語言要簡單容易,也讓腳本語言另有一些屬于腳本語言的特性:

*語法和結構通常比較簡單

*學習和使用通常比較簡單

*通常以容易修改程序的“解釋”作為運行方式,而不需要“編譯”

*程序的開發産能優于運行效能

一個腳本可以使得本來要用鍵盤進行的相互式操作自動化。一個Shell腳本主要由原本需要在命令行輸入的命令組成,或在一個文本編輯器中,用戶可以使用腳本來把一些常用的操作組合成一組串行。主要用來書寫這種腳本的語言叫做腳本語言。很多腳本語言實際上已經超過簡單的用戶命令串行的指令,還可以編寫更複雜的程序。

應用和發展

應用

(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 是一個應用程序,它連接了用戶和 Linux 内核,讓用戶能夠更加高效、安全、低成本地使用 Linux 内核,這就是 Shell 的本質。

此類腳本用于自動化工作控制,即啟動和控制系統程序的行為。大多的腳本語言解釋器也同時是命令行界面,如Unixshell和MS-DOSCOMMAND.COM。其他如AppleScript,可以為系統增加腳本環境,但沒有命令行界面。

具體分類有:

*4NT

*AppleScript

*ARexx(AmigaRexx)

*bash

*csh

*DCL

*JCL

*ksh

*Cmd.exebatch(Windows,OS/2)

*Command.combatch(DOS)

*REXX

*tcsh

*sh

*Winbatch

*WindowsPowerShell

*WindowsScriptHost

*Zsh

GUI 腳本

GUI出現帶來一種專業的控制計算機的腳本語言。它在用戶和圖形界面,菜單,按鈕等之間互動。它經常用來自動化重複性動作,或設置一個标準狀态。理論上它可以用來控制運行于基于GUI的計算機上的所有應用程序,但實際上這些語言是否被支持還要看應用程序和操作系統本身。當通過鍵盤進行互動時,這些語言也被稱為宏語言。

具體分類有:

*AutoHotkey

*AutoIt

*Expect

應用程序定制的腳本語言

許多大型的應用程序都包括根據用戶需求而定制的慣用腳本語言。同樣地,許多電腦遊戲系統使用一種自定義腳本語言來表現NPC(non-playercharacter,non-playablecharacter,non-playerclass)和遊戲環境的預編程動作。

此類語言通常是為一個單獨的應用程序所設計,雖然它們貌似一些通用語言(如QuakeC,modeledafterC),但它們有自定義的功能。

具體分類:

*ActionCodeScript

*ActionScript

*AutoLISP

*BlobbieScript[1]

*EmacsLisp

*GameMakerLanguage

*HyperTalk

*IPTSCRAE

*IRCscript

*Lingo

*MayaEmbeddedLanguage

*mIRCscript

*NWscript

*QuakeC

*UnrealScript

*VisualBasicforApplications

*VBScript

*ZZT-oop

web編程腳本

應用程序定制的腳本語言中有一種重要的類别,用于提供WEB頁面的自定義功能。它專業處理互聯網通信,使用網頁浏覽器作為用戶界面。當然,大多現代WEB編程語言都比較強大可以做一些通用編程。

具體分類:

*ColdFusion(ApplicationServer)

*Lasso

*miva

*SMX

*IPTSCRAE-一些網絡開發團隊用于創建論壇的工具

文本處理語言

處理基于文本的記錄是腳本語言最早的用處之一。如Unix'sawk最早是設計來幫助系統管理員處理調用UNIX基于文本的配置和LOG文件。PERL最早是用來産生報告的,現在它已經成了全面成熟的語言。

具體分類:

*Awk

*Perl

*sed

*XSLT

通用動态語言

一些語言,比如Perl,從一門腳本語言發展成了更通用的編程語言。由于“解釋執行,内存管理,動态”等特性,它們仍被稱為腳本語言。但它們已經用于應用程序編寫,用戶也不把它們看作腳本語言。

*APL

*Dao

*Dylan

*Groovy

*Lua

*mumps(M)

*newLISP

*Nuva

*Perl

*PHP

*Python

*Ruby

*Scheme

*Smalltalk

*SuperCard

*Tcl(Toolcommandlanguage)

擴展、可嵌入語言

少數的語言被設計通過嵌入應用程序來取代應用程序定制的腳本語言。開發者(如使用C等其它系統語言)包入使腳本語言可以控制應用程序的hook。這些語言和應用程序定制的腳本語言是同種用途,但優點在于可以在應用程序之間傳遞一些技能。

具體分類:

*Ch(C/C++interpreter)

*Dao

*ECMAScript亦稱DMDScript,JavaScript,JScript

*GameMonkeyScript

*Guile

*ICI

*Lua

*RBScript(REALbasicScript)

*Squirrel

*Tcl

*Z-Script

JavaScript直到現在仍然是網頁浏覽器内的主要編程語言,它的ECMAScript标準化保證了它成為流行的通用嵌入性語言。

Tcl作為一種擴展性語言而創建,但更多地被用作通用性語言,就如同Python,Perl,Ruby一樣。

相關詞條

相關搜索

其它詞條