See also my tech blog.
- 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, 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
OISC: One Instruction Set Computers!
- Review of relay-based computers
- Clickety Clack's Relay computer build
- joesnotes' relay single-board-computer
- "bootstrapping" wiki
- "Programming thought experiment: stuck in a room with a PC without an OS"
- "Bootstrapping a simple compiler from nothing" (Edmund Grimley-Evans)
- "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/
- An Incremental Approach to Compiler Construction
- Essentials of Compilation: An Incremental Approach
- Programming Languages: Application and Interpretation
- "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
- 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
- chibicc
- Small C Compilers
- 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
- 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
- an Oberon implementation which uses LuaJIT
- 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/
- Xv6
- "Making a RISC-V Operating System using Rust" (Stephen Marz)
- multicians.org
- "Computer Science from the Bottom Up"
- 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
- 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
- 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://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/
- 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"
- 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