guix: Add nyacc-for-mes.
[mes.git] / doc / ANNOUNCE
1 Subject:        on bootstrapping: introducing Mes
2 Date:   Sun, 19 Jun 2016 13:08:02 +0200
3
4 Hi,
5
6 I have a minimal LISP-1.5-resembling interpreter in C that now can
7 also interpret itself
8
9     https://gitlab.com/janneke/mes
10
11 It was inspired by the seemingly often ignored bootstrapping question
12 made so painfully visible by GuixSD and by OriansJ with their self
13 hosting hex assembler project.
14
15 As a next step after a hex assembler I was thinking of getting Scheme up
16 and running and use that to create a tiny C compiler, probably using
17 PEG.  For that I think we need define-syntax, which I had a peek at and
18 still scares the all-sorts-of-things out of me :-)
19
20 I searched for minimal Lisp/Scheme to get that going and found an
21 article called the Maxwell Equations of Software 1) with a pointer to
22 the 1962 LISP 1.5 paper by John McCarthy 2).
23
24 First I `implemented' Mes/LISP-1.5: the bottom half of page 13 and the
25 necessary helper procedures defined on pages 8-12 using Guile, removing
26 all but the primitives needed to run LISP-1.5/Mes (I think): car, cdr,
27 cond, cons, define, eq?, '()/nil, null?, pair? and quote.  I cheated
28 with read, and with display and newline for debugging.
29
30 Then I translated the program into C and got rid of read by using
31 getchar/ungetchar.
32
33 It's been great fun and now I'm kind of stuck a bit at the point of
34 implementing macros.  I have a simplistic version in C but want to
35 remove that again --I like the idea of having the absolute minimal LISP
36 interpreter in C-- and only introduce macros after having bootstrapped
37 into the LISP/Mes domain.
38
39 Greetings,
40 Jan
41
42 1) http://www.michaelnielsen.org/ddi/lisp-as-the-maxwells-equations-of-software/
43 2) 
44 http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
45