时间:2023-03-24 07:10:35 下载该word文档
Tcl简介(一):Tcl语法Tcl语法
Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对Tcl有很好的描述和说明。极具可读性,我并不是原封不动的翻译而是加上了一些自己的体会和例子,如有错误请指正。如果你看起来很吃力,那是因为Tcl与一般的语言有一些不同之处,刚开始可能有一些不理解,但很快就会掌握的。请坚持一下,我能坚持写完,你至少也应该坚持读一遍吧!
TclOverview
这篇文章里包含了几乎Tcl的全部。文章的作者是Tcl的缔造者JohnOusterhout,对Tcl的诠释非常清楚。
Introduction简介
Tcl代表"toolcommandlanguage"发音为"tickle."。它实际上包含了两个部分:一个语言和一个库。
首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。它有一个简单的语法和很强可扩充性,Tcl可以创建新的过程以增强其内建命令的能力。
其次,Tcl是一个库包,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程和可以使你扩充(定义新的过程)的库函数。应用程序可以产生Tcl命令并执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。但Tcl库收到命令后将它分解并执行内建的命令,经常会产生递归的调用。
/*现在不理解没关系,请往下看*/
应用程序使用Tcl作为它的命令语言有三个好处:
1Tcl提供了标准语法,一旦用户掌握了Tcl就可以很容易的发布命令给基于Tcl的程序。2Tcl实现了很多的功能,使你的工作变得很方便。3TCl可作为程序间通信的接口。
TclInterpreters解释器
在Tcl的数据结构中的核心是Tcl_Interp.一个解释器包含了一套命令,一组变量和一些用于描述状态的东西。每一个Tcl命令是在特定的Tcl_Interp中运行的,基于Tcl的应用程序可以同时拥有几个Tcl_Interp。Tcl_Interp是一个轻量级的结构,可以快速的新建和删除。
TclDataTypes数据类型
Tcl只支持一种数据结构:字符串(string)。所有的命令,命令的所有的参数,命令的结果,所有的变量都是字符串。请牢记这一点,所有的东西都是字符串。
然而字符串的实际解释是依赖于上下文或命令的。它有三种形式:命令(command,表达式(expresion和表
(list。下面会讨论细节。
BasicCommandSyntax基本语法
Tcl有类似于shell和lisp的语法,当然也有许多的不同。一条Tcl的命令串包含了一条或多条命令用换行符或分号来隔开,而每一条命令包含了一个域(field的集合,域使用空白分开的,第一个域是一个命令的名字,其它的是作为参数来传给它。例如:
seta22//相当于C中的a=22a是一个变量这条命令分为三个域:1:set2:a3:22
set使用于设置变量的值的命令,a、20作为参数来传给它,a使它要操作的变量名,22是要付给的a值。
Tcl的命令名可以使内建的命令也可以是用户建的新命令,在应用程序中用函数Tcl_CreateCommand来创建。所有的参数作为字符串来传递,命令自己会按其所需来解释的参数的。命令的名字必须被打全,但Tcl解释器找不到一同名的命令时会用unknown命令来代替。
在很多场合下,unknown会在库目录中搜寻,找到一个的话,会自动生成一个Tcl命令并调用它。unknown经常完成缩略的命令名的执行。但最好不要使用。
Comments注释
和shell很象,第一个字母是'#'的Tcl字符串是注释。