真水无香

脚本语言

上一篇 / 下一篇  2007-10-29 11:46:59

脚本语言(scrīpt languages,scrīpting programming languages,scrīpting languages)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的,使得本来要用键盘进行的相互式操作自动化的计算机编程语言。

 

此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批处理语言或工作控制语言。虽然现在许多脚本语言都超越了计算机简单任务自动化的领域(简单的用户命令序列的指令),成熟到可以编写精巧的程序,但仍然还是被称为脚本。几乎所有计算机系统的各个层次都有一种脚本语言。包括操作系统层,如计算机游戏,网络应用程序,字处理文档,网络软件等。在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。

 

二,特性

 

计算机语言是为了各种目的和任务而开发的,一个常见任务就是把各种不同的已有组件连接起来以完成相关任务。大多脚本语言共性是:良好的快速开发,高效率的执行,解释而非编译执行,和其它语言编写的程序组件之间通信功能很强大。

 

1,shell脚本语言:许多脚本语言用来执行一次性任务,尤其是系统管理方面。它可以把服务组件粘合起来,因此被广泛用于GUI创建或者命令行,操作系统通常提供一些默认的脚本语言,即通常所谓shell脚本语言。一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组序列。

 

2,通用脚本语言:有些脚本是为了特定领域设计的,但通常脚本都可以写更通用的脚本。在大型项目中经常把脚本和其它低级编程语言一起使用,各自发挥优势解决特定问题。脚本经常用于设计互动通信,它有许多可以单独执行的命令,可以做很高级的操作,(如在传统的UNIX shell (sh)中,大多操作就是程序本身。)

 

DSL语言:(domain-specific programming language,domain-specific language, DSL)领域编程语言

 

GPL语言?:(general-purpose programming language,general-purpose language, GPL)通用编程语言

 

3,灵活性及其代价:

 

A,简化编程:这些高级命令简化了代码编写过程。诸如内存自动管理和溢出检查等性能问题可以不用考虑。在更低级或非脚本语言中,内存及变量管理和数据结构等耗费人工,为解决一个给定问题需要大量代码,当然这样能够获得更为细致的控制和优化。脚本缺少优化程序以提速或者降低内存的伸缩性。

 

B,文件体积,脚本文件脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译,明显小于如同类C程序文件。

 

C, 执行效率代价:脚本通常是解释执行的,速度可能很慢,且运行时更耗内存。

 

D,在很多案例中,如编写一些数十行的小脚本,它所带来的编写优势就远远超过了运行时的劣势,尤其是在当前程序员工资趋高和硬件成本趋低时。

 

4,然而,在脚本和传统编程语言之间的界限越来越模糊,尤其是在一系列新语言及其集成畅出现时。在一些脚本语言中,有经验的程序员可以进行大量优化工作。在大多现代系统中通常有多种合适的脚本语言可以选择,所以推荐使用多种语言(包括C或汇编语言)编写一种脚本。

 

三,脚本语言分类

 

(一),工作控制语言和shell

 

通常也是一种shell脚本语言

 

此类脚本用于自动化工作控制,即启动和控制系统程序的行为。大多的脚本语言解释器也同时是命令行界面,如Unix shell和MS-DOS COMMAND.COM。其他如Applescrīpt?,可以为系统增加脚本环境,但没有命令行界面。

 

具体分类有:4NT ; Applescrīpt?; 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 scrīpt Host ; zsh

 

(二),GUI 脚本语言

 

GUI出现带来一种专业的控制计算机的脚本语言。它在用户和图形界面,菜单,按钮等之间互动。它经常用来自动化重复性动作,或设置一个标准状态。理论上它可以用来控制运行于基于GUI的计算机上的所有应用程序,但实际上这些语言是否被支持还要看应用程序和操作系统本身。当通过键盘进行互动时,这些语言也被称为宏语言。

 

具体分类有:AutoHotkey?; AutoIt?; Expect

 

(三),应用程序定制的脚本语言

 

许多大型的应用程序都包括根据用户需求而定制的惯用脚本语言。同样地,许多电脑游戏系统使用一种自定义脚本语言来表现NPC(non-player character,non-playable character,non-player class)和游戏环境的预编程动作。

 

