图书简介: 这是一本很有特色的教材,其核心是讨论程序设计语言的工作原理和技术。本书融合了传统的程序设计语言教科书和编译教科书的有关知识,并增加了一些有关汇编层体系结构的材料,以满足没学过计算机组织的学生们的需要。书中通过各种语言的例子,阐释了程序设计语言的重要基础概念,讨论了各种概念之间的关系,解释了语言中许多结构的形成和发展过程,以及它们演化为今天这种形式的根源。书中还详细讨论了编译器的工作方式和工作过程,说明它们对源程序做了什么,以及为什么要那样做。书的每章最后附有复习题和一些更具挑战性的练习。这些练习的特别价值在于引导学生进一步深入理解各种语言和技术。 本书在美国大学已有使用了十余年,目前被欧美许多重要大学用于“程序设计语言”或者“软件系统”课程。本书适合高年级本科生或者一年级研究生使用,许多内容对专业程序员也很有价值。本书作者MichaelScott是计算机领域的著名学者,译者是北京大学的裘宗燕教授,他熟悉专业,译笔流畅,是一本难得的著、译双馨的佳作。 图书目录: 前言 第1章引言 1.1语言设计的艺术 1.2程序设计语言的谱系 1.3为什么研究程序设计语言 1.4编译和解释 1.5程序设计环境 1.6编译概览 1.6.1词法和语法分析 1.6.2语义分析和中间代码生成 1.6.3目标代码生成 1.6.4代码改进 1.7总结和注记 1.8复习 1.9练习 1.10有关参考文献 第2章程序设计语言的语法 2.1.1单词和正则表达式 2.1.2上下文无关文法 2.1.3推导和语法分析树 2.2识别语法:扫描器和语法分析器 2.2.1扫描 2.2.2自上而下和自下而上的语法分析 2.2.3递归下降 2.2.4语法错误 2.2.5表格驱动的自上而下语法分析 2.2.6自下而上的语法分析 2.3理论基础 2.3.1有穷自动机 2.3.2下推自动机 2.3.3文法和语言类 2.4总结和注记 2.5复习 2.6练习 2.7有关参考文献 第3章名字、作用域和约束 3.1约束时间的概念 3.2对象生存期和存储管理 3.2.1基于堆栈的分配 3.2.2堆分配 3.2.3废料收集 3.3作用域规则 3.3.1静态作用域 3.3.2动态作用域 3.3.3符号表 3.3.4关联表和中心引用表列 3.4引用环境的约束 3.4.1子程序闭包 3.4.2一级和二级子程序 3.5重载和相关概念 3.6语言设计中与名字有关的缺陷 3.6.1作用域规则 3.6.2分别编译 3.7总结和注记 3.8复习 3.9练习 3.10有关参考文献 第4章语义分析 4.1语义分析器所扮演的角色 4.2属性文法 4.3属性流 4.4动作例程 4.5属性的空间管理 4.5.1自下而上求值 4.5.2自上而下求值 4.6语法树的标注 4.7总结和注记 4.8复习 4.9练习 4.10有关参考文献 第5章汇编层计算机体系结构 …… 第6章控制流 第7章数据类型 第8章子程序和控制抽象 第9章构造可运行程序 第11章非命令式程序设计模型:函数式和逻辑式语言 第12章并发 第13章代码改进 附录A本书中提到的程序设计语言 附录B语言设计和语言实现 参考书目 索引 |