Project ▪ Lexer ▪ Parser ▪ Parser detects syntax errors ▪ Semantic errors identified ▪ Code generation: variables, operator precedence, control structures, methods ▪ Your intermediate code (assembler) runs in a VM Submission includes: ▪ Code in your GitHub repository (provided as GitHub Classroom) – add link on Blackboard ▪ Final Report – PDF file on Blackboard ▪ Recorded Demonstration Video – submit link on Blackboard
Frames ▪ A Frame represents one method invocation (activation record). ▪ Each call to CAL creates a new Frame object. ▪ Frames store local variables and parameters for the method. ▪ The return address is stored separately in Stack<Integer> returnAddresses. ▪ Frames are pushed into the call stack: Stack<Frame> frames. ▪ Recursive calls create multiple independent Frames. ▪ When OPR 1,0 executes, the current frame is removed.
These slides can only be used as study material for the Compilers course at Universidad Panamericana. They cannot be distributed or used for another purpose.