Compilers translate one language to another. They're most commonly used to translate higher level languages like C to lower level languages like Assembly. [Compiler codebases to study](https://gist.github.com/jakeisnt/f0af7ba144c5c40c2729c37177dd6eee) [Garbage Collection Algorithms – Dmitry Soshnikov](http://dmitrysoshnikov.com/courses/essentials-of-garbage-collectors/) [Tracing JIT vs Method JIT: What to choose? : ProgrammingLanguages](https://www.reddit.com/r/ProgrammingLanguages/comments/hvs79e/tracing_jit_vs_method_jit_what_to_choose/) # To Review - [CS 6120](https://www.cs.cornell.edu/courses/cs6120/2019fa/) :: Advanced compilers course. Lots of cool things to learn about optimisation! - [Implementing functional languages: a tutorial - Microsoft Research](https://www.microsoft.com/en-us/research/publication/implementing-functional-languages-a-tutorial/) - [Compilers - Compilers for contrarians](https://crypto.stanford.edu/~blynn/compiler/) - [MLton](http://www.mlton.org/): A whole program optimizer for SML. OCaml has far more support, sure, but the prospect of a whole-program optimizer is compelling! # HOPL Papers released every ten or so years recapping advancements in programming languages from that decade. Great resource for learning about the history of programming languages research by definition. Example: [HOPL IV: The history of programming languages](https://www.dreamsongs.com/HOPLIV.html).