Lecture |
Date |
Topic |
Reminder |
1 |
1/13/Tu |
Course overview.
Introduction to compilers |
Class syllabus.
Dragon 1.1-1.6 |
2 |
1/15/Th |
A simple one-pass compiler I |
Dragon 2.1-2.4 |
3 |
1/20/Tu |
A simple one-pass compiler II |
Dragon 2.5-2.7 |
4 |
1/22/Th |
A simple one-pass compiler III
A simple Postscript interpreter |
Dragon 2.8
Project 1 out |
5 |
1/27/Tu |
The Trend language introduction |
Handout |
6 |
1/29/Th |
Lexical analysis I |
Dragon 3.1-3.4 |
7 |
2/03/Tu |
Lexical analysis II, Symbol Tables
Analyzing the Trend tokens |
Dragon 3.5
Project 2 out |
8 |
2/05/Th |
Syntax analysis I
|
Dragon 4.1-4.3 |
0 |
2/10/Tu |
Syntax analysis II |
Dragon 4.4-4.6 |
10 |
2/12/Th |
Syntax analysis III |
Dragon 4.7-4.9
Project 1 due |
11 |
2/17/Tu |
Other syntax analysis tools
Parsing the Trend language
|
Handouts
Project 3 out |
12 |
2/19/Th |
Jave Virtual Machine (JVM) introduction
|
JVM 1
Project 2 due
|
13 |
2/24/Tu |
The Oolong assembly language and writing JVM methods |
JVM 2, 3 |
14 |
2/26/Th |
JVM classes, objects, controls, etc. |
JVM 4, 5
|
15 |
3/03/Tu |
JVM verification and debugging |
JVM 6, 7 |
16 |
3/05/Th |
JVM class loaders and class files |
JVM 8, 9
Project 3 due |
17 |
3/10/Tu |
Midterm exam 11:00 - 12:30 |
|
18 |
3/12/Th |
Buffer for overrun class time |
|
Spring Break (3/16-3/20) |
19 |
3/24/Tu |
Runtime environment I |
Dragon 7.1-7.3
|
20 |
3/26/Th |
Runtime environment II
Runtime support for Trend |
Dragon 7.4,7.5
Project 4 out |
21 |
3/31/Tu |
Syntax directed translations I |
Dragon 5.1-5.3 |
22 |
4/02/Th |
Syntax directed translations II |
Dragon 5.4,5.5 |
23 |
4/07/Tu |
Compiling Trend for JVM I |
Online code examples |
24 |
4/09/Th |
Compiling Trend for JVM II
The Trend Compiler for JVM (a) |
Project 4 due
Project 5 out |
25 |
4/14/Tu |
Compiling other languages for JVM |
JVM 10, 11, 12, 13 |
26 |
4/16/Th |
Code generation in general
The Trend Compiler for JVM (b) |
Dragon 8.1-8.4
Project 6 out |
27 |
4/21/Tu |
Type checking |
Dragon 6.5 |
28 |
4/23/Th |
JVM security, performance, and other issues |
JVM 14, 15, 16
Project 5 due |
29 |
4/28/Tu |
Optimization and other advanced issues |
Dragon 9.1,10.1 |
| 30 |
4/30/Th |
Semester topic review and preparation or final exam |
Everything taught in the class
Project 6 due |
| |
5/05/Tu |
Final exam 9:45-11:45 |
|