|Retargetable C Compiler, A: Design and Implementation||
Retargetable C Compiler, A: Design and Implementation
|77.10||approx. 7-9 days|
Designed as a self-study guide, the book describes the real-world tradeoffs encountered in building a production-quality, platform-retargetable compiler. The authors examine the implementation of lcc, a production-quality, research-oriented retargetable compiler, designed at AT&T Bell Laboratories for the ANSI C programming language. The authors' innovative approach-a 'literate program' that intermingles the text with the source code-uses a line-by-line explanation of the code to demonstrate how lcc is built.
How to Read This Book.
2. Storage Management.
Memory Management Interface.
Representing Symbol Tables.
Finding and Installing Identifiers.
4. Code Generation Interface.
Structure and Enumeration Types.
5. Lexical Analysis.
Recognizing Character Constants and Strings.
Languages and Grammars.
Ambiguity and Parse Trees.
FIRST and FOLLOW Sets.
Writing Parsing Functions.
Handling Syntax Errors.
8. Expression Semantics.
Parsing C Expressions.
Unary and Postfix Expressions.
9. Expression Semantics.
Unary and Postfix Operators.
Labels and Gotos.
Managing Labels and Jumps.
The Main Program.
12. Generating Immediate Code.
Eliminating Common Subexpressions.
Flow of Control.
Enforcing Evaluation Order.
Driving Code Generation.
Eliminating Multiply Referenced Nodes.
13. Structuring the Code Generator.
Organization of the Code Generator.
Generating Code to Copy Blocks.
14. Selecting and Emitting instructions.
Labelling the Tree.
Reducing the Tree.
Coordinating Instruction Selection.
15. Register Allocation.
Tracking the Register State.
16. Generating MIPS R3000 Code.
17. Generating SPARC Code.
18. Generating X86 Code.
Syntactic and Semantic Analyses.
Code Generation and Optimization.
Testing and Validation.
How to Obtain ICC. 0805316701T04062001
This new text examines the design and implementation of lcc, a production-quality, retargetable compiler for the ANSI C programming language, designed at AT&T Bell Laboratories and Princeton University. The authors' innovative approach--a 'literate program' that intermingles the text with the source code--gives a detailed tour of the code that explains the implementation and design decisions reflected in the software. And while most books describe toy compilers or focus on isolated pieces of code, the authors provide the entire source code for a real compiler, which is available via ftp. Structured as a self-study guide that describes the real-world tradeoffs encountered in building a production-quality compiler, this book is useful to individuals who work in application areas applying or creating language-based tools and techniques.
Senior undergraduate or graduate level second course. Any researcher or implementer of compilers for parallel or advanced computers.
Since 1975, Christopher W. Fraser has researched compiling, particularly producing code generators automatically from compact specs, and has published many technical articles in this area. He originated retargetable peephole optimization, which GCC, a popular C compiler, uses to help select instructions. From 1977 until 1986, Fraser taught computer science, including compiling, at the University of Arizona. Since 1986, Fraser has conducted computing research at AT&T Bell Laboratories in Murray Hill, New Jersey.
David R. Hanson is a Professor of Computer Science at Princeton University with more than 20 years of research experience in programming languages. He has conducted research in conjunction with Bell Laboratories and is the co-author of lcc, a production quality, research compiler for the C language that is popular with the Unix community. lcc is presented and analyzed in the book A Retargetable C Compiler: Design and Implementation, by Christopher Fraser and David Hanson (c) 1995, Addison-Wesley.