目录
1. TCL是什么类型的语言?
1.1 从二进制开始
二进制(binary)是计算机所能理解的语言,也被称为机器语言或机器代码。这种语言可以被计算机直接识别,不需要经过翻译。机器代码给计算机发号施令,由CPU(central processing unit)来运行。我们知道CPU内部其实是一堆开关,也就是说机器语言简单到能让CPU处理,所以机器语言也被认为是低级语言,我们可以把这类低级语言理解为计算机的“母语”。
而实际上我们编写不出这种机器代码,并且机器代码对于人类而言可读性差,所以方便理解,我们自己开发出便于自身理解的语言,称为高级语言,这种语言是我们方便理解和阅读的,但是对于计算机而言不可读。所以问题来了,如何让计算机理解我们写的代码?换句话说,如何将我们的代码翻译为计算机能识别的机器代码?
1.2 编译器和解释器
我们知道了,我们并不能编写机器代码,而计算机却只能理解机器代码,所以我们编写的代码是如何进入到计算机的0和1的世界的呢?这里我们需要一个翻译器,能够将我们编写的代码翻译成机器可读的机器代码。翻译器有两种:编译器(compiler)和解释器(interpreter)。
下面我们并不对这两种翻译器做深入探讨,仅仅了解其区别和作用即可。
编译器:将源代码一次性翻译为由机器代码编写的文件—称为可执行文件。这个可执行文件可以反复运行。
解释器:和编译器一样,也是将高级语言(源代码)转换成机器代码。但是它一次仅翻译源代码的一部分,并在翻译后立刻执行该部分,然后继续翻译下一段代码并立刻执行。
1.3 编译型语言和解释型语言
由此,编程语言也可以分为编译型语言和解释型语言。
编译型语言:使用编译器来编译执行的编程语言。这类语言往往花费较长的编译时间,但是编译完成后,会有很好的运行性能。代表:C、C++。
解释型语言:使用解释器来解释执行的编程语言。这类语言不需要编译,程序执行到了对应的语句,解释器才会去解释对应的语句。由于没有编译过程,所以存在语法错误,也得等到运行期间才会被发现。
想象这样一个场景:你在学习TCL语言时,买了TCL语言相关的书籍。编译器就好比你买了张元章翻译过来的那本Tcl/Tk入门经典,张元章已经帮你一次性编译好了,你拿着编译好的中文书阅读就行。你要知道他编译花了很长时间,但是你阅读器来很轻松。解释器就好比你买的是John K. Ousterhout著作的英文书籍,你学习的时候需要一边用翻译软件翻译成中文阅读,一边学习。
2. 总结
到这,我们也就能理解下面这些话了。
“TCL是一种解释执行的脚本语言”
“使用TCL应用程序时,可以在运行中生成和使用新的脚本,而无需重新编译和重启应用程序,这使得我们可迅速尝试新的想法,迅速修正程序中的错误”
“TCL脚本执行依赖于解释器(逐行执行)”
以上是个人学习的记录,目的是为了加深印象、加深理解。如有错误,还望指正!