|
| 1 | +# Programming |
| 2 | + |
| 3 | +## Courses |
| 4 | + |
| 5 | +* Structure and Interpretation of Computer Programs MIT [ [course](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005) | [book](https://mitpress.mit.edu/sites/default/files/sicp/index.html) ] |
| 6 | +* [Advanced Compilers](https://www.cs.cornell.edu/courses/cs6120/2020fa/self-guided) |
| 7 | +* [History of Programming Languages](https://felleisen.org/matthias/7480-s21/index.html) |
| 8 | + |
| 9 | +## Books |
| 10 | + |
| 11 | +* [Compilers: Principles, Techniques, and Tools](https://suif.stanford.edu/dragonbook) |
| 12 | +* [Writing an Interpreter and Compiler in Go](https://gumroad.com/l/waiig_wacig_bundle) |
| 13 | +* [Crafting Interpreters](https://craftinginterpreters.com) (online) |
| 14 | +* [Programming Languages: Application and Interpretation](https://cs.brown.edu/courses/cs173/2012/book) (online) |
| 15 | +* [Build Your Own Lisp](https://buildyourownlisp.com) (online) |
| 16 | +* [LispE: Lisp Elémentaire](https://github.com/naver/lispe/wiki) (online) |
| 17 | + |
| 18 | +## Interpreter / Compiler |
| 19 | + |
| 20 | +* [awesome-compilers](https://github.com/aalhour/awesome-compilers) |
| 21 | +* [Compiler Explorer](https://godbolt.org) |
| 22 | +* [Let's Build a Compiler](https://xmonader.github.io/letsbuildacompiler-pretty/about.html) |
| 23 | +* [A C version of the "Let's Build a Compiler"](https://github.com/lotabout/Let-s-build-a-compiler) |
| 24 | +* [Let's write a compiler](https://briancallahan.net/blog/20210814.html) |
| 25 | +* [An Intro to Compilers](https://web.archive.org/web/20210111064441/https://nicoleorchard.com/blog/compilers) (archive) |
| 26 | +* [Tiny C Compiler](https://bellard.org/tcc) |
| 27 | +* [rui314/chibicc: A small C compiler](https://github.com/rui314/chibicc) |
| 28 | +* [The Super Tiny Compiler!](https://github.com/jamiebuilds/the-super-tiny-compiler) |
| 29 | +* [Obfuscated Tiny C Compiler](https://bellard.org/otcc) |
| 30 | + |
| 31 | +## Parser |
| 32 | + |
| 33 | +* [Parsing Text with Nom](https://blog.adamchalmers.com/nom-chars) |
| 34 | +* [How to write a tree-sitter grammar in an afternoon](https://siraben.dev/2022/03/01/tree-sitter.html) |
| 35 | +* [Writing a Simple Parser in Rust](https://adriann.github.io/rust_parser.html) |
| 36 | + |
| 37 | +## LLVM |
| 38 | + |
| 39 | +* [How to learn compilers: LLVM edition](https://lowlevelbits.org/how-to-learn-compilers-llvm-edition) |
| 40 | +* [A Complete Guide to LLVM for Programming Language Creators](https://mukulrathi.com/create-your-own-programming-language/llvm-ir-cpp-api-tutorial) |
| 41 | + |
| 42 | +## Random |
| 43 | + |
| 44 | +* [Esolang](https://esolangs.org) |
| 45 | +* [Compile code into silicon](https://www.siliconcompiler.com) |
| 46 | +* [Make A Language](https://arzg.github.io/lang) (rust) |
| 47 | +* [Designing a programming language](http://ducklang.org/designing-a-programming-language-i) |
| 48 | +* [mirdaki/theforce: The Force - A Star Wars themed programming language](https://github.com/mirdaki/theforce) |
| 49 | +* [riicchhaarrd/ocean: Programming language that compiles into a x86 ELF executable](https://github.com/riicchhaarrd/ocean) |
| 50 | +* [adam-mcdaniel/oakc: An infinitely more portable alternative to the C programming language](http://github.com/adam-mcdaniel/oakc) |
| 51 | +* [Creating the Golfcart Programming Language](https://healeycodes.com/creating-the-golfcart-programming-language) |
| 52 | +* [I wrote a linker everyone can understand!](https://briancallahan.net/blog/20210609.html) |
| 53 | +* [spencertipping/jit-tutorial: How to write a JIT compiler](https://github.com/spencertipping/jit-tutorial) |
| 54 | + |
| 55 | +<br> |
0 commit comments