http://compilers.iecc.com/crenshaw/ http://oreilly.com/linux/excerpts/9780596155971/error-reporting-recovery.html http://www.ssw.uni-linz.ac.at/Coco/ preprocessors http://www-users.york.ac.uk/~dm26/filepp/ applications http://www.astrobe.com/Oberon.htm C http://www.quut.com/c/ANSI-C-grammar-y.html subc hashing function djb2 Dan Bernstein other C compilers http://nwcc.sourceforge.net/ http://www.t3x.org/subc/ https://github.com/rswier/c4.git http://www.wilfred.me.uk/blog/2014/08/27/baby-steps-to-a-c-compiler/ https://www.sthu.org/code/hrwcc/ http://www.cpm.z80.de/small_c.html http://www.physics.rutgers.edu/~vitchev/smallc-i386.html http://zserge.com/blog/cucu-part1.html other small C libraries the one in subc http://wiki.osdev.org/C_Library http://pdclib.e43.eu/ http://www.codeproject.com/Articles/15156/Tiny-C-Runtime-Library other small languages https://github.com/davidedc/LW-toy-imperative-language http://www.compilers.iecc.com/crenshaw/ https://www.amazon.com/Compiler-Construction-International-Computer-Science/dp/0201403536?ie=UTF8&tag=stackoverfl08-20 https://ooc-lang.org/about/ (especially the list at the end) assembly http://www.electronics.dit.ie/staff/tscarff/8086_instruction_set/8086_instruction_set.html http://schweigi.github.io/assembler-simulator/instruction-set.html http://www.c-jump.com/CIS77/CPU/IsaDesign/lecture.html https://en.wikipedia.org/wiki/Addressing_mode http://www.davidsalomon.name/assem.advertis/AssemAd.html https://github.com/JWasm/JWasm http://magmath.com/english/programming/c_programming_language/projects/two_pass_assembler.php http://x86asm.net emulator frameworks https://github.com/pdewacht/oberon-risc-emu http://fms.komkon.org/EMUL8/HOWTO.html can form a good basis. http://www.unicorn-engine.org (using Qemu as basis) http://www.keystone-engine.org/ http://copy.sh/v86/ minimalistic shells and userland http://brennan.io/2015/01/16/write-a-shell-in-c/ git://github.com/mit-pdos/xv6-public.git (origin System V userland) Linux userland/kernelland linking http://stackoverflow.com/questions/11609110/how-to-access-the-system-call-from-user-space https://0xax.gitbooks.io/linux-insides/content/SysCall/syscall-2.html Otherwise nice projects: https://felixangell.com/blog/virtual-machine-in-c real architectures: http://visual6502.org -> Michael Stein, perfet6502 https://xania.org/201405/jsbeeb-part-two, BBC Computer emulator in Javascript https://github.com/gianlucag/mos6502 minimal architectures: https://github.com/xoreaxeaxeax/movfuscator http://homepage.divms.uiowa.edu/~jones/arch/cisc/ B (predecessor of C): http://www.thinkage.ca/english/gcos/expl/b/tuto/tuto.html CPU architectures http://www.softpanorama.org/History/cpu_history.shtml https://en.wikipedia.org/wiki/DLX: ideal RISC https://www.csee.umbc.edu/courses/undergraduate/411/spring96/dlx.html https://opencores.org/ compilers https://pdos.csail.mit.edu/archive/tickc/source.html https://github.com/berkus/lang-e http://selfie.cs.uni-salzburg.at/ https://github.com/rui314/8cc https://www.reddit.com/r/Cprog/comments/4egaog/small_lesser_known_c_compilers_a_list/ https://github.com/andrewchambers/c (misses a i386 target, but this can be done) https://github.com/Wilfred/babyc https://github.com/AbsInt/CompCert (written in ocaml) http://www.wilfred.me.uk/blog/2014/08/27/baby-steps-to-a-c-compiler/ http://www.bayfronttechnologies.com/mc_tutorial.html Programming a Personal Computer" by Per Brinch Hansen Prentice-Hall 1982 ISBN 0-13-730283-5 similar emus https://github.com/tcort/lmc transpilers https://github.com/dbohdan/compilers-targeting-c