程序设计语言与编译:语言的设计和实现

程序设计语言与编译:语言的设计和实现
作 者: 龚天富
出版社: 电子工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 高级程序语言设计
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《程序设计语言与编译:语言的设计和实现》作者简介

内容简介

本书是一本计算机专业的宽口径教材,新版按照CC2001和CCC2002教程改写,覆盖除自动机外编程语言模块的全部内容。一个程序设计语言涉及设计者、实现者和使用者。读者在阅读本书之前,都学习过1~2门高级编程语言,已经是语言的使用者。本书是一本计算机专业的宽口径教材,新版覆盖CC2001和CCC2002教程中,除自动机外编程语言(PL)模块的全部知识点。其内容涉及语言及其编译系统的设计要素、设计思想、设计方法、设计技术和设计风格等知识,全书分为上、下篇。上篇,程序设计语言的设计包括:绪论、数据类型、控制结构、程序语言设计、非过程式程序设计语言和形式语义学简介。下篇,程序设计语言的实现(编译)包括:编译概述、词法分析、自上而下的语法分析、自下而上的语法分析、语义分析和中间代码的生成、代码优化和目标代码生成、运行时存储空间的组织等。本书的学习目标是,使读者掌握设计和实现一个程序设计语言的基本思想和方法,具有分析、鉴赏、评价、选择、学习、设计和实现一个语言的基本能力。本书力求简明、通俗,注重可读性,是大学计算机专业高级程序设计语言概论及编译技术课程教材,也是软件开发人员的学习参考书。

图书目录

上篇 程序设计语言的设计

第1章 绪论

11 引言

12 强制式语言

121 程序设计语言的分类

122 冯·诺依曼体系结构

123 绑定和绑定时间

124 变量

125 虚拟机

13 程序单元

14 程序设计语言发展简介

141 早期的高级语言

142 早期语言的发展阶段

143 概念的集成阶段

144 再一次突破

145 大量的探索

146 Ada 语言

147 第四代语言

148 网络时代的语言

149 新一代程序设计语言

习题1

第2章 数据类型

21 引言

22 内部类型

23 用户定义类型

231 笛卡儿积

232 有限映像

233 序列

234 递归

235 判定或

236 幂集

24 Pascal语言数据类型结构

241 非结构类型

242 聚合构造

243 指针

25 Ada语言数据类型结构

251 标量类型

252 组合类型

26 C语言数据类型结构

261 非结构类型

262 聚合构造

263 指针

264 空类型

27 抽象数据类型

271 SIMULA 67语言的类机制

272 CLU语言的抽象数据类型

273 Ada语言的抽象数据类型

274 Modula-2语言的抽象数据类型

275 C++语言的抽象数据类型

28 类型检查

29 类型转换

210 类型等价

211 实现模型

2111 内部类型和用户定义的非结构类型实现模型

2112 结构类型实现模型

习题2

第3章 控制结构

31 引言

32 语句级控制结构

321 顺序结构

322 选择结构

323 重复结构

324 语句级控制结构分析

325 用户定义控制结构

33 单元级控制结构

331 显式调用从属单元

332 隐式调用单元——异常处理

333 SIMULA 67语言协同程序

334 并发单元

习题3

第4章 程序语言的设计

41 语言的定义

411 语法

412 语义

42 文法

421 文法的定义

422 文法的分类

423 文法产生的语言

424 语法树

43 语言的设计

431 表达式的设计

432 语句的设计

433 程序单元的设计

434 程序的设计

44 语言设计实例

45 一些设计准则

习题4

第5章 非过程式程序设计语言

51 引言

52 函数式程序设计语言

521 函数

522 数学函数与程序设计语言函数

523 一种简单的纯函数式语言

524 LISP语言概述

525 APL语言概述

526 作用式语言和命令式语言的比较

53 逻辑程序设计语言

531 逻辑程序设计

532 Prolog语言概述

533 逻辑程序设计展望

54 面向对象程序设计语言

541 面向对象的基本概念

542 Smalltalk语言概述

543 对面向对象语言的评价

55 小结

习题5

第6章 形式语义学简介

61 引言

62 形式语义学分类

63 公理语义学简介

64 指称语义学简介

习题6

下篇 程序设计语言的实现(编译)

第7章 编译概述

71 引言

711 翻译和编译

712 解释

72 参数传递

721 数据参数传递

722 子程序参数传递

73 编译步骤

习题7

第8章 词法分析

81 词法分析概述

811 词法分析器的功能

812 词法分析器的输出形式

82 词法分析器的结构

821 扫描缓冲区

822 符号的识别

83 状态转换图

84 词法分析器的设计

习题8

第9章 自上而下的语法分析

91 引言

92 回溯分析法

921 提取产生式的公因子

922 消除左递归

93 递归下降分析法

931 递归下降分析器的构造

932 扩充的BNF

94 预测分析法

941 预测分析过程

942 FIRST集和FOLLOW集

943 LL(1)文法

944 预测分析表的构造

945 非LL(1)文法

习题9

第10章 自下而上的语法分析

101 引言

1011 分析树

1012 规范归约. 短语和句柄

102 算符优先分析法

1021 算符优先文法

1022 算符优先分析算法

1023 算符优先分析表的构造

103 LR分析法

1031 LR分析过程

1032 活前缀

1033 LR(0)项目集规范族

1034 LR(0)分析表的构造

1035 SLR(1)分析表的构造

习题10

第11章 语义分析和中间代码生成

111 语义分析概论

1111 语义分析的任务

1112 语法制导翻译

1113 中间代码

1114 语义函数和语义变量

112 赋值语句的翻译

1121 表达式的翻译

1122 只含简单变量的赋值语句的翻译

113 控制语句的翻译

1131 布尔表达式的翻译

1132 无条件转移语句的翻译

1133 条件语句的翻译

1134 while语句的翻译

1135 循环语句的翻译

114 过程调用的翻译

115 说明语句的翻译

习题11

第12章 代码优化和目标代码生成

121 局部优化

1211 优化的定义

1212 基本块的划分

1213 程序流图

1214 基本块内的优化

122 全局优化

1221 循环的定义

1222 必经结点集

1223 循环的查找

1224 循环的优化

123 目标代码生成

1231 一个计算机模型

1232 简单的代码生成方法

1233 循环中的寄存器分配

习题12

第13章 运行时存储空间的组织

131 程序的存储空间

1311 代码空间

1312 数据空间

1313 活动记录

1314 变量的存储分配

1315 存储分配模式

132 静态分配

133 栈式分配

1331 只含半静态变量的栈式分配

1332 半动态变量的栈式分配

1333 非局部环境

1334 非局部环境的引用

134 符号表

1341 符号表的组织

1342 常用的符号表结构

习题13

附录A Java语言概述

A1 什么是Java

A2 Java语言的特性

A3 Java语言的数据类型

A4 Java语言的控制结构

A5 Java程序实例

参考文献