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.
|