tcl概述
tcl,全名tool command language,是一种通用的工具语言。
1)每个命令之间,通过换行符或者分号隔开;
2)tcl的每个命令包含一个或者多个单词,默认第一个单词表示命令,第二个单词表示参数,
单词之间必须同空格或者tab键隔开;
3)tcl解释器的执行过程,分析阶段,对单词的拆分,同时进行必要的置换;
执行阶段,检查命令有效性,启动c/c++解释器,传递之后的单词作为参数,执行命令;
4)tcl中的注释,用###来表示,一个就可以。必须在一行的开头
5)同一行命令太长,转到下一行,使用\ //,先转义空格隔开单词,之后//表示转到下一行;
6)大括号,{}中,不做特殊字符的识别,所有字符作为普通字符来处理;
7)双引号,""""中,只有部分的特殊字符被处理,换行符,$,[],其他作为普通字符;
8)tcl对复杂的数据结构支持不好,数组的支持也很奇怪。本文只讨论变量;
9)tcl中的list 数据类型,不声明变量,直接放在{}中,也定义了一些list操作函数,直接对{}进行操作;
list中的不同对象之间用空格隔开;可以将list赋值给一个变量
tcl中的置换有三种:
1)变量置换,$只是进行变量的简单替换,并不进行运算;
set x 10; set y $x+100; 那y的值是10+100,被当做一个整体的字符来处理,而并没有进行运算;
2)命令置换,[,将最后一个命令的执行结果返回作为参数,内部可以有多条命令;
set y [expr $x+100;] 这时的y表示110;[]中的命令必须是若干tcl可识别的正确命令;
3)反斜杠置换,\,用来打出一些特殊的字符;如换行符\n,空格,[,$,并没有另一个方括号];
set msg money\ \$3333\ \nArray\ a\[2] 输出money $3333
Array a[2]
tcl中的操作数,整数,实数都可以,0x开头表示十六进制,o开头表示八进制;
运算符和优先级与C类似;
tcl中的控制流,while,for,if,foreach,switch,各个参数用空格隔开,可以使用{}包住各个分开的参数;
其中的{},{必须写在与命令一行的地方,避免tcl认为命令已经结束;
break和continue,来控制单个循环;
tcl中的默认命令:
1)set 设置变量,变量命令也遵守C的标准,字符,数字,下划线;
set a 2; $a表示该变量
2)unset,删掉某个变量;可以加多个变量 unset a b;表示都被删除
3)append,变量拼接, incr,操作数必须是整数,相加;
4)expr,数学计算命令,参数必须是数字,支持很多C的运算函数,可以直接调用;
tcl中的输入输出:
1)scan,可以实现格式化输入:
scan "some 26 34" "some %d %d" a b
2)puts,格式化输出:
puts [format "the value of c is %d, d is %d, e is %d, f is %d" $c $d $e $f]
tcl中的错误,异常处理:
1)catch command ? varname,执行command,返回之后的结果为命令返回值,或者直接赋值给变量var_name;并不会退出tcl
2)error message ? info ? code,将message作为一个错误信息,返回回去,
扔缺少procedure,文件,字符串处理部分,需要补充;
from:_9_8
tcl概述的更多相关文章
- Tcl与Design Compiler (二)——DC综合与Tcl语法结构概述
1.逻辑综合的概述 synthesis = translation + logic optimization + gate mapping . DC工作流程主要分为这三步 Translation : ...
- DC综合与Tcl语法结构概述
转载:https://www.cnblogs.com/IClearner/p/6617207.html 1.逻辑综合的概述 synthesis = translation + logic optimi ...
- Tcl与Design Compiler (三)——DC综合的流程
本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 1.基本流程概述 首先 ...
- Tcl与Design Compiler (四)——DC启动环境的设置
本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 主要内容有: ·启动环 ...
- linux 设备驱动概述
linux 设备驱动概述 目前,Linux软件工程师大致可分为两个层次: (1)Linux应用软件工程师(Application Software Engineer): 主要利用C库函数和 ...
- 菜鸟崛起 DB Chapter 2 MySQL 5.6的概述与安装
在上文菜鸟崛起 DB Chapter 1 数据库概述我们初步认识了数据库,也知道市面上常见的几种数据库,下面我们就针对常见的MySQL数据库展开对DataBase的探讨. 2.1 MySQL介绍 M ...
- 数据库SQL语言从入门到精通--Part 1--SQL语言概述
数据库从入门到精通合集(超详细,学习数据库必看) 一.SQL概述 关系数据库标准语言SQL(结构化查询语言). 结构化查询语言(Structured Query Language)简称SQL,是一种特 ...
- 【AR实验室】ARToolKit之概述篇
0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
随机推荐
- 堆栈相关的经典题(c++)
1.定义队列 typedef struct node{ int data; struct node * next; }Node; typedef struct linkQueue { Node * f ...
- AN INTEGER FORMULA FOR FIBONACCI NUMBERS
https://blog.paulhankin.net/fibonacci/ This code, somewhat surprisingly, generates Fibonacci numbers ...
- 什么是云效持续集成?如何关联Jenkins进行持续集成?
什么是云效持续集成?如何关联Jenkins进行持续集成?云效流水线 Flow是一款企业级.自动化的研发交付流水线, 提供灵活易用的持续集成.持续验证. 持续发布功能,帮助企业高质量.高效率的交付业务. ...
- 云原生学习筑基 ~ 组网必备知识点 ~ DNS服务
@ 目录 一.为啥写这篇文章? 二.DNS的作用 三.域 四.DNS工作原理 五.搭建DNS服务器 5.1.Bind 5.2.系统环境准备 5.3.安装 5.4.查看bind的相关文件 5.5.查看b ...
- 性能测试工具JMeter 基础(九)—— 测试元件: 逻辑控制器之交替控制器
交替控制器:根据被控制器触发执行次数,去依次执行控制器下的子节点(逻辑控制器.采样器),可以由线程组的线程数.循环次数.逻辑控制器触发. 交替控制器(lnterleave Controller) 简单 ...
- HCNP Routing&Switching之IS-IS报文结构和类型
前文我们了解了IS-IS动态路由协议基础相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15249328.html:今天我们来聊一聊IS-IS动态路由协 ...
- JS021. 拦截事件的显式处理与默认动作(Web API: event.preventDefault)
Web API - event.preventDefault( ) Event 接口的 preventDefault( ) 方法,告诉 user agent :如果此事件没有被显式处理,它默认的动作 ...
- 如何实现 iOS 短视频跨页面的无痕续播?
在一切皆可视频化的今天,短视频内容作为移动端产品新的促活点,受到了越来越多的重视与投入.盒马在秒播.卡顿率.播放成功率等基础优化之外,在用户使用体验上引入了无痕续播能力,提升用户观看视频内容的延续性. ...
- (4)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Spring Cloud开发环境的准备和Lombok安装步骤
开发环境的准备主要涉及三个方面:JDK.Maven.Spring Tools 4 for Eclipse. 1.JDK JDK 的版本用 1.8 即可,环境变量大家自行去配置.配置好环境变量,在命 ...
- 【第十八篇】- Maven Eclipse之Spring Cloud直播商城 b2b2c电子商务技术总结
Maven Eclipse Eclipse 提供了一个很好的插件 m2eclipse ,该插件能将 Maven 和 Eclipse 集成在一起. 在最新的 Eclipse 中自带了 Maven,我们打 ...