图书介绍
编译原理 技术与工具PDF|Epub|txt|kindle电子书版本网盘下载
![编译原理 技术与工具](https://www.shukui.net/cover/19/31424426.jpg)
- (美)Alfred V. Aho等著 著
- 出版社: 北京:人民邮电出版社
- ISBN:7115099162
- 出版时间:2002
- 标注页数:796页
- 文件大小:27MB
- 文件页数:812页
- 主题词:
PDF下载
下载说明
编译原理 技术与工具PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
Chapter 1 Introduction to Compiling1
1.1 Compilers1
1.2 Analysis of the source program4
1.3 The phases of a compiler10
1.4 Cousins of the compiler16
1.5 The grouping of phases20
1.6 Compiler-construction tools22
Bibliographic notes23
Chapter 2 A Simple One-Pass Compiler25
2.1 Overview25
2.2 Syntax definition26
2.3 Syntax-directed translation33
2.4 Parsing40
2.5 A translator for simple expressions48
2.6 Lexical analysis54
2.7 Incorporating a symbol table60
2.8 A bstract stack machines62
2.9 Putting the techniques together69
Exercises78
Bibliographic notes81
Chapter 3 Lexical Analysis83
3.1 The role of the lexical analyzer84
3.2 Input buffering88
3.3 Specification of tokens92
3.4 Recognition of tokens98
3.5 A language for specifying lexical analyzers105
3.6 Finite automata113
3.7 From a regular expression to an NFA121
3.8 Design of a lexical analyzer generator128
3.9 Optimization of DFA-based pattern matchers134
Exercises146
Bibliographic notes157
Chapter 4 Symtax Analysis159
4.1 The role of the parser160
4.2 Context-free grammars165
4.3 Writing a grammar172
4.4 Top-down parsing181
4.5 Bottom-up parsing195
4.6 Operator-precedence parsing203
4.7 LR parsers215
4.8 Using ambiguous grammars247
4.9 Parser generators257
Exercises267
Bibliographic notes277
Chapter 5 Syntax-Directed Translation279
5.1 Syntax-directed definitions280
5.2 Construction of syntax trees287
5.3 Bottom-up evaluation of S-attributed definitions293
5.4 L-attributed definitions296
5.5 Top-down translation302
5.6 Bottom-up evaluation of inherited attributes308
5.7 Recursive evaluators316
5.8 Space for attribute values at compile time320
5.9 Assigning space at compiler-construction time323
5.10 Analysis of syntax-directed definitions329
Exercises336
Bibliographic notes340
Chapter 6 Type Checking343
6.1 Type systems344
6.2 Specification of a simple type checker348
6.3 Equivalence of type expressions352
6.4 Type conversions359
6.5 Overloading of functions and operators361
6.6 Polymorphic functions364
6.7 An algorithm for unification376
Exercises381
Bibliographic notes386
Chapter 7 Run-Time Environments389
7.1 Source language issues389
7.2 Storage organization396
7.3 Storage-allocation strategies401
7.4 Access to nonlocal names411
7.5 Parameter Passing424
7.6 Symbol tables429
7.7 Language facilities for dynamic storage allocation440
7.8 Dynamic storage allocation techniques442
7.9 Storage allocation in Fortran446
Exercises455
Bibliographic notes461
Chapter 8 Intermediate Code Generation463
8.1 Intermediate Languages464
8.2 Declarations473
8.3 Assignment statements478
8.4 Boolean expressions488
8.5 Case Statements497
8.6 Backpatching500
8.7 Procedure calls506
Exercises508
Bibliographic notes511
Chapter 9 Code Generation513
9.1 Issues in the design of a code generator514
9.2 The target machine519
9.3 Run-time storage management522
9.4 Basic blocks and flow graphs528
9.5 Next-use in formation534
9.6 A simple code generator535
9.7 Register allocation and assignment541
9.8 The dag representation of basic blocks546
9.9 Peephole optimization554
9.10 Generating code from dags557
9.11 Dynamic programming code-generation algorithm567
9.12 Code-generator generators572
Exercises580
Bibliographic notes583
Chapter 10 Code Optimization585
10.1 Introduction586
10.2 The principal sources of optimization592
10.3 Optimization of basic blocks598
10.4 Loops in flow graphs602
10.5 Introduction to global data-flow analysis608
10.6 Iterative solution of data-flow equations624
10.7 Code-improving transformations633
10.8 Dealing with aliases648
10.9 Data-flow analysis of structured flow graphs660
10.10 Efficient data-flow algorithms671
10.11 A tool for data-flow analysis680
10.12 Estimation of types694
10.13 Symbolic debugging of optimized code703
Exercises711
Bibliographic notes718
Chapter 11 Want to Write a Compiler?723
11.1 Planning a compiler723
11.2 Approaches to compiler development725
11.3 The compiler-development environment729
11.4 Testing and maintenance731
12.1 EQN, a preprocessor for typesetting mathematics733
Chapter 12 A Look at Some Compilers733
12.2 Compilers for pascal734
12.3 The C compilers735
12.4 The Fortran H compilers737
12.5 The Bliss/11 compiler740
12.6 Modula-2 optimizing compiler742
A.2 A Pascal subset745
A.3 Program structure745
A.1 Introduction745
Appendix A Compiler Project745
A.4 Lexical conventions748
A.5 Suggested exercises749
A.6 Evolution of the interpreter750
A.7 Extensions751
Bibliography752
Index780