See also my tech blog.
- My lisp interpreter series
- "Writing a Lisp, the series"
- "Let's Build a Compiler" (Noah Zentzis) 1, 2, 3, 4
- "Developing Statically Typed Programming Language" (Minko Gechev)
- "A Simple Scheme Compiler" (from "An Introduction to Scheme and its Implementation")
- https://github.com/danistefanovic/build-your-own-x#build-your-own-programming-language
- http://dmitrysoshnikov.com/
- A "Tiny" Pascal Compilter, Part 1 (Byte, 1978)
- "Micro C" 1 2 3
- One-pass Compiler Primer (HN)
- Let's make a Teeny Tiny compiler, part 1
- Writing a lisp compiler from scratch in JavaScript: 1. lisp to assembly
- A Compiler Writing Journey
- "Nanopass" compilation
- So You Want to Be a (Compiler) Wizard
- An Overview of the PL.8 Compiler
- UMass Lowell, CS406 Compiler Construction, Spring 2019, Jay McCarthy
- CSE 131: Compilers
- CS420: Compiler Design
- U. of Virginia, CS655, Spring 2001
- CSCI 485 Intro to Compilers
- The IU (Indiana University) Compilers course (Siek)
- CS 6120: Advanced Compilers: The Self-Guided Online Course
- An Incremental Approach to Compiler Construction
- Programming Languages: Application and Interpretation
- "LLVM" (The Architecture of Open Source Applications)
- Writing a C Compiler
- "A micro-manual for LISP Implemented in C"
- "Lisp in Less Than 200 Lines of C"
- krig/LISP, HN
- matp/tiny-lisp
- uLisp: Implementation guide, uLisp-esp32
- esp-lisp: github, wiki, talk, talk
- femtolisp, in particular the tiny directory.
- PreScheme, manual
- elk scheme, github mirror
- MAL
- lis.py, lispy.py
- B1fipl
- Lispkit
- GNU Mes
- Scheme interpreter as mistletoe markdown renderer
- https://github.com/arkanis/lisp.c (bytecode VM)
- Kilo LISP
- LISP9 (bytecode VM)
- rxi/aria
- mattn/golisp
- sl3.c
- mini-scheme
- uBasic
- scheme.rs
- atmoslisp
- risp
- arret
- LYSP
- turtles (Apple II)
- tcc
- figure out why this is so much faster than other C compilers.
- lcc (github)
- adapted for use in Quake 3
- A Retargetable C Compiler
- 8cc
- 9cc
- (not to be confused with Ken Thompsons's 9-cc)
- chibicc
- Small C Compilers
- ACK
- selfie
- Ur-Scheme (Scheme-to-x86-ASM)
- Marc Feeley's "90-minute Scheme-to-C compiler"
- Schism (Scheme to WASM)
- ichbins (Lisp-to-C)
- B1fipl
- pcc
- Godbolt Compiler Explorer
- links: https://github.com/melling/ComputerLanguages/blob/master/compilers.md
- the super tiny compiler
- qeedquan/pl0
- SubC
- movfustacor
- https://github.com/akeep/scheme-to-c
- SECD
- ZINC
- How to write a (toy) JVM
- 16-Bit Virtual Machine in JavaScript (playlist)
- Writing a register based VM in less than 125 lines of C code
- "bootstrapping" wiki
- "Programming thought experiment: stuck in a room with a PC without an OS"
- "Bootstrapping a simple compiler from nothing" (Edmund Grimley-Evans)
- https://web.archive.org/web/20160304012557/http://vpri.org/html/work/ifnct.htm
- https://piumarta.com/software/cola/
- "Building Your Own Dynamic Language" https://www.youtube.com/watch?v=cn7kTPbW6QQ
- Design Principles Behind Smalltalk
- Berkeley Programming Language Prelim Syllabus (1998)
- "This syllabus gives an overview of the background expected for students planning to do PhD research in Programming Languages"
- LuaJIT and DynASM
- Terra
- RaptorJIT
- GNU LibJIT
- LLVM On-Request Compilation (ORC)
- AsmJIT
- Mozilla Nanojit
- Ask HN: JIT Compiler Landscape of 2019?
- stoke
- stochastic assembly optimizer
- DannyB2 on the JVM's C1 and C2
- vnmakarov/mir
- libtcc
- SimpleJIT
Yulia Startsev series on SpiderMonkey JIT: part 1, part 2, part 3, part 4, part 5, part 6
- https://github.com/mkirchner/gc
- http://maplant.com/gc.html
- https://github.com/orangeduck/tgc
- http://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/
- DannyB2 on the JVM's ZGC and Shenandoah
- https://en.wikipedia.org/wiki/Cheney's_algorithm
- https://making.pusher.com/golangs-real-time-gc-in-theory-and-practice/
- https://www.well-typed.com/blog/2019/10/nonmoving-gc-merge/
- https://danluu.com/malloc-tutorial/
- https://github.com/bytecodealliance/wasmtime/tree/master/cranelift
- https://www.fastly.com/blog/announcing-lucet-fastly-native-webassembly-compiler-runtime
- Padraic Edgington's videos
- Design of Digital Circuits, ETH Zurich, Onur Mutlu, Spring 2019
- Basic CPU design course, LC-3, MIPS, FPGA, Vivado, Basys 3
- High Performance Computer Architecture, Georgia Tech CS6290
- Pipelining, etc.
- Performance Engineering of Software Systems, MIT 6.172, Leiserson and Shun, Fall 2018
- computationalstructures.org (MIT 6.004)
- /r/computerarchitecture
- /r/comparch
- Microprocessor Design (wikibooks)
- LC-3 (and LC-3b (wayback), LC-4)
- DLX
- ZipCPU, projects, blog
- DCPU-16
- SAP-1 (and SAP-2, SAP-3)
- "Build an 8-bit computer from scratch" (Ben Eater)
- "SAP-1(Simple as Possible-1) Computer Architecture Introduction" (Shirish Koirala)
- RiSC-16 1, 2, 3, 4, 5, 6
- from the community: 1
- ROSE-8
- CARDIAC, the cardboard CPU simulator
- NAR 2
- All of Dieter Mueller's articles
- KENBAK-1
- C74-6502
- The Gigatron
- The Scott CPU
OISC: One Instruction Set Computers!
- Review of relay-based computers
- Clickety Clack's Relay computer build
- joesnotes' relay single-board-computer
- Xv6
- "Making a RISC-V Operating System using Rust" (Stephen Marz)
- multicians.org
- "Computer Science from the Bottom Up"
- RPi OS
- https://github.com/danistefanovic/build-your-own-x
- https://www.destroyallsoftware.com/screencasts has a great set of from-scratch screencasts (paid)
- https://www.cs.utexas.edu/~novak/schemevscl.html
- https://clojure.org/reference/lisps
- http://hyperpolyglot.org/lisp
- Ray Dillinger on Common Lisp vs Scheme http://community.schemewiki.org/?scheme-vs-common-lisp
- Truthiness, empty list and nil in Common Lisp vs Scheme: https://stackoverflow.com/a/42436563
- razum2um/awesome-clojure
- mbuczko/awesome-clojure
- kana-sama/awesome-clojure
- libpython-clj
- Calling Python from Clojure
Clojure and Clojure-like implementations:
- clojure
- clojurescript
- planck
- lumo
- joker
- clojure-clr
- clojure-py
- clojure-py-redux
- clojurescript-lua
- clojure-scheme
- gherkin
- flk
- babashka
- sci
- closh
- pixie
- clojerl
See my Scheme notes.
See my Common Lisp notes.
- https://fasterthanli.me/blog/2020/a-half-hour-to-learn-rust/
- "Learn Rust with Entirely Too Many Linked Lists"
- https://fitzgen.github.io/oxischeme/oxischeme/index.html
- https://users.rust-lang.org/t/solved-gc-in-rust-for-scheme-interpreter/25459/3
- https://boats.gitlab.io/blog/post/shifgrethor-i/
- https://github.com/isamert/scheme.rs
- https://github.com/kenpratt/rusty_scheme
- https://github.com/mgattozzi/schemers/tree/Input
- https://blog.cloudflare.com/building-fast-interpreters-in-rust/
- https://gobyexample.com/
- https://play.golang.org/
- https://quii.gitbook.io/learn-go-with-tests/
- https://milapneupane.com.np/2019/07/06/learning-golang-from-zero-to-hero/
- https://getstream.io/blog/go-1-11-rocket-tutorial/
- https://www.geeksforgeeks.org/golang-tutorial-learn-go-programming-language/
- https://github.com/melling/ComputerLanguages/blob/master/go.md
- golang github repos with > 100 stars
- http://golang-challenge.org/
- https://jvns.ca/blog/2017/09/24/profiling-go-with-pprof/
- https://sohlich.github.io/post/go_makefile/
- http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/
- https://www.geeksforgeeks.org/anonymous-function-in-go-language/
- https://dave.cheney.net/2014/03/19/channel-axioms
- kozross/awesome-c
- aleksandar-todorovic/awesome-c
- uhub/awesome-c
- Bfgeshka/awesome-c
- C (cppreference.com)
- OpenBSD man pages
- "What is the difference between C, C99, ANSI C and GNU C?"
- "Some things every C programmer should know about C" (Peter Klausler)
- stb
- https://github.com/jeremycw/httpserver.h
- "Inside the C Standard Library"
- https://www.onlinegdb.com/ry6JnKZXI
- http://wiki.luajit.org/Bytecode-2.0
- https://github.com/franko/luajit-lang-toolkit
- https://blog.cloudflare.com/luajit-hacking-getting-next-out-of-the-nyi-list/
- https://github.com/cloudflare/loom
- danhuss/awesome-sql
- csika/awesome-sql
- awesome-public-datasets
- google images q=julia+evans+sql
- joins poster
- https://github.com/RandyGaul/cute_headers
- https://github.com/jeremycw/httpserver.h
X11:
Golang:
- https://github.com/avelino/awesome-go#gui
- Qt: https://github.com/therecipe/qt
- GTK3: https://github.com/gotk3/gotk3
- Win32: https://github.com/lxn/walk
- SDL2: https://github.com/veandco/go-sdl2
SDL: