书籍详情

编译原理

编译原理

作者:苏运霖 编著

出版社:机械工业出版社

出版时间:2008-01-01

ISBN:9787111222781

定价:¥33.00

购买这本书可以去
内容简介
  《高等院校计算机教材系列:编译原理》全面介绍编译原理的相关内容,包括词法分析、上下文无关文法和下推自动机、语法分析属性文法及其分析等,特别对面向对象的编译和网格计算的编译进行了介绍。《高等院校计算机教材系列:编译原理》内容翔实,融合作者多年来的教学心得,可作为高等院校相关专业本科生的教材,也可供从事相关工作的技术人员参考。编译原理课程专门学习与研究程序设计语言的实现技术,是计算机科学专业的一门主干课程,在计算机科学领域有着及其重要的地位。《高等院校计算机教材系列:编译原理》从人对语言的理解出发引入编译原理的基本概念,全面介绍了编译原理的相关概念和实现。《高等院校计算机教材系列:编译原理》特点《高等院校计算机教材系列:编译原理》引入了源语言、目标语言和编译语言三者关系的符号,通过这个符号可以形象地表达复杂的多层翻译过程。..深入、透彻地阐述了LL(1)和LR(1)文法,使读者不仅能够知其然,更能知其所以然。不仅介绍了传统方法,还介绍了在计算机领域中日益重要的形式化方法。对并行编译和网格计算的编译进行了介绍,这是国内很多教材没有涉及的。《高等院校计算机教材系列:编译原理》将为授课教师提供电子教案,需要者可登录华章网站下载。
作者简介
  苏运霖,颇具盛名的计算机科学专家,出生于印度尼西亚,曾任教于吉林大学、暨南大学,现任广西大学梧州分校顾问、计算机科学系主任,学科带头人,他曾被评为全国电工学会优秀科技工作者和电机工程优秀科技工作者,获国务院特殊津贴。他还被美国纽约科学院邀请为该院院士,名字被录入《国际传记辞典》、《国际卓越领导者名单》以及《世界知识名人录》。1983年到1986年间,与新西兰的几所著名大学研究组合算法、计算机网络、Petri网络理论。1989年,他到美国访问、讲学近一年,参加分布式算法的设计并撰写了一批有创见的论文。之后,他陆续到挪威、瑞典、瑞士、丹麦,奧地利、德国、比利时、冰岛、荷兰、卢森堡、日本、新加坡、印度尼西亚和香港等国家和地区讲学与访问。曾翻译D.E.Knuth的巨著《计算机程序设计艺术》,并编写了多部教材。
