Don't execute semant test if parsing fails
[tiger.ml.git] / README.md
CommitLineData
96ad2fee
SK
1Tiger.ml
2========
188ac950 3A Tiger-compiler implementation in (OCa)ML
96ad2fee 4
6a560b4a
SK
5Status
6------
7
188ac950
SK
8### Technical issues
9- [-] testing framework
10 - [x] run arbitrary code snippets
11 - [x] check non-failures
12 - [x] check expected output
13 - [-] check expected exceptions
14 - [x] semant stage
15 - [ ] generalized expect `Output ('a option) | Exception of (exn -> bool)`
16 - [x] run all book test case files
b53d50d3
SK
17 - [-] grid view (cols: lex, pars, semant, etc.; rows: test cases.)
18 - [x] implementation
19 - [ ] refactoring
188ac950
SK
20- [ ] Travis CI
21
22### Features
23#### Done
6a560b4a
SK
24- [x] ch 1: Warm-up AST
25- [x] ch 2: Lexer
26- [x] ch 3: Parser
27- [x] ch 4: AST
188ac950 28#### In-progress
6a560b4a 29- [-] ch 5: Semantic Analysis (type checking)
188ac950 30#### TODO (short-term)
6a560b4a
SK
31- [ ] ch 6: Activation Records
32- [ ] ch 7: Translation to Intermediate Code
33- [ ] ch 08: Basic Blocks and Traces
34- [ ] ch 09: Instruction Selection
35- [ ] ch 10: Liveness Analysis
36- [ ] ch 11: Register Allocation
37- [ ] ch 12: Putting It All Together
188ac950 38#### TODO (long-term)
6a560b4a
SK
39- [ ] ch 13: Garbage Collection
40- [ ] ch 15: Functional Programming Languages
41- [ ] ch 16: Polymorphic Types
42- [ ] ch 17: Dataflow Analysis
43- [ ] ch 18: Loop Optimizations
44- [ ] ch 19: Static Single-Assignment Form
45- [ ] ch 20: Pipelining and Scheduling
46- [ ] ch 21: The Memory Hierarchy
188ac950 47#### Maybe
6a560b4a
SK
48- [ ] ch 14: Object-Oriented Languages
49
5f295d04
SK
50Implementation Notes
51--------------------
52
53### Parser
54
55#### shift/reduce conflicts
56##### grouping consecutive declarations
57##### lval
58
59### AST
60
61#### print as M-exp
188ac950
SK
62
63### Machine
64Will most-likely compile to RISC and execute using SPIM (as favored by Appel)
This page took 0.032971 seconds and 4 git commands to generate.