Languages and Compilers

Home 

Best bookCompilers: Principles, Techniques and Tools
Best videosAlex Aiken’s course on Lagunita
Why study?If you understand how languages and compilers actually work, you’ll write better code and learn new languages more easily. 

 

Books:

→ Compilers: Principles, Techniques & Tools (The Dragon Book)

→ Kindle: Language Implementation Patterns

→ Kindle: Writing a compiler in Go

→ Kindle: Writing an interpreter in Go

https://craftinginterpreters.com/

Videos:

→ CS1 Compilers (Stanford): https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about

Projects

→ Toy language

→ Mal https://github.com/kanaka/mal

→ LSPs

https://lsif.dev/

https://code.visualstudio.com/blogs/2019/02/19/lsif

https://docs.sourcegraph.com/user/code_intelligence/lsif

→ Webpack/babel plugins

→ Code generatos

→ Contribute to TS/Rust compiler/V8

Links

⚓LLVM ✏️WebAssembly (WASM) 

https://github.com/skylake59/awesome-compilers

https://matklad.github.io/2018/06/06/modern-parser-generator.html

https://ohmlang.github.io/editor/

http://rickardlindberg.me/writing/rlmeta/

https://www.quora.com/How-does-a-Just-in-Time-JIT-compiler-say-for-example-Java-JIT-feed-the-generated-machine-code-to-the-processor

https://tomassetti.me/

https://rajasegar.github.io/ast-finder/

https://css-tricks.com/how-to-modify-nodes-in-an-abstract-syntax-tree/

https://ts-morph.com/

https://twitter.com/garybernhardt/status/1212468714018242560

DoctorWkt/acwj: A Compiler Writing Journey 

 

Lexical Scanning in Go - Rob Pike 

https://twitter.com/mraleph/status/1234407620229894144

🎷Theory of Computation 

https://medium.com/@gvanrossum_83706/peg-parsing-series-de5d41b2ed60

Large scale code refactoring: