3 A Tiger-compiler implementation in (OCa)ML
9 - [-] testing framework
10 - [x] run arbitrary code snippets
11 - [x] check non-failures
12 - [x] check expected output
13 - [-] check expected exceptions
15 - [ ] generalized expect `Output ('a option) | Exception of (exn -> bool)`
16 - [x] run all book test case files
17 - [ ] grid view (cols: lex, pars, semant, etc.; rows: test cases.)
22 - [x] ch 1: Warm-up AST
27 - [-] ch 5: Semantic Analysis (type checking)
28 #### TODO (short-term)
29 - [ ] ch 6: Activation Records
30 - [ ] ch 7: Translation to Intermediate Code
31 - [ ] ch 08: Basic Blocks and Traces
32 - [ ] ch 09: Instruction Selection
33 - [ ] ch 10: Liveness Analysis
34 - [ ] ch 11: Register Allocation
35 - [ ] ch 12: Putting It All Together
37 - [ ] ch 13: Garbage Collection
38 - [ ] ch 15: Functional Programming Languages
39 - [ ] ch 16: Polymorphic Types
40 - [ ] ch 17: Dataflow Analysis
41 - [ ] ch 18: Loop Optimizations
42 - [ ] ch 19: Static Single-Assignment Form
43 - [ ] ch 20: Pipelining and Scheduling
44 - [ ] ch 21: The Memory Hierarchy
46 - [ ] ch 14: Object-Oriented Languages
53 #### shift/reduce conflicts
54 ##### grouping consecutive declarations
62 Will most-likely compile to RISC and execute using SPIM (as favored by Appel)