aboutsummaryrefslogtreecommitdiff
path: root/CHECKLIST.txt
blob: ce22f784f5cd36a98b5e80ab71f7419a9c778f74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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
----------
[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.