CPSC 421: Compilers and Interpreters

 

Instructor: Carsten Schürmann
Department of Computer Science
Yale University
Time: MWF 1:30-2:20
Room: AKW200

  Home
  Schedule
  Handouts
  Assignments
  Projects
  Links
 
 

Schedule

Lecture 1.
Introduction; ML Language (Appel 1; Ullman 1-3)
Slides.
Assignment 1 handed out.
Lecture 2.
ML tutorial and SML/NJ (Ullman 4-6)
Slides.

Lecture 3.
Regular Expressions (Appel 2.1-2.2)
Slides.

Lecture 4.
Finite Automata (Appel 2.3-2.4)
Slides.

Lecture 5.
Lex (ML-Lex Manual; Appel 2.5)
Slides.
Assignment 1 due.

Lecture 6.
More about ML (Ullman 7-9)
Slides.

Lecture 7.
Context-Free Grammars (Appel 3.1-3.3)
Slides.
Assignment 2 handed out.
Lecture 8.
Parsing (Appel 3.1-3.3)
Slides.

Lecture 9.
More on Parsing (Appel 3.3-3.4)
Slides.
Lecture notes.

Lecture 10.
Lecture: Yacc (ML-Yacc Manual; Appel 3.3-3.4)
Related Slides.
Assignment 2 due.
Lecture 11.
Lecture: LL parser generators (Appel 3.2)
Slides.
Assignment 3 handed out.
Lecture 12.
Lecture: Tiger Language; Abstract Syntax (Appel 4, Appendix)
Slides.

Lecture 13.
Symbol Tables (Appel 5.1-5.2)
Slides.

Lecture 14.
Type Checking (Appel 5.3-5.4)
Lecture notes.
Assignment 3 due.
Lecture 15.
More on Type Checking (Appel 5.3-5.4)
Lecture notes.

Lecture 16.
Type Checker Implementation
Lecture notes.
Slides.

Lecture 17.
Stack Frames (Appel 6)
Slides.
Assignment 4 due.
Lecture 18.
More on Stack Frames (Appel 6)
Slides.

Lecture 19.
Intermediate Trees (Appel 7.1-7.2)
Slides.

Lecture 20.
Expressions & Declarations to Trees (Appel 7.2-7.3)
Slides.

Lecture 21.
Canonical Trees (Appel 8.1)
Slides.

Lecture 22.
Traces (Appel 8.2)
Slides.
Assignment 5 due.

Lecture 23.
Liveness (Appel 10)
Slides.
Lecture 24.
Register allocation (Appel 11)
Slides.
Lecture 25.
Instruction Scheduling (Appel 20)
Slides. Assignment 6a, 6b due.
Lecture 26.
Memory Hierarchies (Appel 21) Slides.
Lecture 27.
Assignment 6c due. Higher-Order Functions; Closures (Appel 15)
Lecture 28.
Higher-Order Functions; a semantic point of view.
Lecture 29.
Higher-Order Functions; implmentation details.
Slides.
Assignment 6d due.
Lecture 30.
Garbage Collection.

Lecture 31.
More on Garbabe Collection.
Assignment 6e due.
Lecture 32.
Specification of Programming Language.
A detailed summary (by Frank Pfenning).
Lecture 33.
Experimentation with Programming Languages.

Lecture 34.
Reasoning about Programming Languages.

Lecture 35.
Object-Oriented Programming Languages.

Lecture 36.
More on Object-Oriented Programming Languages.

Lecture 37.
Lazy Functional Programming Languages.
Slides.