当前位置:首页 > 工业技术
程序设计语言与编译  语言的设计和实现  第2版
程序设计语言与编译  语言的设计和实现  第2版

程序设计语言与编译 语言的设计和实现 第2版PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:龚天富编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2003
  • ISBN:7505390074
  • 页数:275 页
图书介绍:本书是一本计算机专业的宽口径教材,新版覆盖CC2001和CCC2002教程中,除自动机外编程语言(PL)模块的全部知识点。其内容涉及语言及其编译系统的设计要素、设计思想、设计方法、设计技术和设计风格等知识,全书分为上、下篇。上篇,程序设计语言的设计包括:绪论、数据类型、控制结构、程序语言设计、非过程式程序设计语言和形式语义学简介。下篇,程序设计语言的实现(编译)包括:编译概述、词法分析、自上而下的语法分析、自下而上的语法分析、语义分析和中间代码的生成、代码优化和目标代码生成、运行时存储空间的组织等。本书的学习目标是,使读者掌握设计和实现一个程序设计语言的基本思想和方法,具有分析、鉴赏、评价、选择、学习、设计和实现一个语言的基本能力。本书力求简明、通俗,注重可读性,是大学计算机专业高级程序设计语言概论及编译技术课程教材,也是软件开发人员的学习参考书。
上一篇:现代厨房布置图集下一篇:餐饮空间
《程序设计语言与编译 语言的设计和实现 第2版》目录

上篇 程序设计语言的设计 1

第1章 绪论 1

1.1 引言 1

1.2 强制式语言 2

1.2.1 程序设计语言的分类 3

1.2.2 冯·诺依曼体系结构 3

1.2.3 绑定和绑定时间 4

1.2.4 变量 5

1.2.5 虚拟机 9

1.3 程序单元 11

1.4 程序设计语言发展简介 12

1.4.1 早期的高级语言 13

1.4.2 早期语言的发展阶段 15

1.4.3 概念的集成阶段 16

1.4.4 再一次突破 16

1.4.5 大量的探索 18

1.4.6 Ada语言 18

1.4.7 第四代语言 19

1.4.8 网络时代的语言 19

1.4.9 新一代程序设计语言 20

习题1 22

第2章 数据类型 23

2.1 引言 23

2.2 内部类型 24

2.3 用户定义类型 25

2.3.2 有限映像 26

2.3.1 笛卡儿积 26

2.3.3 序列 27

2.3.4 递归 27

2.3.5 判定或 28

2.3.6 幂集 28

2.4 Pascal语言数据类型结构 30

2.4.1 非结构类型 30

2.4.2 聚合构造 31

2.4.3 指针 35

2.5 Ada语言数据类型结构 37

2.5.1 标量类型 37

2.5.2 组合类型 38

2.6.1 非结构类型 42

2.6 C语言数据类型结构 42

2.6.2 聚合构造 44

2.6.3 指针 47

2.6.4 空类型 47

2.7 抽象数据类型 48

2.7.1 SIMULA 67语言的类机制 50

2.7.2 CLU语言的抽象数据类型 53

2.7.3 Ada语言的抽象数据类型 54

2.7.4 Modula-2语言的抽象数据类型 57

2.7.5 C++++语言的抽象数据类型 59

2.8 类型检查 62

2.9 类型转换 63

2.10 类型等价 64

2.11 实现模型 65

2.11.1 内部类型和用户定义的非结构类型实现模型 65

2.11.2 结构类型实现模型 66

习题2 71

第3章 控制结构 72

3.1 引言 72

3.2 语句级控制结构 72

3.2.1 顺序结构 72

3.2.2 选择结构 73

3.2.3 重复结构 76

3.2.4 语句级控制结构分析 78

3.2.5 用户定义控制结构 79

3.3 单元级控制结构 80

3.3.1 显式调用从属单元 80

3.3.2 隐式调用单元——异常处理 84

3.3.3 SIMULA 67语言协同程序 88

3.3.4 并发单元 90

习题3 97

第4章 程序语言的设计 100

4.1 语言的定义 100

4.1.1 语法 100

4.1.2 语义 105

4.2 文法 106

4.2.1 文法的定义 106

4.2.2 文法的分类 108

4.2.3 文法产生的语言 109

4.2.4 语法树 111

4.3 语言的设计 113

4.3.1 表达式的设计 113

4.3.2 语句的设计 114

4.3.3 程序单元的设计 116

4.3.4 程序的设计 117

4.4 语言设计实例 118

4.5 一些设计准则 119

习题4 120

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

5.1 引言 122

5.2 函数式程序设计语言 124

