编程语言的邀请 0 前言

我一直有写一本编程语言导引的打算, 但是这个打算最多也只能算是部分完成了. 而且, 仅考虑完成的部分, 也不能令我满意, 毕竟它似乎对于不懂编程语言的人没有任何的吸引力. 诚然, 我也有些过于理想化了, 毕竟我回答不了"为什么要学习编程语言"这种问题.

我希望对于编程语言感兴趣的初中生高中生可以读读我写的材料. 至于大学生, 那还是读读Types and Programming Languages这种标准教材吧.

我们介绍编程语言的方法可以追溯至John McCarthy为了刻画Lisp的威力而编写的元解释器 (Lisp写的Lisp解释器). 一个解释器以程序文本 (的表示) 为输入, 以值为输出, 因而它可以被视为对于其所解释的语言的语义的描述. 这种方法所遇到的根本困难在于为了刻画某个编程语言的语义, 首先要刻画编写解释器所用的语言的语义. 我们没有为这个困难而烦扰, 因为我们依赖于读者对于语义的直觉. 自始至终, 我们都使用Scheme来编制程序, Scheme是Lisp的主要方言之一, 选择它的原因不过是因为用所谓的符号表达式表示抽象句法树很方便罢了.

我们的解释器在风格上近于大步操作语义, 或者说自然操作语义, 而不是小步操作语义. 我们很少证明关于程序的性质, 而是强调读者首先应该先从直觉上进行理解, 这对于以后严肃的学习完全是必要的.

你的回應