Compilers checklist / log

See also Compiler for my notes.

  1. Do any compilers course.
  2. 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