summaryrefslogtreecommitdiff
path: root/LINKS
blob: 0bb46cf4730d62c18f92bd03ef65e52e39bc7520 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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