简单介绍|特性

简单介绍

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命令,并不是常easy的融合进去。Tk是一系列令Tcl易于编写图形用户接口GUI的命令和过程。还有一个流行的扩展包是Expect.,Expect提供了通过终端自己主动运行命令的能力。比如(passwd、ftp、telnet等命令驱动的外壳)。

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

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

spawntelnet 192.168.0.2     #
登陆设备

expect"Username:"           #
期望输入username

send"admin\n"               #
发送username         

expect"Password:"           #
期望输入username

send"XXXXXX\n"              #
发送password

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. -foregroundbutton的文字颜色

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

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

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

Tcl 简单介绍及特性的更多相关文章

  1. C#特性的简单介绍

    特性应该我们大多接触过,比喻经常使用的[Obsolete],[Serializable]等下面我就主要介绍一个特性的一些用法 摘自MSDN定义:用以将元数据或声明信息与代码(程序集.类型.方法.属性等 ...

  2. 深入浅出JMS(二)--ActiveMQ简单介绍以及安装

    现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了消息通信的规范JM ...

  3. 简单介绍一下R中的几种统计分布及常用模型

    统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 统计分布每一种分布有四个函数:d――density(密度函数) ...

  4. 简单介绍Javascript匿名函数和面向对象编程

    忙里偷闲,简单介绍一下Javascript中匿名函数和闭包函数以及面向对象编程.首先简单介绍一下Javascript中的密名函数. 在Javascript中函数有以下3中定义方式: 1.最常用的定义方 ...

  5. iOS开发拓展篇-XMPP简单介绍

    iOS开发拓展篇-XMPP简单介绍 一.即时通讯简单介绍 1.简单说明 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双 ...

  6. JMS【二】--ActiveMQ简单介绍以及安装

    现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文JMS[一]--JMS基本概念,我们介绍了消息通信的规范JMS,我 ...

  7. iOS开发——网络编程OC篇&(一)XMPP简单介绍与准备

    XMPP简单介绍与准备 一.即时通讯简单介绍 1.简单说明 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈 ...

  8. Linux 内核开发—内核简单介绍

    内核简单介绍 Linux 构成 Linux 为什么被划分为系统空间和内核空间 隔离核心程序和应用程序,实现对核心程序和数据的保护. 什么内核空间,用户空间 内核空间和用户空间是程序执行的两种不同的状态 ...

  9. CMake 简单介绍 图

    http://tech.uc.cn/?p=914     CMake特点 CMake需要用户用CMake规范的语法编写CMake脚本,该语法简单易用,入门极其顺手 原生支持 C/C++/Fortran ...

随机推荐

  1. find -exec

    find -exec 的标准写法 find ./ -name "*.tmp" -exec rm -rf "{}" \; find -exec 这个命令组合很好用 ...

  2. 使用Memcache在PHP中调试方法的介绍及应用

    使用Memcache在PHP中调试方法的介绍及应用 如果我们在网络开发中,特别是大访问量的web项目开发中,为了提高响应速度,减少数据查询运算,那么我们都会选用memcahce.首先我们必须要安装,接 ...

  3. Java 的zip压缩和解压缩

    Java 的zip压缩和解压缩 好久没有来这写东西了,今天中秋节,有个东西想拿出来分享,一来是工作中遇到的问题,一来是和csdn问候一下,下面就分享一个Java中的zip压缩技术,代码实现比较简单,代 ...

  4. windows下sqlplus / as sysdba报ora-12560的解决方法

    环境:win7_64位.数据库版本ORACLE11G_R2 在CMD窗口,使用下面三个命令可正常连接数据库:C:\Users\Administrator> sqplus /nolog C:\Us ...

  5. 【CCTYPE函数系列】

    #include <cctype>的函数 c++中应该是#include <cctype> c中应该是#include <ctype.h> 以下为字符函数库中常用的 ...

  6. 利用iptables将本地的80端口请求转发到8080,当前主机ip为192.168.1.1,命令怎么写?

    iptables -t nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 80 -j REDIRECT --to-port 8080 内网上外网: ipt ...

  7. RocketMQ与Kafka对比(18项差异)评价版

    此文是rocketmq作者vintage.wang所写,对于每项对比,后面都增加了我的观点,有不对的地方,请各位指出. 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为 ...

  8. webconfig 初认识

    本文摘自网络大神们,还有待补充. -------------------------------------------------------------------- .net 提供的是针对当前机 ...

  9. XML Dtd Schema

    在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束. 整体比较: XML Schema符合XML语法结构. DOM.SAX等XML API很容易解析出XML Schem ...

  10. PHP基础之 define() 函数

    定义和用法 define() 函数定义一个常量. 常量类似变量,不同之处在于: 在设定以后,常量的值无法更改 常量名不需要开头的美元符号 ($) 作用域不影响对常量的访问 常量值只能是字符串或数字 语 ...