热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Tcl简介及特性

【简介|特性】l简介Tcl是一门产生于80年代末的语言,和Python一样,她是用c开发出来的,如果说CJavaC++C#为编译型语言的话,那么Python、Perl和

简介|特性

简介

Tcl是一门产生于80年代末的语言,和Python一样,她是用c开发出来的,如果说C/Java/C++/C#为编译型语言的话,那么Python、Perl和Tcl就是一门解释性语言,也就是说程序不需要先编译为机器能识别的二进制码,再运行程序,而是直接可以运行。其技术实现主要借助于Tcl中的库作为解析器。如果你知道Python的话,其执行过程如下:python先把代码编译成字节码,再对字节码解释执行


同为解释型语言,Tcl同样靠其内置分析器负责解释.编译型语言的优点是:因其直接同CPU指令集打交道,生成机器可识别的二进制码,所以速度非常快,编译后执行的速度比解释型语言快的多,缺点编码相对复杂,代码量也大。而解释型语言则是牺牲速度,提高编码效率,实现同样的功能,用Python,Tcl这样的脚本语言,其代码量相当于C/C++/Java这种编译型语言的1/3~1/5,也就是用很少的代码就能实现很强大的功能,可谓:很好很强大!

Tcl是tool command language的缩写(工具命令语言),是一种很通用的脚本语言,几乎可以在所有的平台运行,功能强大,简单易学。Tcl常被用于快速原型开发、脚本编程、GUI和测试。 Tcl发音为”tickle”,包含了两部分:语言本身或扩展库.

首先:Tcl是一种简单的语言,主要用于发布一些命令给交互程序(文本编辑器、调试器、SHELL),它语法简单,扩充性强,Tcl可创建新的过程以增强其内建的能力。

其次:Tcl是一个库,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程、可扩充的库函数。

特性

同Python一样,Tcl又称为"胶水"语言,粘合性很强!Python中如果没有库文件提供的功能时,可以用C语言来实现该功能,再融合进去。Tcl也一样,Tcl一个重要特性是它的扩展性。如果一个程序需要使用某些标准Tcl没有提供的功能,可以使用c语言创造一些新的Tcl命令,并很容易的融合进去。Tk是一系列令Tcl易于编写图形用户接口GUI的命令和过程。另一个流行的扩展包是Expect.,Expect提供了通过终端自动执行命令的能力,例如(passwd、ftp、telnet等命令驱动的外壳)。

好吧,在这里简单对上面总结一下就是:Tcl其实就是一条条命令组成的工具语言,跨平台,只有一种类型,那就是字符类型,与操作系统集成,简单易学其特点。

再来看一段,连接设备的代码:

spawntelnet 192.168.0.2     # 登陆设备

expect"Username:"           # 期望输入用户名

send"admin\n"               # 发送用户名         

expect"Password:"           # 期望输入用户名

send"XXXXXX\n"              # 发送密码

expect"3750>"               # 期望回文显示             

send"en\n"

expect"Password:"

send"XXXXXX\n"

expect"3750#"

send"ping 192.168.0.3\n"

expect"3750#"

send"config t\n"

expect"#"

send"ip route 123.2.1.1 255.255.255.255 null0\n"

expect"#"

 

下载|运行

下载安装

1. 下载地址:

http://www.activestate.com/activetcl/activetcl-8-6

2. 控制面板->系统和安全->系统->高级->环境变量->系统变量,将Tcl的目录加到Path路径中:


程序运行

安装好了之后,可以选择下面几种方式来运行,假如要打印Hello,World,这也是学习任何语言的第一个最简单程序.

方式一:通过tclsh或tclsh86(Tcl的应用程序的外壳)来执行

备注:

1. tclsh为Tcl应用程序的外壳.

2. 一般执行tclsh就可以进入shell模式,因为我本机上安装的是tcl8.6,其文件名为:C:\Tcl\bin\ tclsh86.exe, 所以需执行tclsh86

D:\>tclsh86
% puts "Hello, World!"
Hello, World!

方式二:输入tclsh file.tcl文件来运行程序.

D:\>tclsh86 hello.tcl

Hello, World!

方式三:通过wish来运行一个简单的Tk脚本

先输入:wish或wish86,运行 wish

再输入: button .b -text "Hello,World!"-command exit


就可以显示Hello,World!的窗口,也可以在将上述的命令写到hello.tcl文档里面。

再运行:


结果输出:


详细说明:

1. button,grid,pack都是Tcl中的命令

2. .b则代表button这个组件的子组件

3. -text “Hello,World!”表示要输出的内容

4. -background表示背景颜色

5. -foreground按钮的文字颜色

6. -font按钮使用的字体”times 12”代表12磅Times Roman字体

7. grid .b 创建的组件不会自动显示,用grid让其显示在屏幕上.

8. pack .b 压缩的方式,grid的话则是放在栅格的第一行,第一列


推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • JavaScript简介及语言特点
    本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • 在C#/ .NET中,处理基督面前的日期没有内置支持,需要编写自己的代码。本文介绍了在处理此类日期时的最佳方法,并提供了一个示例链接,可以参考编码的解决方案。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
author-avatar
天使骨头_799
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有