diff options
Diffstat (limited to 'assign.txt')
-rw-r--r-- | assign.txt | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/assign.txt b/assign.txt new file mode 100644 index 0000000..9a886cb --- /dev/null +++ b/assign.txt @@ -0,0 +1,55 @@ +Project: DRAGON +=============== + +- Arrange an online demo of your compiler during Finals week (15min). + +- Send a self-contained compressed tar source of your compiler by + email. Your compiler must run on the ITL machines. + +- Submit a hardcopy of your compiler documentation: design document, + user manual, testing report, status report (limitations, caveats, or + bugs), and a "dragon" haiku. Indicate clearly in your report an + extra feature that is unique to your compiler. + +CHECK LIST +---------- +(1.0) Lexical Analysis + a. Line numbering + b. Two styles of comments + c. (optional) Scientific notation + +(1.5) Syntax Analysis: grammar adjustments + a. Unlimited nesting of subprograms + b. Array access on both sides of assignment + c. Allow for statements. + d. (optional) Another loop construct + e. (optional) Multidimensional arrays + f. (optional) Records and pointers + +(2.0) Symbol Table + a. Memory-leak handler + b. (optional) Statistical analysis of hashpjw + +(2.5) Syntax Tree (Intermediate Code Generation) + a. Visual print + b. Memory-leak handler + +(3.0) Semantic Analysis & Type Checking + a. Check list + b. Error reporting + c. (optional) Error recovery + +(4.0) Code Generation + a. Input/Output statements + b. Simple expressions (arithmetic and relational): gencode + c. Statements (assignment, conditional, loop) + d. Nonlocal names: base frame pointer (static scope parent) + e. Recursive routines (example: GCD program) + f. Complex expressions (register spilling) + g. (optional) Arrays (L-value, R-value, parameters, nonlocal) + h. (optional) Floating-point support + +Extra Trails (under construction) +- Lambda or Objects. +- Code generator for IA64 or SPARC (RISC architecture). +- Code optimization. |