X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=README.md;h=4f0cd80ffe2001d55f2da193dbe84ede3808f5a7;hb=f5fc22dd6a095ad3787283f1f18c410444e441cc;hp=632225a4993760aab5a0c0515b84058539f83858;hpb=96ad2fee9c1cde8e8ab49c2589b381ad5a4a750e;p=tiger.ml.git diff --git a/README.md b/README.md index 632225a..4f0cd80 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,44 @@ Tiger.ml ======== -Project Plan ------------- +Status +------ -I. Fundamentals of Compilation - 1. Introduction - 2. Lexical Analysis - 3. Parsing - 4. Abstract Syntax - 5. Semantic Analysis - 6. Activation Records - 7. Translation to Intermediate Code - 8. Basic Blocks and Traces - 9. Instruction Selection - 10. Liveness Analysis - 11. Register Allocation - 12. Putting It -II. Advanced Topics - 13. Garbage Collection - 14. Object-Oriented Languages - 15. Functional Programming Languages - 16. Polymorphic Types - 17. Dataflow Analysis - 18. Loop Optimizations - 19. Static Single-Assignment Form - 20. Pipelining and Scheduling - 21. The Memory Hierarchy +### Done +- [x] ch 1: Warm-up AST +- [x] ch 2: Lexer +- [x] ch 3: Parser +- [x] ch 4: AST +### TODO (short-term) +- [-] ch 5: Semantic Analysis (type checking) +- [ ] ch 6: Activation Records +- [ ] ch 7: Translation to Intermediate Code +- [ ] ch 08: Basic Blocks and Traces +- [ ] ch 09: Instruction Selection +- [ ] ch 10: Liveness Analysis +- [ ] ch 11: Register Allocation +- [ ] ch 12: Putting It All Together +### TODO (long-term) +- [ ] ch 13: Garbage Collection +- [ ] ch 15: Functional Programming Languages +- [ ] ch 16: Polymorphic Types +- [ ] ch 17: Dataflow Analysis +- [ ] ch 18: Loop Optimizations +- [ ] ch 19: Static Single-Assignment Form +- [ ] ch 20: Pipelining and Scheduling +- [ ] ch 21: The Memory Hierarchy +### Maybe +- [ ] ch 14: Object-Oriented Languages + +Implementation Notes +-------------------- + +### Parser + +#### shift/reduce conflicts +##### grouping consecutive declarations +##### lval + +### AST + +#### print as M-exp