网上购物 货比三家
您现在的位置:快乐比价网 > 图书 > 教育/科技 > 原版书与影印版 > 商品详情

现代编译程序实现——Java语言(第二版 影印版)

分享到:
现代编译程序实现——Java语言(第二版 影印版)

最 低 价:¥28.40

定 价:¥38.00

作 者:(美)Andrew W.Appel,with Jens Palsberg

出 版 社:高等教育出版社

出版时间:2003 年8月

I S B N:7040135019

商品详情

编辑推荐

本套教学用书的特点:
   ·权威性——教育部高等教育司推荐、教育部高等学校信息科学与技术引进教材专家组遴选
   ·系统性——覆盖计算机专业主干课程和非计算机专业计算机基础课程
   ·先进性——著名计算机专家近两年的最新著作,内容体系先进
   ·经济性——价格与国内自编材相当,是国内引进教材价格最低的

内容简介

This textbook describes all phases of a compiler: lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection via tree matching, dataflow analysis, graph-coloring register allocation, and runtime systems. It includes good coverage of current techniques in code generation and register allocation, as well as the compilation of functional and object-oriented languages, which is missing from most books. The most accepted and successful techniques are described concisely, rather than as an exhaustive catalog of every possible variant. Detailed descriptions of the interfaces between modules of a compiler are illustrated with actual Java classes. The first part of the book, Fundamentals of Compilation, is suitable for a one-semester first course in compiler design. The second part, Advanced Topics, which includes the compilation of object-oriented and functional languages, garbage collection, loop optimization, SSA form, instruction scheduling, and optimization for cache-memory hierarchies, can be used for a second-semester or graduate course.
  

作者简介

Adrew W. Appel is Professor of Computer Science at Princeton University. He has done research and published papers on compilers, functional programming languages, runtime systems and garbage collection, type systems, and computer security; he is also author of the book Compiling with Continuations. He is a designer and founder of the Standard ML of New Jersey project. In 1998, Appel was elected a Fellow of the Association for Computing Machinery .. << 查看详细

目录

preface
part i fundamentals of compilation
1 introduction
1.1 modules and interfaces
1.2 tools and software
1.3 data structures for tree languages
2 lexical analysis
2.1 lexical tokens
2.2 regular expressions
2.3 finite automata
2.4 nondeterministic finite automata
2.5 lexical-analyzer generators
3 parsing
3.1 context-free grammars
3.2 predictive parsing
3.3 lr parsing
3.4 using parser generators
3.5 error recovery
4 abstract syntax
4.1 semantic actions
. 4.2 abstract parse trees
4.3 visitors
5 semantic analysis
5.1 symbol tables
5.2 type-checking minijava
6 activation records
6.1 stack frames
6.2 frames in the minijava compiler
7 translation to intermediate cede
7.1 intermediate representation trees
7.2 translation into trees
7.3 declarations
8 basic blocks and traces
8.1 canonical trees
8.2 taming conditional branches
9 instruction selection
9.1 algorithms for instruction selection
9.2 cisc machines
9.3 instruction selection for the minijava compiler
10 liveness analysis
10.1 solution of dataflow equations
10.2 liveness in the minijava compiler
11 register allocation
11.1 coloring by simplification
11.2 coalescing
11.3 precolored nodes
11.4 graph-coloring implementation
11.5 register allocation for trees
12 putting it all together
part h advanced topics
13 garbage collection
13.1 mark-and-sweep collection
13.2 reference counts
13.3 copying collection
13.4 generational collection
13.5 incremental collection
13.6 baker's algorithm
13.7 interface to the compiler
14 object-oriented languages
14.1 class extension
14.2 single inheritance of data fields
14.3 multiple inheritance
14.4 testing class membership
14.5 private fields and methods
14.6 classless languages
14.7 optimizing object-oriented programs
15 functional programming languages
15.1 a simple functional language
15.2 closures
15.3 immutable variables
15.4 inline expansion
15.5 closure conversion
15.6 efficient tail recursion
15.7 lazy evaluation
16 polymorphic types
16.1 parametric polymorphism
16.2 polymorphic type-checking
16.3 translation of polymorphic programs
16.4 resolution of static overloading
17 datafiow analysis
17.1 intermediate representation for flow analysis
17.2 various dataflow analyses
17.3 transformations using datafiow analysis
17.4 speeding up datafiow analysis
17.5 alias analysis
18 loop optimizafions
18.1 dominators
18.2 loop-invariant computations
18.3 induction variables
18.4 array-bounds checks
18.5 loop unrolling
19 static single-assignment form
19.1 converting to ssa form
19.2 efficient computation of the dominator tree
19.3 optimization algorithms using ssa
19.4 arrays, pointers, and memory
19.5 the control-dependence graph
19.6 converting back from ssa form
19.7 a functional intermediate form
20 pipelining and scheduling
20.1 loop scheduling without resource bounds
20.2 resource-bounded loop pipelining
20.3 branch prediction
21 the memory hierarchy
21.1 cache organization
21.2 cache-block alignment
21.3 prefetching
21.4 loop interchange
21.5 blocking
21.6 garbage collection and the memory hierarchy
appendix: minijava language reference manual
a.1 lexical issues
a.2 grammar
a.3 sample program
bibliography
index

商品评论(0条)

暂无评论!

您的浏览历史

loading 内容加载中,请稍后...