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
《Qtfor Python PySide6GUI界面开发详解与实例》内容简介:本书详细介绍了PySide6提供的各种可视化类进行可视化界面编程。本书对各
李永铨/TommyLi香港设计师、AGI会员李永诠-香港著名设计师,与刘小康、余志光、吴秋全、陈超宏...等同为第三代设计师,其大胆、
《Arduino完全实战》内容简介:Arduino已成为学习微控制器的首选课程,《Arduino完全实战》是Arduino设计全方位的指引,广泛且深入
本书解答了101个建筑设计中的关键问题,从建筑入门必须的知识,到弄清楚建筑设计过程中容易熟视无睹的问题,以一图一文的形式,将
本书系统地讨论了数字信号处理的基本理论、基本算法和基本实现方法,注重基本概念、基本方法的讲解,压缩了繁琐的理论推导;注重
《Java Web程序设计》内容简介:本书以Web开发流程为主线,让读者了解真实的Web开发过程,体会规范化、标准化、专业化的软件开发流
CCNA学习指南 本书特色 本学习指南帮你准备*新的ccna考试:cisco网络权威todd lammle编写的这本*畅销的学习指南能帮助你仔细的准备,信心十足...
《电气控制与PLC应用技术》内容简介:本书共分为10章,主要内容包括常用低压电器、电气控制电路的基本控制环节、机床电气控制系统、
机器人爱好者-第1辑 本书特色 本书是美国机器人杂志《Servo》精华内容的合集。全书根据主题内容的相关性,进行了精选和重新组织,分为5章。第1章介绍了机器人的...
《四时幽赏录》内容简介:本书以其独特的审美视角、精悍清新之笔触,为人们勾勒出西湖四时芳容,充满真趣。这种以四季景观描绘西湖
《Go微服务实战》内容简介:当今世界,软件的规模越来越大、功能越来越复杂,研发团队的规模也变得越来越大,运维人员和研发人员之
《大数据架构和算法实现之路》内容简介:本书介绍了一些主流技术在商业项目中的应用,包括机器学习中的分类、聚类和线性回归,搜索
本书对BrainW.Kernighan和DennisM.Ritchie所著的《TheCProgrammingLanguage》(第2版)的所有练习题都进行了解答...
《Java EE核心框架实战》内容简介:本书旨在提高读者的学习效率,增强其项目实战能力。为此,本书摒弃了软件公司中不常用或不实用的
Whencomputersharnesspriorexperiencetoimprovefutureperformance,atypeofartificiali...
《况且况且况(李长声自选集)》内容简介:本书系旅日华人作家李长声自选集中的文化与历史篇。“知日”渐成潮流,然而大半个世纪以
《通信原理学习辅导与考研指导》(第6版)是以樊昌信教授和曹丽娜教授编著的《通信原理》(第6版)教材为主要参考书,同时参考其他相
本书内容完全站在网页制作技术的角度上,从网页必备元素开始,详细而完整地讲解了相关标记,并且用大量范例说明各元素的使用方法
《暑期社会调查报告优秀作品集(2019)》内容简介:本书为南京理工大学马克思主义学院“毛泽东思想与中国特色社会主义理论体系概论
《CSS与HTMLWeb设计实践指南》主要介绍如何利用CSS和HTML技术进行Web设计。《CSS与HTMLWeb设计实践指南》首先从Web技术的发展和基