脚本语言
一、定义
脚本语言或扩建的语言,又叫动态语言。是一种编程语言控制软件应用程
序。脚本通常以文本(如 ASCII)保存,只在被调用时进行解释或编译。
二、概述
计算机语言是为了各种目的和任务而开发的,一个常见任务就是把各种不
同的已有组件连接起来以完成相关任务。大多脚本语言共性是:良好的快速开
发,高效率的执行,解释而非编译执行,和其它语言编写的程序组件之间通信
功能很强大。
许多脚本语言用来执行一次性任务,尤其是系统管理方面。它可以把服务
组件粘合起来,因此被广泛用于 GUI 创建或者命令行,操作系统通常提供一些
默认的脚本语言,即通常所谓 shell 脚本语言。
脚本通常以文本(如 ASCII)保存,只在被调用时进行解释或编译。 有些
脚本是为了特定领域设计的,但通常脚本都可以写更通用的脚本。在大型项目
中经常把脚本和其它低级编程语言一起使用,各自发挥优势解决特定问题。脚
本经常用于设计互动通信,它有许多可以单独执行的命令,可以做很高级的操
作,(如在传统的 Unix Shell(sh)中,大多操作就是程序本身。)
这些高级命令简化了代码编写过程。诸如内存自动管理和溢出检查等性能
问题可以不用考虑。在更低级或非中,内存及变量管理和数据结构等耗费人工,
为解决一个给定问题需要大量代码,当然这样能够获得更为细致的控制和优化。
脚本缺少优化程序以提速或者降低内存的伸缩性。
综上所述,脚本编程速度更快,且脚本文件明显小于如同类 C 程序文件。
这种灵活性是以执行效率为代价的。脚本通常是解释执行的,速度可能很慢,
且运行时更耗内存。在很多案例中,如编写一些数十行的小脚本,它所带来的
编写优势就远远超过了运行时的劣势,尤其是在当前程序员工资趋高和硬件成
本趋低时。
然而,在脚本和传统编程语言之间的界限越来越模糊,尤其是在一系列新
语言及其集成畅出现时。在一些脚本语言中,有经验的程序员可以进行大量优
化工作。在大多现代系统中通常有多种合适的脚本语言可以选择,所脚本语言
以推荐使用多种语言(包括 C 或汇编语言)编写一种脚本。
三、脚本语言的历史
现代的脚本语言的前身主要来自两个方面:其一是命令解释器或传统批处
理和“终端”(命令行)计算的外壳语言;另一集合中包含着各种各样的文本处
理 和 报 表 生 成 工 具 。 第 一 个 集 合 中 的 例 子 包 括 IBM 的 JCL 、 MS-DOS 的
command 解释器,以及 Unix 的 sh 和 csh 外壳族等。第二个集合里的例子包括
IBM 的 RPG,以及 Unix 的 sed 和 awk 等。从这些应用中演化出的 Rexx,即
IBM 的“重构的可扩充执行器”,时间可以追溯到 1979 年;还有 Perl,由 Larry
Wall 于 20 世纪 80 年代后期开始设计,现在已成为使用最广泛的通用脚本语言。
其他通用的脚本语言包括 Tcl(“ tickle”)、 Python、Ruby、VBScript(用在
Windows)和 AppleScript(用于 Mac)。
随着万维网在 20 世纪 90 年代后期以来的迅猛发展,Perl 被广泛用于做“服
务器端”的万维网脚本,web 服务器(在服务器机器上)执行各种 Perl 程序去生
成网页的内容。有一位名叫 Rasmus Lerdorf 的早期 web 脚本信徒,他创建了一