原创 TCL/TK 选择的理由

2010-1-8 10:08 2836 3 4 分类: FPGA/CPLD
仿真阶段获得的大量数据如何处理呢?对于常见的脚本语言,来让我们一起看看TCL/TK的特点吧,它是否也适合你?
1. 开发应用程序的周期短

人们使用Tcl/Tk 最主要的原因是Tcl/Tk使他们的工作能够更快的完成。许多情况下,用Tcl编写的应用程序比用其他语言编写的应用程序运行速度快5-10倍。这在那些 包含图形用户界面,字符串操作,积分操作的程序中表现得尤为突出。而且用Tcl编写的应用程序稍加修改就能适应变化的需求。

2. 适于开发图形用户界面

Tcl与Tk工具箱相互配合提供了一整套创建图形用户界面的非常简单而又十分强大的工具。比如Tk的Canvas构件,不但可以十分方便的创建图形显示而 且还提供诸如bindings和tags之类功能强大的部件。Text构件则可以提供复杂的超文本功能。在过去,只有Tcl提供了在UNIX下创建图形用 户界面的完美的解决方案,这使得它拥有了一大批早期的追随者。如今Tcl可以在Windows,Macintoshi平台上提供同样出色的功能。

3.能够开发跨平台的应用程序

Tcl可以在Windows,Macintosh和几乎所有能想到的UNIX平台下运行,这使它成为开发跨平台应用程序的绝佳工具。举例来说,同样的 Tcl脚本可以在UNIX,Windows和Macintosh上显示一个图形用户界面,这个图形用户界面在不同的平台上具有不同的外观,使不同平台上的 用户在使用上没有障碍。由于Tcl可运行于所有的主流平台,所以它为那些类似于服务器采用UNIX,桌面采用Windows这样的混合环境提供了卓越的管 理和整合工具。

4. 可以方便的扩展应用程序

如果你想创建一个能让用户自行修改和扩充的,功能强大的应用程序,那么你需要在这个应用程序中包含进一个解释性的脚本语言。Tcl/Tk能非常好的实现这 个目的。Tcl解释器设计的初衷就是要能够嵌入到各种应用程序中。你可以很容易的将Tcl整合到一个应用程序中。Tcl解释器与应用程序能够很自然的融合 在一起,看起来就好像Tcl是专门为编写这个应用程序而设计的语言。

5.具有弹性的整合功能

使用Tcl可以很方便的将已有的部件与应用程序整合起来,使他们能更有效的工作。例如,可以将Tcl用作特殊用途的硬件和协议的控制语言,为陈旧的应用程 序添加图形用户接口或网络接口,或者将以前用C/C++编写的代码与新的Java应用程序整合起来,这使Tcl成为网络管理和工业自动化领域的强大工具。

6.为企业应用提供解决方案

随着Tcl8.1的发布,Tcl成为适合于开发大型服务程序和开发用于执行关键任务的企业级应用程序的首选(也是唯一可选)的脚本语言。脚本语言的优势, 如快速的开发周期,弹性升级,易于整合,是众所周知的,但是在Tcl8.1之前,还没有一种能够满足企业应用程序需求的脚本语言,这些需求包括对国际化, 线性安全,跨平台性,出色的图形用户接口,可嵌入性,因特网访问,数据访问之类的支持。Tcl8.1加入了对国际化的支持和线性安全,使Tcl成为不仅具 有脚本语言的所有优势还能满足企业需求的首选脚本语言。

7.易于调试

Tcl是用于实现硬件自动化和软件测试的理想语言并且可能会成为这方面的主导语言。使用Tcl你可以很容易的连接到测试硬件或是一个应用程序的内部API 接口,执行测试功能,检查结果,报告错误。Tcl的解释执行使测试环境能够迅速的建立起来,并且能够将测试结果以脚本文件的形式保存以用于以后的测试。如 果你正在测试一个软件应用程序,Tcl可以使你直接连接到应用程序的底层API中,这样可以使测试更准确、更全面。

8.易于学习

Tcl是一种非常简单易学的语言,有经验的程序员可以在几天甚至几小时内就可以学会并能开始着手编写应用程序。普通的程序员也能很快的学会Tcl。通常由有经验的程序员编写一些基本的功能,更多普通的程序员应用这些功能来创建自己的应用程序。

9.易于编写网络应用程序

Tcl比任何平台都更易于使用网络设备,编写服务器端和客户端应用程序,只需几行代码,几分钟内就可以创建出来。另外,Tcl还可以很方便的为陈旧的应用程序加入网络接口。

10.庞大的Tcl网络社区

使用Tcl的另一个原因是它具有一个庞大的用户开发者社区,你随时都可以在Tcl网络社区中与别人交换代码、扩展包以及应用程序,还可以得到技术支持。

11.附加一点,Tcl是免费的!

Tcl可以从Tcl Developer Xchang网站上免费的得到,你可以对其代码进行修改以满足自己的需要或者将它用于商业用途。


转自:

文章评论1条评论)

登录后参与讨论

用户377235 2015-6-7 08:27

很有道理。天下武功,唯快不破。
相关推荐阅读
用户1407410 2010-12-16 17:52
PAD,PIN和LEAD的区别
最近碰到一款芯片,Datasheet上说可以通过设置内部寄存器,选择芯片Output Enable的输入,既可以是PIN,又可以是PAD, 觉得有点糊涂,于是查了查Pin和Pad的区别。讨论贴在这:h...
用户1407410 2010-12-14 04:03
关于USB endpoint size的思考
提出一个问题,如果通过DMA或Interrupt往USB Endpoint写入的数据小于它的MAX PACKET SIZE, 该Endpoint会怎么响应主机的IN Request: 是1) NAK主...
用户1407410 2010-12-11 09:40
I2C困惑
这几天一直被I2C模块困扰:firmware能访问EEPROM, 但不能访问另一个I2C设备,通过I2C分析仪显示的结果是主机发送Slave地址后,从机没有应答。从机地址肯定是正确的,从机也支持所用的...
用户1407410 2010-10-01 06:07
【转】Volatile关键字
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可...
用户1407410 2010-10-01 06:00
LPM
 说到LPM(Library of Parameterized Modules),就一定要谈谈EDIF(Electronic Design Interchange Format)。EDIF文件是EDA...
用户1407410 2010-10-01 05:59
modelsim force 命令
force命令在modelsim常用来信号赋值,较为常用,故此备份force din 16#40900000 0 --从当前时刻起,给din赋值force bus 16#F @100ns  --在10...
我要评论
1
3
关闭 站长推荐上一条 /2 下一条