Professional Documents
Culture Documents
Computer
Computer
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
• 13 Garbage Collection
o 13.1 Storage Allocation
o 13.2 Automatic Garbage Collection
o 13.3 Other Issues