CS 536 Syllabus
- Lecture 1
Course overview, Project 1 discussion
- Lecture 2
Compilation example, from scanner to code generator
Symbol tables and scoping, block structure,
Scanning
- Lecture 3
Regular expressions and regular sets, examples
Finite automata
- Lecture 4
Lex/Flex/Jlex
Jlex details, examples
- Lecture 5
Other scanner issues
Lexical errors, error tokens
Translating regular expressions to finite automata
- Lecture 6
Optimizing finite automata
Properties of regular expressions and finite automata
Context-free grammars
- Lecture 7
Java CUP, examples
CFG analysis tools
Parsers vs recognizers
Top-down and bottom-up parsers
- Lecture 8
Simple top-down parsing, LL(1) parsers
Recursive descent parse tables
- Lecture 9
Making a grammar LL(1)
LL & LALR grammars
Grammar engineering
LL and LALR properties
- Lecture 10
Type checking, symbol tables in CSX, forward references
Classes, structs and records
Overloading
Type and kind information
- Lecture 11
CSX type checking examples
- Lecture 12
Virtual memory and run-time memory organization
Stacks and frames
Static and dynamic links
Classes and objects
Displays
Heap management
- Lecture 13
CSX code generation, JVM, Jasmin
- Lecture 14
Jump code, short-circuit evaluation
for loops
CS 536 is a 3 credit course, which meets for one 150 minute lecture each week. In addition to this time spent in lecture, it is expected that students spend a minimum of 6 hours per week outside of class reading, completing programming assignments, and reviewing course topics and materials.