Tcl脚本语言(2)----摘录了别人的博客

Tcl脚本语言(2)
2008-12-27 15:46
最近想学习Tcl语言,在网上各大书店搜罗图书都绝版,图书馆的书也是保留本,无法拿出来复印,我就上了淘宝,居然有,现在的人的生意头脑真的是太 好了,我在淘宝的店里以90元的高价购得此书《Tcl/Tk编程权威指南》,600多页,复印加装订基本就40块钱,利润颇丰啊,做一个简要的介绍:

 

         Tcl 是一种基于字符串的命令语言,这种语言只有几种基础结构和相对较少扫的语法,非常易于学习,它被设计成一种粘合剂,用来将软件构件组装成应用程序。此外, 当应用程序运行时,Tcl十倍解释执行那个的,解释器可以很容易地以交互方式来创建和细化应用程序。Tcl各种机制均与字符串和字符串替换有关,因此可以 很容易地使解释器内部的工作情况形象化。

         Tcl代表Tool Command Language(工具命令语言)。一条命令的语法:command arg1 arg2 arg3 ... 其中command要么是内建命令要么就是Tcl过程,空白符(即空格或制表符)用来分隔命令名和它的变元,而换行符(即行结束符)或分号被用来表示一条 命令的结束。Tcl除了分组和替换之外不对命令变元进行解释,分组可以允许一个边缘包含有多个单词,而替换则在编程变量和嵌套命令调用一起使用。Tcl命 令处理器的行为可以概括为以下三个基本步骤:
  • 变元分组
  • 对嵌套命令、变量和反斜杠换码序列进行值替换
  • 调用命令,最终要由命令对变元进行解释
Hello, World
-----------------------------------------------------------------------------
puts stdout {Hello, world!}
=> Hello, World!
-----------------------------------------------------------------------------
       在这个例子中,命令为puts,它接收两个变元:一个I/O流标识符和一个字符串。puts将字符串写到I/O流中并在尾部追加一个换行符。

       Tcl 语言由伯克利大学教授John Ousterhout在1988年发明。Ousterhout教授在教学过程中,发现在集成电路CAD设计中,很多时间是花费在编程建立测试环境上,环境 一旦改变,就要重新修改代码。Ousterhout教授于是构想出这样一种语言:把编程按照基于组件的方法(Component Approach),与其为单一应用程序编写成百上千行的代码,不如寻找一种方法将程序分割成一些小的具有完整功能、可独立使用的组件。这些组件有完整的 功能,而且也可以为其它应用程序所利用。新语言具有很强的粘性,能够很方便的将这些组件粘在一起,使这些组件相互通信、协同工作。另外,这种语言还要有良 好的扩展性,可以很方便地开发出新的组件。这使得程序设计如拼图一般,这种设计思想与后来的Java语言不谋而合。

   Tcl(读作tickle)语言就这么产生了,全称为Tool Command Language,是一种可嵌入的命令脚本化语言,可嵌入是指能把很多应用无缝、有效地集成在一起,命令是指每一条Tcl语言都可以理解成命令加参数的形式:
命令 [参数1] [参数2] ... [参数N]

提到Tcl就不得不提到Tk,为了解决图形化设计问题,又发明了Tk工具包,现在都是将Tcl/Tk并到一起说,其官方站点为http://www.scriptics.com。不过现在Tk并不是Tcl专属了,由于其开发图形化程序的优越性能,其他脚本语言如Perl等也都有了Tk包。

目前,Tcl/Tk在信息产业领域具有广泛的应用,下表是Tcl/Tk和C++、Java语言的比较:

 

C++

Tcl/Tk

Java

运行程序速度

C++ 可比

调试难易程度

复杂
修改代码需重新编译

简单
修改代码可直接运行

比较简单
改代码需重新编译成
ByteCode 且编译速度很慢

程序代码复杂程度以Unixgrep 为例复杂
50 行程序代码
简明
10 行程序代码
比较简单
40 行程序代码
系统资源占用情况200MB HD
32MB Memory
3MB HD
4MB Memory
20MB HD
4MB Memory
代码可维护性    
       
可移植性

一般

较好


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值