`
hyw520110
  • 浏览: 212002 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Tcl编程简介(一)

    博客分类:
  • TCL
阅读更多

Tcl编程简介(一)

关键词tcl                                          

  Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,功能强大。是tool command language的缩写,发音为 "tickle”, 实际上包含了两个部分:一个语言和一个库。

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

  其次,Tcl是一个库包,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程和可以使你扩充(定义新的 过程)的库函数。应用程序可以产生Tcl命令并执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。 但Tcl库收到命令后将它分解并执行内建的命令,经常会产生递归的调用。

  下面简单介绍以下txl的语法规则:

解释器

  在Tcl的数据结构中的核心是Tcl_Interp.一个解释器包含了一套命令,一组变量和一些用于描述状态的东西。每一个 Tcl命令是 在特定的Tcl_Interp中运行的,基于Tcl的应用程序可以同时拥有几个Tcl_Interp。Tcl_Interp是一个轻量级的结构,可以快速的新建和删除。

数据类型

  Tcl只支持一种数据结构:字符串(string)。所有的命令,命令的所有的参数,命令的结果,所有的变量都是字符串。请牢记这一点,所有的东西都是字符串。 这是它比较有特点的方面字符串有三种形式:命令(command), 表达式(expresion)和表(list)。

Basic Command Syntax 基本语法

  Tcl有类似于shell和lisp的语法,当然也有许多的不同。一 条Tcl的命令串包含了一条或多条命令用换行符或分号来隔开,而每一条命令包含了一个域(field)的集合,域使用空白分开的,第一个域是一个命令的名字,其它的是作为参数来传给它。

  例如:

  set a 22 //相当于C中的 a=22 a是一个变量这条命令分为三个域:1: set 2: a 3: 22 set使用于设置变量的值的命令,a、20 作为参数来传给它,a使它要操作的变量名,22是要付给的a值。

  Tcl的命令名可以是内置的命令也可以是用户建的新命令,如果是用户用户建的新命令应用程序中用函数Tcl_CreateCommand来创建。所有的参数作为字符串来传递,命令自己会按其所需来解释的参数的。命令的名字必须被打全,但 Tcl解释器找不到一同名的命令时会用 unknown命令来代替。

  在很多场合下,unknown 会在库目录中搜寻,找到一个的话,会自动生成一个Tcl命令并调用它。unknown经常完成缩略的命令名的执行。但最好不要使用。

注释

  和shell很象,第一个字母是"#"的Tcl字符串是注释。

其他细节规则

  Grouping arguments with double-quotes 用双引号来集群参数,目的在于使用有空白的参数。

  例如:

set a "this string contains whitespace" 

  如够一个参数一双引号来开始,该参数会一直到下一个双引号才结束。其中可以有换行符和分号。

  Variable substitution with $ 用美元符进行变量替换说白了就是引用该变量。

  如:


set a hello 
set b $a // b = "hello" 实际上传给set命令的参数 
//是b,"hello" 
set c a // b = "a" 

  Command substitution with brackets 命令子替换(用方括号)

  例如:

set a [set b "hello"] 

  实现执行 set b "hello" 并用其结果来替换源命令 中的方括号部分,产生一条新命令

  set a "hello" //"hello" 为 set b "hello" 的返回值

  最终的结果是b="hello" a="hello"

  当命令的一个子域以方括号开始以方括号结束,表示要进行一个命令子替换。并执行该子命令,用其结果来替换原命令中的方括号部分。方括号中的部分都被视为Tcl命令。

  如下一个复杂一点的例子:


set a xyz[set b "abc"].[set c "def"] 
//return xyzabcdef 

  Backslash substitution 转移符替换

  转移符时间不可打印字符或由它数意义的字符插入进来。这一概念与C语言中的一样。


 Backspace (0x8). 
f Form feed (0xc). 

 Newline (0xa). 

 Carriage-return (0xd). 
 Tab (0x9). 
v Vertical tab (0xb). 
{ Left brace (`{"). 
} Right brace (`}"). 
[ Open bracket (`["). 
] Close bracket (`]"). 
$ Dollar sign (`$"). 
sp Space (` "): does not terminate argument. 
; Semicolon: does not terminate command. 
" Double-quote. 

  Grouping arguments with braces 用花扩括号来集群参数

  用花扩括号来集群参数与用双引号来集群参数的区别在于:用花扩括号来集群参数其中的三种上述的子替换不被执行。而且可以嵌套。

  例如:


set a {xyz a {b c d}}//set收到俩个参数 a "xyz a {b c d}" 
eval { 
set a 22 
set b 33 
}//eval收到一个参数 "set a 22
set b 33" 

命令综述

  1.一个命令就是一个字符串(string)。

  2.命令是用换行符或分号来分隔的。

  3.一个命令由许多的域组成。第一个于是命令名,其它的域作为参数来传递。

  4.域通常是有空白(Tab横向制表健 Space空格)来分开的。

  5.双引号可以使一个参数包括换行符或分号。三种子替换仍然发生。

  6.花括号类似于双引号,只是不进行三总体换。

  7.系统只进行一层子替换,机制替换的结果不会再去做子替换。而且子替换可以在任何一个域进行。

  8.如果第一个非控字符是`#", 这一行的所有东西都是注释。

表达式

  对字符串的一种解释是表达式。几个命令将其参数按表达式处理,如:expr、for 和 if,并调用Tcl表达式处理器(Tcl_ExprLong, Tcl_ExprBoolean等)来处理它们。其中的运算符与C语言的很相似。

! 

  逻辑非


* / % + - 
<< >> 

  左移 右移 只能用于整数。

< > <= >= == != 

  逻辑比较

& ^ | 

  位运算 和 异或 或

&&'  '

  逻辑"和" "或"

x ? y : z 

  If-then-else 与C的一样

  Tcl 中的逻辑真为1,逻辑假为0。

  一些例子:


5 / 4.0 
5 / ( [string length "abcd"] + 0.0 ) 

  计算字符串的长度 转化为浮点数来计算


"0x03" > "2" 
"0y" < "0x12" 

  都返回 1


set a 1 
expr $a+2 
expr 1+2 

  都返回 3

分享到:
评论

相关推荐

    Tcl编程简介 TCL脚本

    TCL简介  Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,功能强大。是tool command language的缩写,发音为 "tickle”, 实际上包含了两个部分:一个语言和一个库。  首先,Tcl是一种简单的...

    Tcl 编程初步.xdf

    TCL编程初步(学习TCL语言)

    tcl脚本基础 tcl编程

    tcl脚本基础 简绍tcl的基本用法 以及提出来的编程方法

    TCL脚本语言编程_tcl_TCL校本编程_

    快捷应用类语言,TCL编程初步基础学习书籍。

    TCL+TCL脚本语言编程+TCL语言教程

    TCL+TCL脚本语言编程+TCL语言教程TCL+TCL脚本语言编程+TCL语言教程TCL+TCL脚本语言编程+TCL语言教程

    Tcl/TK编程权威指南.part2.rar

    Tcl/Tk是第一种能通过Windows、Macintosh和Solaris等主要平台处理企业级任务的脚本语言。本书共分为55章,依次详细讲述了 Tcl基础、Tcl高级特性、TK基础、TK组件、TK详解、C语言编程、各版本之间的差异等方面的知识...

    Tcl_TK编程权威指南pdf

    内容简介回到顶部↑Tcl/Tk是第一种能通过Windows、Macintosh和Solaris等主要平台处理企业级任务的脚本语言。本书共分为55章,依次详细讲述了Tcl基础、Tcl高级特性、TK基础、TK组件、TK详解、C语言编程、各版本之间的...

    TCL.rar_tcl

    Tcl编程简介 一个很好的中文WORD文档

    TCL编程初步

    Tcl编程初步 总目录 总目录 I 例索引. IV 表索引.VI 图索引VII 第 1 章. TCL基本知识 1 1.1 什么是 TCL ..1 1.2 TCL自学工具..1 1.3 TCL软件包 ..2 1.4 TCL命令格式..2 1.5 TCL脚本文件和 SOURCE 命令..3...

    TCL编程说明文档

    TCL编程说明文档,一种脚本语言。 由John Ousterhout创建。 TCL很好学,功能很强大。TCL经常被用于 快速原型开发,脚本编程, GUI和测试等方面。

    tcl socket 编程实例

    tcl socket 编程实例,有详细的编程实例,找了好长时间,很好,很强大

    TCL脚本语言编程.pdf

    TCL脚本语言编程.pdf。TCL脚本语言编程.pdf

    TCL脚本语言编程资料

    个人觉得是一个比较好的介绍Tcl脚本编程的资料,希望大家喜欢!

    TCL-TK编程实践

    TCL-TK编程实践

    TCL程序编程规范

    TCL程序编程规范

    tcl与C++联合编程

    TCL与C++联合编程,在Linux下进行简单图形开发。使用方便灵活。tcl是既是脚本语言,它也包含了图形库tk。。。。。。

    TCL脚本语言编程

    很好的TCL入门知识资料,欢迎需要的同学们下载

    面对对象的TCL编程--ITCL [incr TCL]

    面对对象编程的TCL, Object-Oriented Programming with [incr Tcl]

Global site tag (gtag.js) - Google Analytics