目录
第1章  概论        1
1.1  语言和人类        1
1.2  语言和计算机        2
1.3  语言和编译        6
1.4  程序设计语言的编译        7
1.5  一个语句的编译举例        9
1.6  编译的遍数        11
1.7  本书的组成        11
习题        13
第2章  文法和语言        14
2.1  预备知识        14
2.2  文法        15
2.3  语言        18
2.4  文法所生成的语言        20
2.5  图灵机        22
2.6  有关文法和语言的问题        29
习题        30
第3章  有限自动机和正则表达式        34
3.1  确定的有限自动机        34
3.2  不确定的有限自动机        37
3.3  带有e的有限自动机        42
3.4  正则表达式        44
3.5  两路有限自动机        49
3.6  正则文法        53
3.7  关于正则语言的判定        61
习题        62
第4章  词法分析        66
4.1  词法分析的作用        67
4.2  词法分析程序的输出        76
4.3  错误处理        78
习题        78
第5章  上下文无关文法和下推自动机        80
5.1  上下文无关文法        80
5.2  上下文无关文法的性质        83
5.3  下推自动机        90
5.4  下推自动机和上下文无关语言        93
习题        98
第6章  语法分析        104
6.1  LL(1)语法分析        104
6.2  LL(1)文法的确定        107
6.3  LL(1)语法分析方法        110
6.4  自底向上的语法分析        115
6.5  LR(1)语法分析方法        118
6.5.1  LR(0)语法分析        118
6.5.2  SLR(1)语法分析        120
6.5.3  LALR(1)语法分析        122
6.5.4  LR(1)语法分析        124
6.5.5  LL(1)语法分析方法和LR(1)语法
分析方法的比较        130
习题        132
第7章  属性文法及其分析        136
7.1  属性文法        136
7.2  依赖图和属性计算        139
7.2.1  动态属性计算        143
7.2.2  循环处理        145
7.3  L属性文法和S属性文法        146
习题        148
第8章  编译程序设计的代数方法        149
8.1  源语言        149
8.2  代数基础和推理语言        154
8.2.1  代数基础        155
8.2.2  推理语言        160
8.3  一个简单的编译程序        178
8.3.1  规范形式        178
8.3.2  规范形式的归结        179
8.3.3  目标机器        182
8.3.4  表达式的化简        183
8.3.5  控制的消除        185
8.3.6  数据求精        187
8.3.7  编译过程        191
8.4  过程、递归和参数        192
8.4.1  记号        193
8.4.2  过程        193
8.4.3  递归        195
8.4.4  带参数的程序        197
8.4.5  带参数的过程        199
8.4.6  带参数的递归        200
8.4.7  讨论        202
8.5  小结        203
习题        204
第9章  中间代码的生成        205
9.1  为什么需要有中间代码生成阶段        205
9.2  中间代码语言        205
9.2.1  图形表示        206
9.2.2  后缀表示        208
9.2.3  四元组代码        209
习题        223
第10章  纠错与优化        226
10.1  错误检测和恢复        226
10.2  语法错误检查        227
10.2.1  LL(1)分析程序的错误处理        229
10.2.2  LR(1)分析中的错误处理        229
10.3  语义错误检查        230
10.4  程序的优化        230
10.5  程序优化的几个主要途径        234
10.5.1  公共子表达式的删除        234
10.5.2  副本传播        234
10.5.3  废代码的删除        235
10.5.4  循环优化        236
习题        237
第11章  存储管理        239
11.1  全局分配策略        239
11.2  动态分配        242
11.2.1  栈式分配        242
11.2.2  堆式分配        243
11.3  存储空间的回收        245
11.3.1  基本垃圾收集算法        245
11.3.2  编译程序对垃圾收集程序的支持        246
11.3.3  引用计数        247
11.3.4  标记和扫描        248
11.3.5  两空间复制        249
11.3.6  紧缩        250
11.4  参数传递        250
11.4.1  值调用        251
11.4.2  引用调用        251
11.4.3  复写-恢复调用        251
11.4.4  换名调用        251
习题        252
第12章  目标代码生成        254
12.1  代码生成程序设计的有关问题        254
12.1.1  代码生成程序的输入        254
12.1.2  目标程序        255
12.1.3  存储管理        255
12.1.4  指令选择        255
12.1.5  寄存器分配        256
12.1.6  计算顺序的选择        257
12.1.7  代码生成的方法        257
12.2  目标机器MMIX        257
12.3  MMIX的汇编语言        274
12.4  MMIXAL目标代码的生成        279
12.4.1  表达式逆波兰表示的翻译        279
12.4.2  表达式三元式的翻译        280
12.4.3  表达式四元组形成的翻译        280
12.4.4  表达式的翻译        281
12.4.5  表达式的语法树形式的翻译        282
12.4.6  各种语句的翻译        282
习题        284
第13章  面向对象语言的编译        286
13.1  对象及其编译        286
13.2  对象的特征        287
习题        294
第14章  并行语言的编译        296
14.1  并行机和并行计算的提出        296
14.2  并行程序设计        298
14.2.1  共享变量和管程        299
14.2.2  消息传送模型        300
14.3  面向对象的语言        301
14.4  Linda元组空间        301
14.5  数据并行语言        303
14.6  隐式并行程序的代码生成        304
14.6.1  区域的类型        305
14.6.2  区域的形成        306
14.6.3  区域的几个调度算法        309
习题        309
第15章  网格计算的编译        310
15.1  网格计算的兴起与其内涵        310
15.2  网格计算模型        311
15.2.1  分组路由        312
15.2.2  线性阵列中的分组路由        313
15.3  网格计算的编译        315
习题        316
参考文献        318
猜您喜欢

读书导航