编程:面向问题的语言 [pdf]
本文介绍了一种面向问题的语言(POL)的设计与编程方法,探讨了如何构建专门用于特定问题领域的编程语言。作者通过具体案例展示了POL的语法定义、编译器实现及其在解决实际工程问题中的应用优势,强调了这种语言范式在提升编程效率和问题表达清晰度方面的价值。
背景速读
- 这是 Charles L. Moore 于 1970 年撰写的经典论文,首次系统阐述了 **Forth 编程语言** 的设计理念与实现方法。Forth 是一种以栈为核心、极度简洁的交互式语言,后来在嵌入式系统、天文台控制和早期微计算机领域影响深远。
- Charles "Chuck" Moore 是美国计算机科学家,在 1960 年代末为解决自己写控制软件的痛苦而发明了 Forth。他追求"最小语言"——一个足够灵活、能自行扩展的底层工具集。
- 该论文的标题"Problem-Oriented Language"(面向问题的语言)是 Moore 的核心观点:语言不应由编译器的语法决定,而应由要解决的问题来"生长"出所需的词汇和操作符。
- 文中描述了 Forth 最独特的机制:**逆波兰表示法**(RPN,运算符后置)、**数据栈和返回栈**、**词典驱动**的单词定义、以及**编译时/运行时混用**的元编程能力。这些设计当时是对 FORTRAN 和 ALGOL 主流范式的彻底反叛。
- 该论文在黑客文化和编程语言设计史中地位极高,因为它展示了一种"少即是多"的极端实现——整个编译器/解释器可写在一张软盘里,却足以构建一套完整的操作系统和数据库。