|

Addison-Wesley / Prentice Hall

Computer Science

My Instructor Resource Center :  Log in or request access

Modern Compiler Design
David GallesUniversity of San Francisco

ISBN-10: 1576761053
ISBN-13:  9781576761052

Publisher:  Addison-Wesley
Copyright:  2005
Format:  Paper
Published:  08/15/2004
Status: Instock



A practical overview of all important theoretical topics mixed with many examples. This book includes an integrated Java project that leads to a rich understanding of the issues involved in compiler design.

 

Student support files for Galles can be found here: http://www.aw-bc.com/cssupport/Galles.html.

 

A list of Errata and more project suggestions can be found here: http://www.cs.usfca.edu/galles/compilerdesign/.

1 Introduction
   Why Study Compilers?
   Basic Compiler Design
   Phases of Compilation

2 Lexical Analysis
   File Processing and Tokens
   Deterministic Finite Automata
   Regular Expressions
   JavaCC -- A Lexical Analyzer and Parser Generator
   Creating a Lexical Analyzer for simpleJav using JavaCC
   Lex - A Lexical Analyzer Generator
   Exercises 

3 Context-Free Grammars

   Context-Free Grammar Defintion
   Derivations
   CFG Shorthand
   Parse Trees
   Ambiguous Grammars
   Extended Bakus Naur Form
   Exercisees

4 Top-Down Parsing

   Recursive Descent Parsers
   Grammars That Are Not LL(1)
   LL(k) Parsers
   JavaCC -- A LL(k) Parser Generator
   Writing a Parser for simpleJava Using JavaCC
   Exercises

5 Bottom-up Parsing
   Rightmost Parsers
   Creating LR Parse Tables
   Yacc - Yet ANother Compiler Compiler
   Exercises

6 Abstract Syntax Trees

   Abstract Syntax Tree Definition
   Implementing Trees in Java
   JavaCC Actions
   Creating an Abstract Syntax Tree for simpleJava using JavaCC
   Working with Abstract Syntax Trees in C
   Exercises

7 Semantic Analysis
   Semantic Errors
   Environments
   Type Checking
   Semantic Analyzer Overview
   Implementing a Semantic Analyzer for simpleJava in Java
   Semantic Analyzer Project in Java
   Implementing a Semantic Analyzer for simpleJava in C
   Exercises

8 Creating Assembly Trees

   Implementing Variables
   Abstract Assembly
   Creating Abstract Assembly
   Creating Abstract Assembly Trees in Java
   Building Assembly Trees for simpleJava in Java
   Creating Abstract Assembly Trees in C
   Exercises

9 Code Genearation
   Target Assembly Code
   Simple Tiling
   More Sophisticated Tiling
   Extended Example
   Code Generation in Java
   Code Generation in C
   Code Generation For x86
   Exercises

10 Memory Management
      Static Storage
      Heap-Based Storage
      Programmer-Controlled Deallocation
      Automatic Deallocation -- Garbage Collection
     Creating a Programmer-Controlled Memory Manager For simpleJava
     Creating a Garbage Collector for simpleJava
     Exercises

11Object-Oriented Extensions

     Methods in Classes
     Inheritance
     Access Control
     Function and Method Overloading
     Recursive Classes
     Virtual Methods

Appedix A  simpleJava Reference Manual
   Tokens
   Comments
   Program Structure
   Expressions
   Statements
   Built-in Functions
   Sample simpleJava Programs

Appendix B How Lexical Analyzer Generators Work
   Non-Deterministic Finite Automata
   Converting a Regular Expression into a NFA
   Converting a NFA Into a DFA
   State Minimization of Deterministic Finte Automata
   Multiple Types of Final States
   Converting a DFA unto Code
   Extended Example
   Exercises

CS Support-Student Support Material
Addison-Wesley
©2008 | Addison-Wesley | On-line Supplement | Instock
ISBN-10: 0321446852 | ISBN-13: 9780321446855


Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.