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