This new text examines the design and implementation of Icc, a production-quality, retargetable compiler, designed at AT&T Bell Laboratories and Princeton University for the ANSI C programming language. 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 have made available the entire source code for a real compiler. Structured as a self-study guide that describes the real-world tradeoffs encountered in building a production-quality compiler, A Retargetable C Compiler is also useful to individuals who work in application areas using or creating language-based tools and techniques. Features: discusses the implementation and design tradeoffs made while constructing a real ANSI C compiler, illustrating the interaction between theory and practice; covers compiler theory only as needed to understand the implementation of Icc, focusing instead on practical, applied issues; encourages a deeper understanding of programming in C, by providing C programmers with a tour of the language from the perspective of compiler authors; includes coverage of code generators for the MIPS R3000, SPARC, and Intel 386 and its successors; and provides access to the full source code for the Icc compiler, the three back ends, and the code-generator generator, either on disk or via FTP.
Author(s): Christopher W. Fraser, David R. Hanson
Edition: 1
Publisher: Addison-Wesley Professional
Year: 1995
Language: English
Pages: 584
City: Redwood City, CA
Tags: Retargetable Compiler; ANSI C; C Language; ICC compiler
Contents
Preface
Introduction
Storage Management
Symbol Management
Types
Code Generation Interface
Lexical Analysis
Expressions
Expression Semantics
Statements
Declarations
Generating Intermediate Code
Structuring the Code Generator
Selecting and Emitting Instructions
Register Allocation
Generating MIPS R3000 Code
Generating SPARC Code
Generating X86 Code
Retrospective
Bibliography
Index
How to Obtain Icс