This book provides the foundation for understanding the theory and pracitce of compilers. Revised and updated, it reflects the current state of compilation. Every chapter has been completely revised to reflect developments in software engineering, programming languages, and computer architecture that have occurred since 1986, when the last edition published. The authors, recognizing that few readers will ever go on to construct a compiler, retain their focus on the broader set of problems faced in software design and software development. Computer scientists, developers, and aspiring students that want to learn how to build, maintain, and execute a compiler for a major programming language.
1 Introduction
1.1 Language Processors
1.2 The Structure of a Compiler
1.3 The Evolution of Programming Languages
1.4 The Science of Building a Compiler
1.5 Applications of Compiler Technology
1.6 Programming Language Basics
1.7 Summary of Chapter 1
1.8 References for Chapter 1
2 A Simple Syntax-Directed Translator
2.1 Introduction
2.2 Syntax Definition
2.3 Syntax-Directed Translation
2.4 Parsing
2.5 A Translator for Simple Expressions
2.6 Lexical Analysis
2.7 Symbol Tables
2.8 Intermediate Code Generation
2.9 Summary of Chapter 2
3 Lexical Analysis
3.1 The Role of the Lexical Analyzer
3.2 Input Buffering
3.3 Specification of Tokens
3.4 Recognition of Tokens
3.5 The Lexical-Analyzer Generator Lex
3.6 Finite Automata
3.7 From Regular Expressions to Automata
3.8 Design of a Lexical-Analyzer Generator
3.9 Optimization of DFA-Based Pattern Matchers
3.10 Summary of Chapter 3
3.11 References for Chapter 3
4 Syntax Analysis
4.1 Introduction
4.2 Context-Free Grammars
4.3 Writing a Grammar
4.4 Top-Down Parsing
4.5 Bottom-Up Parsing
4.6 Introduction to LR Parsing: Simple LR
4.7 More Powerful LR Parsers
4.8 Using Ambiguous Grammars
4.9 Parser Generators
4.10 Summary of Chapter 4
4.11 References for Chapter 4
5 Syntax-Directed Translation
5.1 Syntax-Directed Definitions
5.2 Evaluation Orders for SDD's
5.3 Applications of Syntax-Directed Translation
5.4 Syntax-Directed Translation Schemes
5.5 Implementing L-Attributed SDD's
5.6 Summary of Chapter 5
5.7 References for Chapter 5
6 Intermediate-Code Generation
6.1 Variants of Syntax Trees
6.2 Three-Address Code
6.3 Types and Declarations
6.4 Translation of Expressions
6.5 Type Checking
6.6 Control Flow
6.7 Backpatching
6.8 Switch-Statements
6.9 Intermediate Code for Procedures
6.10 Summary of Chapter 6
6.11 References for Chapter 6
7 Run-Time Environments
7.1 Storage Organization
7.2 Stack Allocation of Space
7.3 Access to Nonlocal Data on the Stack
7.4 Heap Management
7.5 Introduction to Garbage Collection
7.6 Introduction to Trace-Based Collection
7.7 Short-Pause Garbage Collection
7.8 Advanced Topics in Garbage Collection
7.9 Summary of Chapter 7
7.10 References for Chapter 7
8 Code Generation
8.1 Issues in the Design of a Code Generator
8.2 The Target Language
8.3 Addresses in the Target Code
8.4 Basic Blocks and Flow Graphs
8.5 Optimization of Basic Blocks
8.6 A Simple Code Generator
8.7 Peephole Optimization
8.8 Register Allocation and Assignment
8.9 Instruction Selection by Tree Rewriting
8.10 Optimal Code Generation for Expressions
8.11 Dynamic Programming Code-Generation
8.12 Summary of Chapter 8
8.13 References for Chapter 8
9 Machine-Independent Optimizations
9.1 The Principal Sources of Optimization
9.2 Introduction to Data-Flow Analysis
9.3 Foundations of Data-Flow Analysis
9.4 Constant Propagation
9.5 Partial-Redundancy Elimination
9.6 Loops in Flow Graphs
9.7 Region-Based Analysis
9.8 Symbolic Analysis
9.9 Summary of Chapter 9
9.10 References for Chapter 9
10 Instruction-Level Parallelism
10.1 Processor Architectures
10.2 Code-Scheduling Constraints
10.3 Basic-Block Scheduling
10.4 Global Code Scheduling
10.5 Software Pipelining
10.6 Summary of Chapter 10
10.7 References for Chapter 10
11 Optimizing for Parallelism and Locality
11.1 Basic Concepts
11.2 Matrix Multiply: An In-Depth Example
11.3 Iteration Spaces
11.4 Affine Array Indexes
11.5 Data Reuse
11.6 Array Data-Dependence Analysis
11.7 Finding Synchronization-Free Parallelism
11.8 Synchronization Between Parallel Loops
11.9 Pipelining
11.10 Locality Optimizations
11.11 Other Uses of Affine Transforms
11.12 Summary of Chapter 11
11.13 References for Chapter 11
12 Interprocedural Analysis
12.1 Basic Concepts
12.2 Why Interprocedural Analysis?
12.3 A Logical Representation of Data Flow
12.4 A Simple Pointer-Analysis Algorithm
12.5 Context-Insensitive Interprocedural Analysis
12.6 Context-Sensitive Pointer Analysis
12.7 Datalog Implementation by BDD's
12.8 Summary of Chapter 12
12.9 References for Chapter 12
A A Complete Front End
A.1 The Source Language
A.2 Main
A.3 Lexical Analyzer
A.4 Symbol Tables and Types
A.5 Intermediate Code for Expressions
A.6 Jumping Code for Boolean Expressions
A.7 Intermediate Code for Statements
A.8 Parser
A.9 Creating the Front End
B Finding Linearly Independent Solutions
Index
开放式知识网络与高技术服务模式创新-构建体系.动态耦合及网络效应 本书特色 本书既为高技术开放式知识网络体竞争优势的完善、强化与发展提供有力的理论支撑与战略依据...
OperatingSystemConcepts,nowinitsninthedition,continuestoprovideasolidtheoretical...
调试对于软件的成败至关重要,正确使用恰当的调试工具可以提高发现和改正错误的效率。《软件调试的艺术》详细介绍了3种调试器,G
《出纳实务》内容简介:本教材构建了以职业岗位能力为导向的项目教学体系,教材中所选用的会计核算资料均采集于企业出纳岗位上经常
《情趣的设计世界:张剑产品设计作品选》作者张剑是位个子挺大但心很细致的人。我们从这本集子中可以看出了这一点。他非常关注生活
TheOnlyOfficial,Best-PracticeGuidetoQt4.3ProgrammingUsingTrolltechsQtyoucanbuild...
书中分为十二个章节,以居住者的角度来讨论「舒适住宅空间」的十二项条件。本书作者对围绕住宅和生活周边的日常琐事以及生活的微
《从物联到万联:Node.js与树莓派万维物联网构建实战》内容简介:《从物联到万联:Node.js与树莓派万维物联网构建实战》是介绍万维
《公立医院医师职业伦理现状及社会动因研究》内容简介:国当代医师职业群体的道德现状及伦理困境。结合新型医患关系的发展态势、当
《史官主书与秦书八体》内容简介:“主书”是史官的基本职能,而“秦书八体”则是指通行于秦代的八种书体。本书由“史官主书研究”
《谦庐随笔》内容简介:该书的内容可分为军政界人物、文人名流和地方风俗三大类。作者在北平期间,正值九一八事变之后,日人步步紧
《SQL权威指南(第4版)》为SQL名著中文版,兼顾技术与实践,全面细致介绍高级技术,致力于打造SQL编程专家。《SQL权威指南(第4版)
《油画棒宝典:路正先油画棒手绘完全自学教程》内容简介:本书是油画棒绘画的零基础完全自学教程,全书共分4章。第1章是油画棒绘画
CrossSiteScriptingAttacksstartsbydefiningthetermsandlayingoutthegroundwork.Itass...
《澳大利亚印太战略研究》内容简介:澳大利亚的印太战略是一项集政治、经济和防务于一体的综合战略,其战略关注经历了东南亚、亚洲
《慈善伦理引论》内容简介:《慈善伦理引论》以“慈善伦理”为研究主题,共分5章,主要内容如下:第壹章主要聚焦于慈善伦理的基本问
《中国就业战略报告:推动实施更高质量的就业(2020)》内容简介:本报告是中国人民大学研究报告系列中的一本,就现阶段推动实施更
《四时幽赏录》内容简介:本书以其独特的审美视角、精悍清新之笔触,为人们勾勒出西湖四时芳容,充满真趣。这种以四季景观描绘西湖
《犹太人智慧全书》内容简介:犹太民族并非上帝的宠儿,他们的成功是由苦难的历史铸就的。犹太民族长期饱受躁躏、放逐、杀戮,面对
最权威的Python教程,由Python作者GuidovanRossum主笔,有少许学院味道。中文电子版由刘鑫、李梦夷翻译。英文原稿网址:http://d