Next:
1 Introduction
Up:
CSE 5317/4305: Design and
Previous:
CSE 5317/4305: Design and
Contents
1 Introduction
1.1 What is a Compiler?
1.2 What is the Challenge?
1.3 Compiler Architecture
2 Lexical Analysis
2.1 Regular Expressions (REs)
2.2 Deterministic Finite Automata (DFAs)
2.3 Converting a Regular Expression into a Deterministic Finite Automaton
2.4 Case Study: The Calculator Scanner
3 Parsing
3.1 Context-free Grammars
3.2 Predictive Parsing
3.3 Bottom-up Parsing
3.4 Case Study: The Calculator Parser
4 Abstract Syntax
4.1 Building Abstract Syntax Trees in Java
4.2 Building Abstract Syntax Trees in Scala
4.3 Building Abstract Syntax Trees in C
5 Semantic Actions
6 Semantic Analysis
6.1 Symbol Tables
6.2 Types and Type Checking
6.3 Case Study: The Calculator Interpreter
7 Activation Records
7.1 Run-Time Storage Organization
7.2 Case Study: Activation Records for the MIPS Architecture
8 Intermediate Code
8.1 Translating Variables, Records, Arrays, and Strings
8.2 Control Statements
9 Basic Blocks and Traces
10 Instruction Selection
11 Liveness Analysis
12 Register Allocation
12.1 Register Allocation Using the Interference Graph
12.2 Code Generation for Trees
13 Garbage Collection
13.1 Storage Allocation
13.2 Automatic Garbage Collection
2015-01-20