现代编译原理——C语言描述(英文版)
0推荐 收藏
4.8K阅读
图灵原版计算机科学系列

现代编译原理——C语言描述(英文版)

Andrew W.Appel (作者)
暂时缺货
本书全面讲述了现代编译器的各个组成部分,包括:词法分析、语法分析、抽象语法、语义检查、中间代码表示、指令选择、数据流分析、寄存器分配以及运行时系统等。全书分成两部分,第一部分是编译的基础知识,适用于第一门编译原理课程(一个学期);第二部分是高级主题,包括面向对象语言和函数语言、垃圾收集、循环优化、SSA(静态单赋值)形式、循环调度、存储结构优化等,适合于后续课程或研究生教学。书中专门为学生提供了一个用C语言编写的实习项目,包括前端和后端设计,学生可以在一学期内创建一个功能完整的编译器。
本书适用于高等院校计算机及相关专业的本科生或研究生,也可供科研人员或工程技术人员参考。

收藏本书能做什么?

有情况的时候会收到通知,比如电子书发布等。

纸质书
¥46.61 ¥59.00

其他购买方式?

出版信息

  • 书  名现代编译原理——C语言描述(英文版)
  • 系列书名图灵原版计算机科学系列
  • 执行编辑关于本书的内容有任何问题,请联系 傅志红
  • 出版日期2005-09-20
  • 书  号7-115-13771-4
  • 定  价59.00 元
  • 页  数556
  • 开  本16开
  • 出版状态暂时缺货
  • 原书名Modern Compiler Implementation in C
  • 原书号0-521-60765-5

所属分类

同系列书

目录

Contents
Preface vii
Part I Fundamentals of Compilation 1 Introduction 3
1.1 Modules and interfaces 4
1.2 Tools and software 5
1.3 Data structures for tree languages 7

2 Lexical Analysis 16
2.1 Lexical tokens 17
2.2 Regular expressions 18
2.3 Finite automata 21
2.4 Nondeterministic finite automata 24
2.5 Lex: a lexical analyzer generator 30

3 Parsing 39
3.1 Context-free grammars 41
3.2 Predictive parsing 46
3.3 LR parsing 56
3.4 Using parser generators 69
3.5 Error recovery 76

4 Abstract Syntax 88
4.1 Semantic actions 88
4.2 Abstract parse trees 92

5 Semantic Analysis 103
5.1 Symbol tables 103
5.2 Bindings for the Tiger compiler 112
5.3 Type-checking expressions 115
5.4 Type-checking declarations 118

6 Activation Records 125
6.1 Stack frames 127
6.2 Frames in the Tiger compiler 135

7 Translation to Intermediate Code 150
7.1 Intermediate representation trees 151
7.2 Translation into trees 154
7.3 Declarations 170

8 Basic Blocks and Traces 176
8.1 Canonical trees 177
8.2 Taming conditional branches 185

9 Instruction Selection 191
9.1 Algorithms for instruction selection 194
9.2 CISC machines 202
9.3 Instruction selection for the Tiger compiler 205

10 Liveness Analysis 218
10.1 Solution of dataflow equations 220
10.2 Liveness in the Tiger compiler 229

11 Register Allocation 235
11.1 Coloring by simplification 236
11.2 Coalescing 239
11.3 Precolored nodes 243
11.4 Graph coloring implementation 248
11.5 Register allocation for trees 257

12 Putting It All Together 265

Part II Advanced Topics

13 Garbage Collection 273
13.1 Mark-and-sweep collection 273
13.2 Reference counts 278
13.3 Copying collection 280
13.4 Generational collection 285
13.5 Incremental collection 287
13.6 Baker's algorithm 290
13.7 Interface to the compiler 291

14 Object-Oriented Languages 299
14.1 Classes 299
14.2 Single inheritance of data fields 302
14.3 Multiple inheritance 304
14.4 Testing class membership 306
14.5 Private fields and methods 310
14.6 Classless languages 310
14.7 Optimizing object-oriented programs 311

15 Functional Programming Languages 315
15.1 A simple functional language 316
15.2 Closures 318
15.3 Immutable variables 319
15.4 Inline expansion 326
15.5 Closure conversion 332
15.6 Efficient tail recursion 335
15.7 Lazy evaluation 337

16 Polymorphic Types 350
16.1 Parametric polymorphism 351
16.2 Type inference 359
16.3 Representation of polymorphic variables 369
16.4 Resolution of static overloading 378

17 Dataflow Analysis 383
17.1 Intermediate representation for flow analysis 384
17.2 Various dataflow analyses 387
17.3 Transformations using dataflow analysis 392
17.4 Speeding up dataflow analysis 393
17.5 Alias analysis 402

18 Loop Optimizations 410
18.1 Dominators 413
18.2 Loop-invariant computations 418
18.3 Induction variables 419
18.4 Array-bounds checks 425
18.5 Loop unrolling 429

19 Static Single-Assignment Form 433
19.1 Converting to SSA form 436
19.2 Efficient computation of the dominator tree 444
19.3 Optimization algorithms using SSA 451
19.4 Arrays, pointers, and memory 457
19.5 The control-dependence graph 459
19.6 Converting back from SSA form 462
19.7 A functional intermediate form 464

20 Pipelining and Scheduling 474
20.1 Loop scheduling without resource bounds 478
20.2 Resource-bounded loop pipelining 482
20.3 Branch prediction 490

21 The Memory Hierarchy 498
21.1 Cache organization 499
21.2 Cache-block alignment 502
21.3 Prefetching 504
21.4 Loop interchange 510
21.5 Blocking 511
21.6 Garbage collection and the memory hierarchy 514

Appendix: Tiger Language Reference Manual 518
A. 1 Lexical issues 518
A.2 Declarations 518
A.3 Variables and expressions 521
A.4 Standard library 525
A.5 Sample Tiger programs 526

Bibliography 528

Index 537

大家也喜欢

  • 计算机科学精粹

    Wladston Ferreira Filho   蒋楠   译

    本书面向所有对计算机科学感兴趣的读者,以浅显易懂的语言和简明扼要的形式介绍计算机科学领域的重要知识点,尽量少涉...

  • 现代编译原理:C语言描述(修订版)

    Andrew W. Appel   Maia Ginsburg   赵克佳   黄春   沈志宇   译

    本书全面讲述了现代编译器的各个组成部分,包括词法分析、语法分析、抽象语法、语义检查、中间代码表示、指令选择、数...

  • 自制编译器

    青木 峰郎   严圣逸   绝云   译

    本书将带领读者从头开始制作一门语言的编译器。笔者特意为本书设计了C♭语言,C♭可以说是C语言的子集,实现了包括...

  • 自己设计制作CPU与单片机

    这是一本非常有趣、激动人心的书,本书带领读者进入此前难以想象的领域——自己设计制作CPU,自己设计制作计算机。...

  • CPU自制入门

    水头一寿   米泽辽   藤田裕士   赵谦   译

    一直以来CPU内部是绝大多数IT工程师难以触及的领域。纵使学习过计算机架构相关课程,自己动手实现CPU也始终遥...

暂无评论!