Compilers
Lecture Materials
These lectures are divided into topic areas, not lecture days. Each lecture here represents 1-4 actual lecture days
Lecture 1: Overview and Lexical Analysis
slides
printable
Lecture 2: Context Free Grammars & EBNF
slides
printable
Lecture 3: Parsing
slides
printable
Parser.java
prefix.jj
prefixmain.java
prefix2.jj
prefixmain2.java
Lecture 4: Abstract Syntax Trees, Visitors, & Actions in Javacc
slides
printable
Simple Expression Trees
:
ASTExpression.java
ASTIntegerLiteral.java
ASTOperatorExpression.java
Tree nodes w/ a variable # of children
ASTFunctionCallStatement.java
Virtual Function Review
Shape.java
Square.java
Circle.java
ShapeDriver.java
Visitors
ASTExpression.java
ASTIntegerLiteral.java
ASTOperatorExpression.java
ASTVisitor.java
Calculate.java
PrintTree.java
Actions in JavaCC
parens1.jj
parens2.jj
calc.noact.jj
calc.jj
Lecture 5: LR Parsing
slides
printable
Lecture 6: Semantic Analysis
slides
printable
TypeEntry.java
TypeEnvironment.java
VariableEntry.java
VariableEnvironment.java
FunctionEntry.java
FunctionEnvironment.java
Lecture 7: Building Abstract Assembly Trees
slides
printable
Lecture 8: Code Generation
slides
printable
Lecture 9: Object Oriented Extensions
slides
printable
Lecture 10: Memory Management
slides
printable
Lecture 11: Register Allocation
slides
printable
Lecture FR: Final Review
slides
printable