CIS 461/561 Intro to Compilers

Spring 2008 Syllabus


[ CIS 461/561 Home Page | Assignments | Announcements ] Last updated 2008/05/19 11:42:40

       Week        Topics Reading
Week 1
3/31 & 4/2
  • Introduction
  • Compiler Architecture
  • Lexical Analysis
Louden, Chapters 1 & 2
Intro slides and slides on scanning
An implementation of the TINY compiler in Java
Week 2
4/7 & 4/9
  • Lexical Analysis Implementation
  • Regular Expressions and FSMs
  • Scanner generation
Louden, Chapter 2
JFlex web site with documentation and downloads
Slides on JFlex
Here are the JFlex examples from the slides and class: test1.jflex, test2.jflex, test3.jflex, test4.jflex, and test5.jflex
Week 3
4/14 & 4/16
  • Context Free Grammars and Parsing
  • Parse Trees and ASTs
  • Grammar Ambiguity
  • BNF and EBNF Notation
Louden, Chapter 3
Slides on grammar
Week 4
4/21 & 4/23
  • Manual construction of recursive descent parser
  • LL Parsing
  • First and follow sets
  • Parsing tools
Louden, Chapter 4
CUP web site with documentation and downloads
Slides on topdown parsing
Week 5
4/28 & 4/30
  • LR(0) and SLR Parsing
  • LR(1) and LALR(1) Parsing
Louden, Chapter 5
A BNF grammar for Java
A Yacc grammar for ANSI C
Slides on bottomup parsing and CUP
CUP example
Midterm Exam Monday, May 5
Week 6
5/5 & 5/7
  • Abstract Syntax
  • Symbol Tables
  • Static semantics
  • Type Checking
Louden, Chapter 6
Slides on semantics
Week 7
5/12 & 5/14
  • Run time environment
  • Static and stack based
  • Parameter passing
Louden, Chapter 7
Slides on runtime environment
Week 8
5/19 & 5/21
  • Intermediate code generation
  • Target code generation
Louden, Chapter 8
Slides on code generation
Week 9
5/28
  • Putting it all together
Week 10
6/2 & 6/4
  • A Tour of the MAWL Compiler
  • Course wrap-up
  • Final exam on last class day
    (Wednesday, June 4)
Mawl Compiler
Final Exam Wednesday, June 4, 12:00-1:20


datkins@uoregon.edu

Last updated 2008/05/19 11:42:40