Home | Calendar | Assignments

Vital Stats

John Lasseter

lasseter@lasseter.edu

Class time—MWF 3:00 - 3:55 (Gulick 208b), Th 3:05 - 4:30 (Rosenberg 009)

Contact

lasseter@hws.edu

(315)781-4652

Lansing 300

Office Hours

M 9:30 - 10:30

W 9:30 - 11:00

Th 1:00 - 2:55

or by appointment (or just drop by)

All readings are from Crafting a Compiler, unless otherwise indicated. The reading assignment associated with a particular day should be completed by the start of class that day, not afterwards. Your ability to participate effectively depends on this.

As appropriate to the needs of this learning community, we will alter details of this schedule to reflect a slower or faster pace. Check back here for regular updates.

Last Update: January 24, 2016

CLASS TOPICS READINGS NOTES
Week 0
01/20 - 01/23 Compiler Structure; Lexical Analysis (FSAs and Regular Expressions) Ch. 1 (skim); Ch. 2.1–2.3
Week 1
01/24 - 01/30 Lexical Analysis (Implementation, Specification); Grammars Ch. 2.4; JFlex Manual; 3.1–3.2 Lab #0 (Simple Compiler) due on Wednesday, January 27
Week 2
01/31 - 02/06 Recursive descent ("top down") parsing; LL(k) grammars Ch. 3.3, 3.5.4 Lab #1 (Lexer Construction) due on Thursday, February 4
Week 3
02/07 - 02/13 Bottom-up parsing; LR(k) grammars Ch. 3.4 Lab #2 (Recursive Descent Parsing) due on Thursday, February 11
Week 4
02/14 - 02/20 LALR(1) parsing; parser generators Ch. 3.6; CUP manual
Week 5
02/21 - 02/07 Abstract Syntax Trees; Syntax-directed translation Ch. 4.4 (pp. 198–206)
Week 6
02/28 - 03/05 Interpreters and their implementation; Symbol Tables Notes on interpeter structure; Notes on the visitor pattern; Ch. 5.5
Week 7
03/06 - 03/11 Type systems; semantic analysis Notes on type systems; Tiger Language Reference manual; Ch. 4.1–4.2
Week 8
03/12 - 03/19 SPRING BREAK
Week 9
03/20 - 03/26 Semantic analysis and abstract interpretation
Week 10
03/27 - 04/02 Java Virtual Machine; Code generation and partial evaluation JVM notes; Notes on partial evaluation;
Week 11
04/03 - 04/09 Code generation; Runtime structures for variable access & procedures Ch. 6.1–6.2, 7.1–7.8
Week 12
04/10 - 04/16 Translation to intermediate representation Ch. 5.1–5.4; 6.4–6.5
Week 13
04/17 - 04/23 Code generation Ch. 7.5–7.7, 7.9
Week 14
04/24 - 04/30 TBD (project work) Time permitting, we'll look at data flow analysis and other optimization techniques
Week 15 / Reading Days
05/01 - 05/07 Wrap-up Final class meeting is Monday, 05/02
Finals Week
Final Exam Time is Sunday May 8, 8:30AM-11:30AM (sorry y'all - I don't make the schedule). Projects are due at 8:30 am that day. You will present your work during meetings held throughout the exam period.