tcl语言

Tcl基础

故事扮演 提交于 2020-01-22 16:42:42
tcl简介 Tcl 表示工具命令语言(Tool Command Language),属于动态变成语言,它是一种流行的脚本编制语言,最初由加州大学伯克利分校的 John Ousterhout 教授开发。John Ousterhout 打算将 Tcl 作为一种将其它程序组件粘合在一起的语言,既可以以同其它脚本语言相同的方式将 Tcl 用作交互式 shell/脚本解释器,也可以将其作为脚本解释器嵌入您自己的 C 应用程序。在这种方式下,它就变成了一种向您自己的程序中添加脚本编制控制的方法,并且它提供了一些接口,这些接口允许您用自己的以 C 语言实现的脚本命令扩展基本 Tcl 语言. Tcl 还有各种扩展,诸如 Tk,UI 工具箱,以及 Expect,Expect 是一种扩展,用于自动化同其它基于 shell 的命令(例如 telnet 和 ftp)的交互。 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,功能强大。 Tcl包含了两个部分:一个语言和一个库。   首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一 些互交程序如文本编辑器、调试器和shell。它有一个简单的语法 和很强可扩充性,Tcl可以创建新的过程以增强其内建命令的能力。 其次,Tcl是一个库包,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程和可以使你扩充(定义新的 过程

[TimLinux] TCL 自定义包

感情迁移 提交于 2019-12-14 11:11:41
1. 包 很多功能存放在一起,定义为一个包,在iTcl(Incr TCL)之后,可以定义一个类,类可以放在一个包里面,包为一个独立的文件,可以为TCL文件,也可以为C/C++语言实现的动态库。 2. 代码结构 . ├── env.sh // 提供了 TCL_PACKAGE_ROOT 环境变量 ├── lib │ ├── init.tcl // tcl 执行时,source 该变量,提供auto_path寻找包的路径 │ ├── libpkg.so // C语言提供的包 │ ├── pkg.c // C代码,编译成libpkg.so │ ├── pkgIndex.tcl // 包导出方法,该文件生成命令为tclsh环境中执行:pkg_mkIndex -- ./ *.so tools/*.tcl │ └── tools │ └── basic.tcl // Tcl提供的包 └── tst └── test.tcl // 测试代码 3. 各文件内容 3.1. env.sh #!/bin/bash export TCL_PACKAGE_ROOT=$(pwd) 3.2. lib/init.tcl if {[info exists env(TCL_PACKAGE_ROOT)] && (string trim $env(TCL_PACKAGE_ROOT) != "")} { lappend

为什么说Tcl是最好的语言?

╄→гoц情女王★ 提交于 2019-12-05 12:12:15
为什么说Tcl是最好的语言? 因为最近的一个项目,粗略了解了很多适合嵌入式的小语言,PHP,Perl,Python这些已经不能算小了,Lua发展的不错但进化仍然缓慢,Squirrel和Lua很类似但采用了类C语法,另外还有很多有特色的小语言,包括Jx9,Pawn,Pike等等;语法都不古怪;Scheme或者Forth一类则更适合CS专业背景,喜欢抽象逻辑的开发者使用;当然这个列表中不能忽视Javascript,不只是因为它流行,JS从Day 1开始就是为嵌入应用设计的轻量级语言,没有太多的库依赖,语法简洁,如果不在意性能,它可以用非常小的解释器实现,例如Espruino就是基于开源项目TinyJS发展出来的,很不错。 Tcl则处在一个奇怪的位置;它现在在TIOBE的排名是100左右,基本上排在大多数程序员听说过的所有编程语言之后,但它曾经很流行,在Java出现之前;在它流行的年代,计算设备的性能很低;Unix Shell是主要的竞争对手,LISP是一个美丽的泡泡;所以Tcl从一出生开始在形式上就带有这两种语言的特点:Shell的字符串展开,LISP的表达式优先和空格分隔符;这两点可能让熟悉类C语法的大多数现代程序员都不适应; Tcl出现的年代,GUI刚起步;在各种当时还是非常封闭的平台上写高效的GUI程序并不容易,Tk图形库一出现就受到了极大欢迎

TCL语言笔记:TCL基础语法

无人久伴 提交于 2019-12-05 12:10:04
TCL语言笔记:TCL基础语法 一、什么是TCL Tcl 全称是 Tool command Language。它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握。 Tcl 语言是一个解释性语言,所谓解释性是指不象其他高级语言需要通过编译和联结,它象其他 shell 语言一样,直接对每条语句顺次解释执行。 Tcl 数据类型简单。对 Tcl 来说,它要处理的数据只有一种——字符串。Tcl 将变量值以字符串的形式进行存储,不关心它的实际使用类型。 二、TCL的基本语法 1.输出:tcl使用”puts"关键字来作为输出语句 [ 语法 ] : puts ?-nonewline? ?channelId? string Tcl 的输出命令是“puts”,将字符串输出到标准输出 channelId 。语法中两个问号之间的参数为可选参数。 puts hello 结果 => hello puts –nonewline "hello hello" 结果 =>hello hello 但如果输出一段有空格的文本,则要用双引号或者花括号括起来 -nonewline 选项告诉 puts 不输出回车换行 。 注意: 双引号和花括号的作用是将多个词组织成一个变元 ,但他们是有差别的!这种差别就是在处理“替换操作”时, 前者允许替换发生 ,而 后者则可能会阻止替换 。关于两者用法与差别以后会陆续讲到

tcl/tk学习笔记:数学表达式与 expr 命令

隐身守侯 提交于 2019-12-05 12:06:33
教材:陈涛 Tcl 编程初步 tcl/tk入门经典(2) 1.除了自加自减,tcl的数学和逻辑运算符,运算符优先级,数学函数与相似。 2.自加自减速运算用incr命令完成 incr varName ?step? 没有后一个参数表示加1,incr a -n表示减n。 3.expr命令将它的参数做表达式处理。expr 4+2;expr log10(100); 4.if语句 这个命令会将他的第一个参数当做表达式 if {x<10} {set a=x} 5.在tcl8.5中,当表达式解析器遇到像sin($x),log10($y)等数学函数时,它会将函数替换为对tcl::mathfunc命名空间中一个普通命令的调用。 例 expr {sin($x+$y)}和expr {[tcl::mathfunc::sin [expr {$x+$y}]]}一样。 如果数学函数有多个参数 例 expr pow($x+2,$y/2)和expr {[tcl::mathfunc::pow [expr {$x+2}] [expr {$y/2}]} 6.tcl允许定义自己的数学函数,只在tcl::mathfunc命名空间中创建新的命令就可 例 proc tcl::mathfunc::avg {args} { if {[llength $args] == 0} { return -code error "too few

TCL语言学习笔记一

假装没事ソ 提交于 2019-12-05 12:02:08
*1 1.使用proc命令定义一个函数,并成功调用它。 之前写函数一直调用不成功的原因时函数体中的语句没有用分号隔开,导致出错。 2.使用source命令调用一个tcl文件(一般windows下会隐藏扩张名,要更改一下设置,使其可以直接修改)。 新建文本,输入命令,并把扩展名改为.tcl 在控制台用source命令调用新建的tcl文件。 *2 1.在tcl文件中定义两个函数,并用source命令调用它们 注意空格的使用! 2.tcl语言中换行的使用: 在tcl文件中定义一个包含if 语句的函数,并学会使用stringcompare命令进行字符串比较。 其中stringcompare 语句比较完之后结果取逻辑非,因为默认比较字符串一致会返回0. *3 在一个tcl 文件里编辑button组件,并用source命令调用它。 这里写图片描述 控制台调用: 效果展示: 来源: CSDN 作者: 见南山 链接: https://blog.csdn.net/weixin_42926432/article/details/81542273

TCL脚本语言详解

爱⌒轻易说出口 提交于 2019-12-05 12:01:52
语言简介 TCL 是一种很通用的脚本语言,功能强大。 最早称为“工具命令语言”" Tool Command Language ",但是目前已经不是这个含义,不过我们仍然称呼它TCL,发音为"tickle”。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。 实际上包含了两个部分:一个语言和一个库。首先, Tcl 是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和 shell 。 它有一个简单的语法和很强可扩充性,Tcl可以创建新的过程以增强其内建命令的能力。 其次, Tcl 是一个库包,可以被嵌入应用程序, Tcl 的库包含了一个分析器、用于执行内建命令的例程和可以使你扩充(定义新的过程)的库函数。 应用程序可以产生Tcl命令并执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。但Tcl库收到命令后将它分解并执行内建的命令,经常会产生递归的调用。 Tcl 数据类型简单。对 Tcl 来说,它要处理的数据只有一种——字符串。 Tcl将变量值以字符串的形式进行存储,不关心它的实际使用类型。 内嵌的 Tk ( toolkit )图形工具可以提供简单而又丰富的图形功能 ,让用户可以轻松的创建简单的图形界面。 Tcl的执行是交互式的,Tcl提供了交互式命令界面,界面有两种:tclsh和wish。tclsh只支持Tcl命令

Vivado中的TCL脚本语言

匿名 (未验证) 提交于 2019-12-03 00:03:02
本文介绍了Tcl在Vivado中的基础应用,希望起到抛砖引玉的作用,指引使用者在短时间内快速掌握相关技巧,更好地发挥Vivado在FPGA设计中的优势。 Vivado TCL脚本语言 使用Tcl作为它的命令语言的好处: 基本语法和基础命令 命令格式 一条Tcl的命令串包含了多条命令时,用换行符或分号来隔开,而每一条命令包含了一个域的集合,域使用空白分开的,第一个域是一个命令的名字,其它的是作为参数来传给它。 02 数据类型 Tcl只支持一种数据结构:字符串。所有的命令、命令里的所有的参数、命令的结果、变量全部都是都是字符串。 简单实例: 03 设置变量 %set myVar"Hello World!" //设置一个名为myVar的变量,其值为Hello World! 04 使用$符号引用变量 其中puts是打印命令 05 使用[]将命令返回值,作为新命令的参数 Vivado set i [set j 232] ; puts $i 232 06 数组 引用的时候直接$i(1,2,3)即可 Vivado set k<0> 11 ; set k<2> 22 ; set k<0> xx ; array name k x 0 2 Vivado array startsearch k s-1-k Vivado array nextelement k s-1-k x Vivado array