From b055c157e04ae30f6ffb9eef1fa97d512ce4e65a Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Thu, 30 Sep 2021 07:57:04 +0000 Subject: README is markdown export of cc.wg now, Wordgrinder file is the master --- miniany/cc.wg | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) (limited to 'miniany/cc.wg') diff --git a/miniany/cc.wg b/miniany/cc.wg index e5ae626..e2b2c47 100644 --- a/miniany/cc.wg +++ b/miniany/cc.wg @@ -23,14 +23,20 @@ WordGrinder dumpfile v3: this is a text file; diff me! .addons.spellchecker.enabled: false .addons.spellchecker.usesystemdictionary: true .addons.spellchecker.useuserdictionary: true -.documents.1.co: 1 -.documents.1.cp: 31 -.documents.1.cw: 1 +.clipboard.co: 1 +.clipboard.cp: 1 +.clipboard.cw: 1 +.clipboard.margin: 0 +.clipboard.viewmode: 1 +.clipboard.wordcount: 19 +.documents.1.co: 9 +.documents.1.cp: 71 +.documents.1.cw: 4 .documents.1.margin: 0 .documents.1.name: "main" .documents.1.sticky_selection: false .documents.1.viewmode: 1 -.documents.1.wordcount: 774 +.documents.1.wordcount: 910 .fileformat: 8 .findtext: "C4" .menu.accelerators.^@: "ZM" @@ -139,6 +145,9 @@ WordGrinder dumpfile v3: this is a text file; diff me! .replacetext: "" .statusbar: true .current: 1 +#clipboard +LB http://selfie.cs.uni-salzburg.at/: C* self-hosting C compiler (also emulator, hypervisor) for RISCV, inspiration for what makes up a minimal C language +. #1 H1 CC - a self-hosting, bootstrappable, minimal C compiler H2 Introduction @@ -193,8 +202,22 @@ PRE cat c4.c4 EOF c4.c EOF cc.c EOF hello.c | ./c4 P EOF contains the traditional FS (file separator) character in the ASCII character set. Every time c4/c4.c is invoked it reads exacly one input file up to the first FS character (or stops at the end of stdin). P We can also use -s, or -d on every level as follows: PRE cat cc.c EOF hello.c | ./c4 -d -H2 References -LB "Compiler Construction", Niklaus Wirth +H2 References +P Compiler construction in general: +LB "Compiler Construction"", Niklaus Wirth LB https://github.com/DoctorWkt/acwj: a nice series on building a C compiler, step by step with lots of good explanations -LB https://www.engr.mun.ca/~theo/Misc/exp_parsing.htm#climbing, https://en.wikipedia.org/wiki/Operator-precedence_parser#Precedence_climbing_method +LB https://www.engr.mun.ca/~theo/Misc/exp_parsing.htm#climbing, https://en.wikipedia.org/wiki/Operator-precedence_parser#Precedence_climbing_method +LB https://github.com/lotabout/write-a-C-interpreter/blob/master/tutorial/en/, tutorial based on C4 how to build a C interpreter, explains nicely details in C4. +P C4: +LB https://github.com/rswier/c4.git, C4 - C in four functions, Robert Swierczek, minimalistic C compiler running on an emulator on the IR, inspiration for this project +LB https://github.com/rswier/c4/blob/switch-and-structs/c4.c, c4 adaptions to provide switch and structs +LB https://github.com/EarlGray/c4: a X86 JIT version of c4 +LB https://github.com/jserv/amacc: based on C4, JIT or native code, for ARM, quite well documented, also very nice list of compiler resources on Github page +P Other minimal compilers and systems: +LB http://selfie.cs.uni-salzburg.at/: C* self-hosting C compiler (also emulator, hypervisor) for RISCV, inspiration for what makes up a minimal C language +LB http://www.iro.umontreal.ca/~felipe/IFT2030-Automne2002/Complements/tinyc.c, Marc Feeley, really easy and much more readable, meant as educational compiler +LB https://github.com/rswier/swieros.git: c.c in swieros, Robert Swierczek +P Assembly: +LB https://github.com/felipensp/assembly/blob/master/x86/itoa.s, for putint (early debugging keyword) +LB https://baptiste-wicht.com/posts/2011/11/print-strings-integers-intel-assembly.htm (earldy debugging keyword) . -- cgit v1.2.3-54-g00ecf