|
1 | | -## Syllabus Example for Compiler Course |
| 1 | +## Syllabus Example for a Compiler Course based on Essentials of Compilation (Racket) |
2 | 2 |
|
3 | 3 | High-level programming languages like Racket make it easier to program |
4 | 4 | compared to low-level languages such as x86 assembly code. But how do |
@@ -37,8 +37,8 @@ github: |
37 | 37 |
|
38 | 38 | **Office hours** |
39 | 39 |
|
40 | | -* Instruction 1: Times and location. |
41 | | -* Instruction 2: Times and location. |
| 40 | +* Instructor 1: Times and location. |
| 41 | +* Instructor 2: Times and location. |
42 | 42 |
|
43 | 43 | **Topics:** |
44 | 44 |
|
@@ -112,45 +112,45 @@ week late with a penalty of 10%. |
112 | 112 |
|
113 | 113 | **Schedule** |
114 | 114 |
|
115 | | -Day | Lecture Topic | Assignment Due |
116 | | -Aug. 22 | Introduction | |
117 | | -Aug. 25 | Compiling from LVar to x86 | |
118 | | -Aug. 30 | Uniquify, Remove Complex Operands, Explicate Control | |
119 | | -Sep. 1 | Select Instructions through Prelude & Conclusion | |
120 | | -Sep. 5 | | Integers and Variables |
121 | | -Sep. 6 | Register Allocation: liveness, interference | |
122 | | -Sep. 8 | Code Review: Integers and Variables | |
123 | | -Sep. 13 | Register Allocation: graph coloring | |
124 | | -Sep. 15 | L_If language, type checking, and x86_If | |
125 | | -Sep. 19 | | Register Allocation |
126 | | -Sep. 20 | Conditionals and Explicate Control | |
127 | | -Sep. 22 | Code Review: Register Allocation | |
128 | | -Sep. 27 | Conditionals: Select Instr., Reg. Alloc., Opt. Jumps | |
129 | | -Sep. 29 | Loops and Dataflow Analysis | |
130 | | -Oct. 3 | | Booleans and Conditionals |
131 | | -Oct. 4 | Loops: RCO, Explicate, Challenge | |
132 | | -Oct. 6 | Tuples and Garbage Collection |
133 | | -Oct. 11 | Tuples and GC, cont'd |
134 | | -Oct. 13 | Arrays, Structs, Generational GC |
135 | | -Oct. 17 | | Loops |
136 | | -Oct. 18 | Review for Midterm |
137 | | -Oct. 20 | **Midterm Exam**, Practice Exams and Solutions |
138 | | -Oct. 25 | Compiling Functions to x86 | |
139 | | -Oct. 27 | Compiling Functions, cont'd | |
140 | | -Oct. 31 | | Tuples and GC |
141 | | -Nov. 1 | Lexically Scoped Functions |
142 | | -Nov. 3 | Lexically Scoped Functions, cont'd | |
143 | | -Nov. 8 | Optimize Closures | |
144 | | -Nov. 10 | Dynamic Typing |
145 | | -Nov. 14 | | Functions |
146 | | -Nov. 15 | Code Review | |
147 | | -Nov. 17 | Gradual Typing |
148 | | -Nov. 18 | | Due: Proposal for Final Project |
149 | | -Dec. 1 | Generics |
150 | | -Dec. 6 | No Class |
151 | | -Dec. 8 | Review for Final Exam |
152 | | -Dec. 9 | | Due: Final Project |
153 | | -Dec. 13 | **Final Exam** |
| 115 | + Day | Lecture Topic | Assignment Due |
| 116 | + Aug. 22 | Introduction | |
| 117 | + Aug. 25 | Compiling from LVar to x86 | |
| 118 | + Aug. 30 | Uniquify, Remove Complex Operands, Explicate Control | |
| 119 | + Sep. 1 | Select Instructions through Prelude & Conclusion | |
| 120 | + Sep. 5 | | Integers and Variables |
| 121 | + Sep. 6 | Register Allocation: liveness, interference | |
| 122 | + Sep. 8 | Code Review: Integers and Variables | |
| 123 | + Sep. 13 | Register Allocation: graph coloring | |
| 124 | + Sep. 15 | L_If language, type checking, and x86_If | |
| 125 | + Sep. 19 | | Register Allocation |
| 126 | + Sep. 20 | Conditionals and Explicate Control | |
| 127 | + Sep. 22 | Code Review: Register Allocation | |
| 128 | + Sep. 27 | Conditionals: Select Instr., Reg. Alloc., Opt. Jumps | |
| 129 | + Sep. 29 | Loops and Dataflow Analysis | |
| 130 | + Oct. 3 | | Booleans and Conditionals |
| 131 | + Oct. 4 | Loops: RCO, Explicate, Challenge | |
| 132 | + Oct. 6 | Tuples and Garbage Collection | |
| 133 | + Oct. 11 | Tuples and GC, cont'd | |
| 134 | + Oct. 13 | Arrays, Structs, Generational GC | |
| 135 | + Oct. 17 | | Loops |
| 136 | + Oct. 18 | Review for Midterm | |
| 137 | + Oct. 20 | **Midterm Exam**, Practice Exams and Solutions | |
| 138 | + Oct. 25 | Compiling Functions to x86 | |
| 139 | + Oct. 27 | Compiling Functions, cont'd | |
| 140 | + Oct. 31 | | Tuples and GC |
| 141 | + Nov. 1 | Lexically Scoped Functions | |
| 142 | + Nov. 3 | Lexically Scoped Functions, cont'd | |
| 143 | + Nov. 8 | Optimize Closures | |
| 144 | + Nov. 10 | Dynamic Typing | |
| 145 | + Nov. 14 | | Functions |
| 146 | + Nov. 15 | Code Review | |
| 147 | + Nov. 17 | Gradual Typing | |
| 148 | + Nov. 18 | | Proposal for Final Project |
| 149 | + Dec. 1 | Generics | |
| 150 | + Dec. 6 | No Class | |
| 151 | + Dec. 8 | Review for Final Exam | |
| 152 | + Dec. 9 | | Final Project |
| 153 | + Dec. 13 | **Final Exam** | |
154 | 154 |
|
155 | 155 | **Resources:** |
156 | 156 |
|
|
0 commit comments