第1部分 基础
本书的一个核心前提是语言的设计和实现是紧密相连的,很难只学习其中一门。
正文第2部分和第3部分主要围绕语言的设计进行组织,但同时详细介绍了实现对设计的影响。
第1部分前5章介绍了设计和实现中的基础内容。第1章引入了对编程语言的研究,介绍了主要的语言家族,并概述了编译过程。第3章介绍了程序的高级结构,重点介绍了名称、名称与对象的绑定,以及决定何时绑定处于有效状态的范围规则,这个过程涉及到存储管理;子程序、模块和类;多态和分离编译。
第2章、第4章和第5章则更加侧重实现,它们是理解第2和第3部分中的实现相关问题所需要的背景知识。第2章讨论了程序的语法(或者称为文本结构),引入了设计者用来描述程序语法的正则表达式和上下文无关文法,以及编译器或解释器用来识别语法的扫描和解析算法。在理解语法的基础上,第4章解释了编译器(或解释器)如何确定程序的语义,相关讨论围绕属性语法展开。属性语法用于将程序映射到其它有意义的东西上,例如数学或其它现有语言。最后,第5章(完全在配套网站上)从汇编的角度概述了计算机体系结构,重点介绍了现代微处理器中与编译器最为相关的特性。了解这些特性不仅有助于程序员理解语言为何这样设计,还有助于他们尽可能充分和有效地发挥语言的功能。