TCL 语言基础资料
一 脚本语言详细介绍
21 世纪的高级编程语言
摘要:
Perl 和 Tcl 等脚本语言代表一种与 c 或
JavaTM 为代表的系统程序设计语言完全不同的编程
形式。脚本语言为"胶着"应用程序而设计,它使用无类
型方法来实现高级编程和比系统程序设计语言更快的
发展应用。计算机速度的增长和混合应用的改变使脚
本语言在今后的应用中越来越重要。
关键字:
组件框架,面向对象编程,脚本,强类型,系统编程
1.简介
在过去的十五年里,人们编写计算机程序的方
法发生了根本的转变。这种转变是从 c 或 c++等系统
程序设计语言到 Perl 或 Tcl 等脚本语言的过渡。虽然
很多人参与了转变,却很少有人意识到它的发生,更
不用说知道为什么会发生。这篇文章是我关于为什么
在下个世纪脚本语言可以比系统程序设计语言更好的
处理许多编程工作的一点看法。
与系统程序设计语言相比,不同的脚本语言
为不同的工作而设计,这导致了语言间的根本不同。
系统程序设计语言起源于像内存字等最初期的计算机
元素,它为建立数据结构和算法而创建。相反的,脚本
语言为胶着而设计:他们假设已经存在一套强大的组
件,而它主要是把组件连在一起。系统程序设计语言
使用强类型定义来帮助处理复杂事务,而脚本语言使
用无类型定义来简化组件间的联系,并提供快速应用开
发.
脚本语言和系统程序设计语言互为补充,
并且二十世纪六十年代以来的大多数主要的计算机平
台都同时提供这两种类型的语言。这些语言在组件框
架中有着典型的应用:组件由系统程序设计语言创建,
并由脚本语言组合在一起。然而,速度更快的机器,
更好的脚本语言,图形用户界面和组件构造重要性的
不断提高,因特网的发展等发展趋势大大提高了脚本
语言的应用。在今后的十年中,这种趋势将继续,而
且越来越多的完全使用脚本语言和系统程序设计语言
书写的应用程序将主要用来创建组件。
2.系统程序设计语言
为了理解脚本语言和系统程序设计语言的不同,
最好先了解一下系统程序设计语言是如何发展的.系统
程序设计语言是作为除汇编语言外的另一种选择而引
入的.在汇编语言里,实际上机器的每一个细节都被反映
在程序里.每个状态代表一个简单的机器指令,而程序员
必须处理像寄存器分配和程序调用顺序等低层细节.因
此,用汇编语言编写和维持大型程序是很困难的.
真的不掉线吗??、????????????
二十世纪五十年代后期像 Lisp,Fortran 和
Algol 等高层语言开始出现.这些语言里的状态和机器
指令不再完全一致,编译程序把过程程序中的每个状态
翻译成一系列二进制指令.经过一段时间,一系列系统程
序设计语言包括 PL/1,Pascal,C,C++和 Java 由 Algol
发展而来.系统程序设计语言没有汇编语言的效率高,但
他们使应用程序更快的发展起来,因此,系统程序设计语
言在大型应用项目的发展中几乎完全取代了汇编语言.
系统程序设计语言与汇编语言在两个方面
有所不同:它是高层语言并且是强类型."高层"意味着很
多细节被自动处理以便编程人员可以写更少的代码而
做同样的工作.例如:
★编译程序处理寄存器分配,所以编程人员不需要
写代码来在寄存器和内存间转移数据
★自动设计程序调用顺序:编程人员不需要担心调用栈
之间的参数转移
★编程人员可以使用像 while 和 if 等简单的关键字来
控制结构,编译器执行所有的指令细节来完成控制结构
平均每行系统程序设计语言代码翻译成大
约五条机器指令,与此相比,每行汇编语言代码翻译成一
条机器指令(由 5 个不同的人写的 8 个 c 文件的非正式
分析中,我发现这个比率为每行 3 到 7 条指令;Capers
Jones 从大量语言的研究中发现对于一个给定的工作,
汇编语言需要的代码长度大约是系统程序设计语言代
码长度的 3-6 倍)不管是什么语言,编程人员每年可以
写大体上相同数量的代码行,因此,系统程序设计语言允
许用比汇编语言快得多的语言写应用程序.
汇编语言和系统程序设计语言的第二个不同
是类型设置.我使用"类型"来说明信息的意义在它被使
用前就被特殊化.在强类型语言中编程人员声明如何使
用每条信息,并避免此信息被用于其他方式.在弱类型语
言中信息应用是没有优先权限制:信息的意思完全由它
的使用方法确定,而不是任何初始约定.
现代计算机基本上是无类型的:内存中的任
何字对任何类型的值比如整型,浮点数,指针或结构体都
是有效的.值的意思由它的使用方法确定:如果指向一个
内存字,那么他就被认为是结构体;如果一个字涉及一个
整型加结构体,那么他就被认为是整型,如此等等.相同
的字在不同的时间可用于不同的方法.