5.2.1 函数 124

5.2.2 数学函数与程序设计语言函数 125

5.2.3 一种简单的纯函数式语言 126

5.2.4 LISP语言概述 130

5.2.5 APL语言概述 132

5.2.6 作用式语言和命令式语言的比较 136

5.3 逻辑程序设计语言 137

5.3.1 逻辑程序设计 137

5.3.2 Prolog语言概述 139

5.3.3 逻辑程序设计展望 146

5.4 面向对象程序设计语言 147

5.4.1 面向对象的基本概念 147

5.4.2 Smalltalk语言概述 150

5.4.3 对面向对象语言的评价 157

5.5 小结 157

习题5 158

第6章 形式语义学简介 160

6.1 引言 160

6.2 形式语义学分类 161

6.3 公理语义学简介 162

6.4 指称语义学简介 166

习题6 169

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

第7章 编译概述 171

7.1 引言 171

7.1.1 翻译和编译 171

7.1.2 解释 172

7.2 参数传递 172

7.2.1 数据参数传递 173

7.2.2 子程序参数传递 175

7.3 编译步骤 176

习题7 178

8.1.1 词法分析器的功能 179

8.1.2 词法分析器的输出形式 179

第8章 词法分析 179

8.1 词法分析概述 179

8.2 词法分析器的结构 180

8.2.1 扫描缓冲区 180

8.2.2 符号的识别 181

8.3 状态转换图 182

8.4 词法分析器的设计 183

习题8 186

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

9.1 引言 187

9.2 回溯分析法 187

9.2.1 提取产生式的公因子 188

9.2.2 消除左递归 189

9.3 递归下降分析法 190

9.3.1 递归下降分析器的构造 191

9.3.2 扩充的BNF 192

9.4 预测分析法 194

9.4.1 预测分析过程 194

9.4.2 FIRST集和FOLLOW集 195

9.4.3 LL(1)文法 197

9.4.4 预测分析表的构造 198

9.4.5 非LL(1)文法 198

习题9 199

10.1 引言 201

1O.1.1 分析树 201

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

10.1.2 规范归约、短语和句柄 203

10.2 算符优先分析法 203

10.2.1 算符优先文法 204

10.2.2 算符优先分析算法 205

10.2.3 算符优先分析表的构造 207

10.3 LR分析法 209

10.3.1 LR分析过程 209

10.3.2 活前缀 211

10.3.3 LR(0)项目集规范族 211

10.3.4 LR(0)分析表的构造 215

10.3.5 SLR(1)分析表的构造 216

习题10 217

11.1.2 语法制导翻译 219

11.1.1 语义分析的任务 219

11.1 语义分析概论 219

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

11.1.3 中间代码 220

11.1.4 语义函数和语义变量 221

11.2 赋值语句的翻译 221

11.2.1 表达式的翻译 221

11.2.2 只含简单变量的赋值语句的翻译 222

11.3 控制语句的翻译 223

11.3.1 布尔表达式的翻译 223

11.3.2 无条件转移语句的翻译 223

11.3.3 条件语句的翻译 224

11.3.4 while语句的翻译 226

11.3.5 循环语句的翻译 227

11.4 过程诵用的翻译 228

11.5 说明语句的翻译 229

习题11 230

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

12.1 局部优化 232

12.1.1 优化的定义 232

12.1.2 基本块的划分 232

12.1.3 程序流图 234

12.1.4 基本块内的优化 234

12.2 全局优化 236

12.2.1 循环的定义 236

12.2.2 必经结点集 237

12.2.3 循环的查找 237

12.2.4 循环的优化 238

12.3 目标代码生成 240

12.3.1 一个计算机模型 241

12.3.2 简单的代码生成方法 241

12.3.3 循环中的寄存器分配 242

习题12 243

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

13.1 程序的存储空间 246

13.1.1 代码空间 246

13.1.2 数据空间 246

13.1.3 活动记录 247

13.1.4 变量的存储分配 248

13.1.5 存储分配模式 249

13.2 静态分配 250

13.3.1 只含半静态变量的栈式分配 253

13.3 栈式分配 253

13.3.2 半动态变量的栈式分配 255

13.3.3 非局部环境 256

13.3.4 非局部环境的引用 257

13.4 符号表 259

13.4.1 符号表的组织 260

13.4.2 常用的符号表结构 261

习题13 262

附录A Java语言概述 264

A.1 什么是Java 264

A.2 Java语言的特性 264

A.3 Java语言的数据类型 266

A.4 Java语言的控制结构 268

A.5 Java程序实例 271

参考文献 273

相关图书
作者其它书籍
返回顶部