此类语言通常是为一个单独的应用程序所设计,虽然它们貌似一些通用语言(如QuakeC?, modeled after C),但它们有自定义的功能。

 

具体分类:Action Code scrīpt ; Actionscrīpt?; AutoLISP?; Blobbiescrīpt?[1] ; Emacs Lisp ; Game Maker Language ; HyperTalk?; IPTSCRAE ; IRC scrīpt ; Lingo ; Maya Embedded Language ; mIRC scrīpt ; NWscrīpt ; QuakeC?; Unrealscrīpt?; Visual Basic for Applications ; VBscrīpt ; ZZT-oop

 

(四),web编程脚本

 

应用程序定制的脚本语言中有一种重要的类别,用于提供WEB页面的自定义功能。它专业处理互联网通信,使用网页浏览器作为用户界面。当然,大多现代WEB编程语言都比较强大可以做一些通用编程。

 

具体分类:ColdFusion?(Application Server) ; Lasso ; Miva ; SMX ; IPTSCRAE-一些网络开发团队用于创建论坛的工具.

 

(五),文本处理语言

处理基于文本的记录是脚本语言最早的用处之一。如Unix's awk最早是设计来帮助系统管理员处理调用UNIX基于文本的配置和LOG文件。PERL最早是用来产生报告的,现在它已经成了全面成熟的语言。

 

具体分类:AWK ; Perl ; sed ; XSLT

 

(六),通用动态语言

 

一些语言,比如PERL,从一门脚本语言发展成了更通用的编程语言。由于“解释执行,内存管理,动态”等特性,它们仍被称为脚本语言。但它们已经用于应用程序编写,用户也不把它们看作脚本语言。

 

具体分类: APL ; Dylan ; Groovy ; MUMPS; newLISP ; Nuva ; Perl ; PHP ; Python ; Ruby ; Scheme ; Smalltalk ; SuperCard?; Tcl (Tool command language)

 

 

(七),扩展/可嵌入语言

 

少数的语言被设计通过嵌入应用程序来取代应用程序定制的脚本语言。开发者(如使用C等其它系统语言)包入使脚本语言可以控制应用程序的hook。这些语言和应用程序定制的脚本语言是同种用途,但优点在于可以在应用程序之间传递一些技能。

 

具体分类: Ch (C/C++ interpreter) ; ECMAscrīpt a.k.a. DMDscrīpt,Java scrīpt, Jscrīpt ; GameMonkeyscrīpt?; Guile ; ICI ; Squirrel ; Lua ; Tcl ; RBscrīpt (REALbasic scrīpt) ; Z-scrīpt

 

Java scrīpt直到现在仍然是网页浏览器内的主要编程语言,它的ECMAscrīpt标准化保证了它成为流行的通用嵌入性语言。

 

Tcl作为一种扩展性语言而创建,但更多地被用作通用性语言,就如同Python, Perl, Ruby一样。

 

(八),其它

 

BeanShell?(scrīpting for Java) ; Cobolscrīpt?; Escapade (server side scrīpting) ; Euphoria ; F-scrīpt ; Ferite ; Groovy ; Gui4Cli ; Io ; KiXtart?; Mondrian ; Object REXX ; Pike ; Pliant ; REBOL ; scrīptBasic?; Shorthand Language ; Simkin ; Sleep ; StepTalk?; Visual Dialogscrīpt?

 

参见

 

A study of the scrīpt-Oriented Programming (SOP) suitability of selected languages– from The scrīptometer.

 

Hotscrīpts.com-A collection of many scrīpts written in an assortment of languages

 

OpenSourcescrīpts.com-A collection of open source scrīpts

 

A Slightly Skeptical View on scrīpting Languagesby Dr. Nikolai Bezroukov

 

 

scrīpting: Higher Level Programming for the 21st Centuryby John K. Ousterhout

 

 

Are scrīpting Languages Any Good? A Validation of Perl, Python, Rexx, and Tcl against C, C++, and Java (PDF)— 2003 study

 

Free Classified ASP scrīpt Site Software 


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1831730


TAG:

 

评分:0

我来说两句

日历

« 2024-05-14  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 8400
  • 日志数: 13
  • 图片数: 1
  • 建立时间: 2007-10-29
  • 更新时间: 2007-11-05

RSS订阅

Open Toolbar