Skip to content

Commit 4a339aa

Browse files
committed
add programming
1 parent 3088a6f commit 4a339aa

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

docs/programming.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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

Comments
 (0)