Compiler Design ---- Final Project ---- Due: 11:59pm, June 26 (Tuesday) 2007 NOTE: Projects submitted later than 11:59pm, June 28 (Thursday) 2007 will not be graded! Extend your homework 5 to include the following: 1. multi-dimensional arrays A[0..3,5..6] OF INTEGER ... A[3,5] := 45; 2. nested block structure variables can be declared at the beginning of any block BEGIN i := i+1; BEGIN VAR i : REAL; ENDVAR i := 1.2; END END 3. non-nested procedure/function def. after the declaration section of the main program parameters: call by value must support recursive calls (dynamic allocation of AR's) PROGRAM main VAR i,j,k: INTEGER; ENDVAR PROCEDURE f(x,y,z:INTEGER; h:REAL); VAR ... ENDVAR BEGIN %% beginning of f() ... END BEGIN %% beginning of main() ... END FUNCTION f(x,y,z:INTEGER; h:REAL):INTEGER; VAR ... ENDVAR BEGIN ... END NOTE: 1. see the spec of last year (compiler2006) for details. 2. TA will announce the details of final projects in TA's web page. 3. Need to have documentations in addition to codes. a. implementation details data structures/flow-of-control/algorithm/... b. best/worst parts of your code c. other helpful features 4. Code need to have suitable amount of comments. 5. Scoring rules: a. correctness: 50% b. documentation: 30% c. elegancy: 20%