有没有哪种编程语言的所有东西都是字符串。例如,让我们考虑下面这段Tcl代码片段(注释显示了C/Java中的等价语句)。
set x [append ab cd] ;# c = "ab" + "cd"
set m 1 ;# m = 1
set n [expr $m + 1] ;# n = m + 1
实际上,这与C或Java等语言中的情况相反;在这里,默认情况下我们键入的是一个文字字符串,除非它是一个“特殊”字或前面有$符号(在这种情况下,$后面的字符串是一个变量)。
Paul Graham写了这个,但对我来说,这看起来一点也不特别或明确。
ISTM认为编程语言由两件事定义:它的编译器或解释器,它通过fiat定义语言的语法和语义;以及它的标准库,它在很大程度上定义了熟练用户在用该语言编写代码时将使用的习惯用法和技术。
除了一些特殊的例外(例如,.NET家族的非C#成员),大多数语言的标准库都是用这种语言编写的,原因有两个:因为它将共享相同的语法定义、函数调用约定和该语言的通用“外观”,以及因为可能为编程语言编写标准库的人是它的用户,特别是它的设计者。所以没有什么特别的;这是非常标准的。
再说一次,一种语言的编译器本身并没有什么特别或不寻常的地方。C编译器是用