aboutsummaryrefslogtreecommitdiff
path: root/assign.txt
diff options
context:
space:
mode:
authorTucker Evans <tuckerevans24@gmail.com>2019-07-02 19:02:17 -0400
committerTucker Evans <tuckerevans24@gmail.com>2019-07-02 19:02:17 -0400
commita0c24cda8b41254c97fe6017523779ec7e6abe6b (patch)
tree4bcc069ee53791d58009c509e7ba011fd38d5f77 /assign.txt
Initial Commit
Diffstat (limited to 'assign.txt')
-rw-r--r--assign.txt55
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.