31 lines
1.6 KiB
Text
31 lines
1.6 KiB
Text
|
LYSP: 50 Years of Symbolic Processing
|
||
|
|
||
|
Last weekend I was thinking about Ashwin Ram's "Short Ballad Dedicated to
|
||
|
the Growth of Programs" [1] and the result is LYSP: a tiny, lightweight Lisp
|
||
|
interpreter closely following the tradition of the earliest implementations.
|
||
|
It is dedicated to the inventor and first implementers of that language,
|
||
|
which is 50 years old this year. If you partially evaluate LYSP in Latin it
|
||
|
means "50 Years of Symbolic Processing".
|
||
|
|
||
|
IBM once made a dialect of Lisp called Lysp and published a paper about it.
|
||
|
As far as I know, it died shortly thereafter and so I have unilaterally
|
||
|
swept and reallocated the name. (If you know differently, please tell me.)
|
||
|
|
||
|
Being a weekend hack there are probably numerous bugs. If you find one,
|
||
|
send a description (or perferably a prescription) to the author (Ian
|
||
|
Piumarta) at firstName (at) lastName (dot) com. If you use it for something
|
||
|
interesting, I'd love to hear about that too.
|
||
|
|
||
|
It started off really small (about 150 LOC) but I got carried away. I hope
|
||
|
you will forgive the bloat. Compiled on x86 with gcc -Os it's about 17 KB
|
||
|
for the interpreter and 4 KB for the garbage collector (if you configure it
|
||
|
to use the cheesy, built-in, home-made, precise one -- rather than the
|
||
|
classy, incremental, conservative Boehm-Demers-Weiser one in /usr/lib).
|
||
|
That makes for about 21 KB of self-contained Lisp interpreter, including a
|
||
|
rudimentary (but useful) FFI and macros. If you do something interesting
|
||
|
with it in the embedded space, I'd love to hear about that too.
|
||
|
|
||
|
And yes: '(cdr (assq key a-list))' does exactly what you want it to in LYSP.
|
||
|
|
||
|
[1] http://www.apl.jhu.edu/~hall/lisp/Scheme-Ballad.text
|