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 ---------- [X] (1.0) Lexical Analysis [X] a. Line numbering [X] b. Two styles of comments [X] c. (optional) Scientific notation [ ] (1.5) Syntax Analysis: grammar adjustments [X] a. Unlimited nesting of subprograms [ ] b. Array access on both sides of assignment [X] 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.