Compilers checklist / log
See also Compiler for my notes.
- Do any compilers course.
- Deep dive into open-source compilers (see below). Possible thing todo:
- How each compiler works at a high level
- Unique features of each compiler
Starting out
- Kaleidoscope: https://llvm.org/docs/tutorial/index.html
Recommend starting out with this. It has more hand-holding, but it will give you a better intuition of various compiler phases. To become good at compilers you will need theory as well. Recommend cis341 if you're coming from FP land.
- https://www.seas.upenn.edu/~cis341/current/#projects
- William Bowman’s course on Compilers
- CS143 Videos from Semantic Analysis onwards.
- A basic tutorial on ANTLR.
- SICP
- Meta circular evaluator - Macros
- Look at compiler codebases in the wild.
- Look at my github stars.
- Compiling with CPS: https://matt.might.net/articles/cps-conversion/
Advanced
- Grin Compiler
- GCC
- GCC Rust - Under active development
- GCC D
- Zig
- Nim, D, SBCL
- Odin, Vox, Cone, C3
- https://www.williamjbowman.com/teaching/2019/w2/cpsc539b/notes_lec1.html
- https://www.williamjbowman.com/teaching/2020/w1/cpsc509/
- https://www.williamjbowman.com/index.html
- https://github.com/Bulat-Ziganshin/magus