CSCI 230 - Computing Systems Organization
Fall 2017
Project 11 Guide
To complete Project 11, it is best to finish the compiler in stages. At each
stage, only implement the code generation for the productions sufficient for
completing the given test case.
Seven
To compile Seven, you need to generate code for the following symbols:
- class
- subroutineDec
- subroutineBody (functions only)
- statements
- doStatement
- returnStatement
- subroutineCall (functions only)
- expressionList
- expression
- term (specifically integerConstant)
- op (specifically + and *)
ConvertToBin
NOTE: The provided ConvertToBin is difficult to use. I recommend my
modified version (Main.jack). My version
uses keyboard input and prints to the screen, rather than relying
on RAM hacking.
To compile ConvertToBin, you need to generate code for the following
additional symbols:
- varDec
- letStatement (you can skip array stuff)
- ifStatement
- whileStatement
- term (specifically true, false, varName and unary operators)
- op (all operators at this point)
Average
To compile Average, you need to generate code for the following additional
symbols:
- letStatement (with arrays)
- term (specifically stringConstant and varName with array lookup)