You are on page 1of 2

CSE 5317/4305: Design and Construction of Compilers

Leonidas Fegaras
University of Texas at Arlington, CSE
Copyright ©1999-2005 by Leonidas Fegaras
email: fegaras@cse.uta.edu
web: http://lambda.uta.edu/

Contents
• 1 Introduction
o 1.1 What is a Compiler?
o 1.2 What is the Challenge?
o 1.3 Compiler Architecture

• 2 Lexical Analysis
o 2.1 Regular Expressions (REs)
o 2.2 Deterministic Finite Automata (DFAs)
o 2.3 Converting a Regular Expression into a Deterministic Finite Automaton
o 2.4 Case Study: The Calculator Scanner

• 3 Parsing
o 3.1 Context-free Grammars
o 3.2 Predictive Parsing
o 3.3 Bottom-up Parsing
o 3.4 Case Study: The Calculator Parser

• 4 Abstract Syntax
o 4.1 Building Abstract Syntax Trees in Java
o 4.2 Building Abstract Syntax Trees in C
o 4.3 Gen: A Java Package for Constructing and Manipulating Abstract Syntax
Trees

• 5 Semantic Actions
• 6 Semantic Analysis
o 6.1 Symbol Tables
o 6.2 Types and Type Checking
o 6.3 Case Study: The Calculator Interpreter

• 7 Activation Records
o 7.1 Run-Time Storage Organization
o 7.2 Case Study: Activation Records for the MIPS Architecture

• 8 Intermediate Code
o 8.1 Translating Variables, Records, Arrays, and Strings
o 8.2 Control Statements

• 9 Basic Blocks and Traces


• 10 Instruction Selection
• 11 Liveness Analysis
• 12 Register Allocation
o 12.1 Register Allocation Using the Interference Graph
o 12.2 Code Generation for Trees

• 13 Garbage Collection
o 13.1 Storage Allocation
o 13.2 Automatic Garbage Collection
o 13.3 Other Issues

You might also like