ISBN-10:
1576761053
ISBN-13:
9781576761052
Pub. Date:
08/29/2004
Publisher:
Pearson
Modern Compiler Design / Edition 1

Modern Compiler Design / Edition 1

by David GallesDavid Galles

Paperback

Current price is , Original price is $164.4. You

Temporarily Out of Stock Online

Please check back later for updated availability.

This item is available online through Marketplace sellers.

MARKETPLACE
2 New & Used Starting at $1.99

Overview

This book is a one-stop-shop for basic compiler design -- anyone with a solid understanding of Java should be able to use this book to create a compiler. Galles writes a very practical text -- all theoretical topics are introduced with intuitive justification and illustrated with copious examples. This book is intended for anyone interested in learning basic compiler design.

Product Details

ISBN-13: 9781576761052
Publisher: Pearson
Publication date: 08/29/2004
Edition description: New Edition
Product dimensions: 8.50(w) x 10.80(h) x 0.90(d)

Table of Contents

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

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews