随笔/0612——编程语言
2023-06-11 本文已影响0人
刘东利2020
这么多编程语言,到底意味着啥?《黑客与画家》这么说:
当你按照Java、Perl、Python和Ruby这样的顺序观察这些语言,你会发现一个有趣的结果。如果你是一个Lisp黑客,你就看得出来,排在越后面的语言越像Lisp。Python语言模仿Lisp,甚至把许多Lisp黑客认为属于设计错误的功能也一起模仿了。至于Ruby语言,如果回到1975年,你声称它是一种有着自己句法的Lisp方言,没有人会提出反对意见。编程语言现在的发展不过刚刚赶上1958年时Lisp语言的水平。
简单说,因为这种语言本质上不是一种技术,而是数学。数学是不会过时的。你不应该把Lisp语言与50年代的硬件联系在一起,而是应该把它与快速排序算法进行类比。这种算法是1960年提出的,至今仍然是最快的通用排序方法。
那怎么设计一门新的编程语言呢?某乎回答:
1. 语义设计
2. 语法设计
3. 实现一个编译器
放在一起考虑,就很有趣 —— Lisp是数学,所以本应最符合计算机这种0-1逻辑的东西;人类的语言有模糊性,但是在很多时候提高了效率 —— 因为有不自觉的概率计算吧?