[HN Gopher] Lisp in 99 lines of C and how to write one yourself ...
___________________________________________________________________
Lisp in 99 lines of C and how to write one yourself [pdf]
Author : jstanley
Score : 104 points
Date : 2022-07-14 18:52 UTC (4 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| jayd16 wrote:
| How many lines of Lisp is C?
| xedrac wrote:
| A lot more than the number of lines of Lisp in Lisp.
| bdamm wrote:
| Are you proposing writing a replacement for gcc in lisp? If
| the goal is to have executable machine code then the turtles
| must end somewhere.
| dang wrote:
| We changed the URL from https://raw.githubusercontent.com/Robert-
| van-Engelen/tinylis... to one that doesn't auto-download the pdf.
|
| The project page is https://github.com/Robert-van-
| Engelen/tinylisp/.
| lioeters wrote:
| In a similar line as the posted project TinyLisp, I'd like to
| mention uLisp.
|
| Lisp for microcontrollers - Arduino, Adafruit M0/M4, Micro:bit,
| ESP8266/32, RISC-V, and Teensy 4.x boards - http://www.ulisp.com/
|
| In particular, its smallest variant (~800 LoC).
|
| > uLisp Zero is a pared-down version of uLisp, capable of running
| in 8 Kbytes of program memory with 1 Kbyte of RAM
|
| https://github.com/technoblogy/ulisp-zero/blob/master/uLispZ...
|
| ---
|
| And I can't help but mention Make-a-Lisp and its C implementation
| (~350 lines).
|
| https://github.com/kanaka/mal/blob/master/impls/c/stepA_mal....
| latenightcoding wrote:
| When I did something similar the hard part was implementing
| continuations efficiently, a feature that a lot of these small
| lisp interpreters lack.
| timmg wrote:
| Any pointer to how that's done (in the context of an "easy"
| interpreter like this)?
| deanmen wrote:
| Trampolines
| kitd wrote:
| Funnily enough, I've been writing my own Lisp in C recently.
| Interesting to see how it is done by someone skilled. The boxing
| of expression pointers into a single float is really cool.
| [deleted]
| GartzenDeHaes wrote:
| "CMC Threat Intelligence" flags that PDF as malicious.
|
| https://www.virustotal.com/gui/url/081fd12ade3ff10b2812f630f...
| kitd wrote:
| Weird. 1 out of 87 vendors. I wonder what they found that
| others didn't.
| nominusllc wrote:
| Anybody have an image or text copy?
| WJW wrote:
| Would be kinda cool if they just spotted that it contained a
| full LISP interpreter and assumed from that that it might be
| malicious because in some earlier case they came across a
| malicious PDF that obscured its payload with a custom LISP
| interpreter.
| rawoke083600 wrote:
| All these "small lisps / lisp-in-go / lisp-to-xyz" are great and
| I do applaud the exercise and what is produced, and I also
| appreciate many of of these projects are for learning or fun
| projects.
|
| BUT if by chance you or your project is one of the more "serious
| lisps or next-lisp-vibes" hear his:
|
| Before you even think about speed or
| benchmarks(size,spec,speed,lang) remember we live in a connected
| world that is multi-core.
|
| First prize for your home-brew lisp that would make me sit up and
| take notice is if it has very easy net-libraries built-in (http
| (client + server), websocket, sse, json etc) I think that is one
| of the things Go(yes I know not every like it, but the real world
| usage is real) got right, the std lib was very "modern" at least
| to the point of real-world usability. Multicore is a close second
| prize :)
|
| Network-libs (stupid easy ones) and the concurrency concepts is
| the very first thing I look for in a lang or lisp-derivatives
|
| My 2cents :)
___________________________________________________________________
(page generated 2022-07-14 23:00 UTC)