Use Scheme ... with LambdaChip Alonzo STM32 board


#1

Ijust saw this come up on Facebook and thought I’d share.
I know it’s Scheme and not µLisp but Scheme is closer to my programming heart. :)


#2

Looks very interesting, especially the part:

a Scheme compiler generating a LEF bytecode file


#3

It’s interesting, yes, but it shares the weakness of every “embedded Lisp” I’ve seen except uLisp - it’s not really implementing Lisp on the microcontroller, but allowing you to compile Lisp code that will then execute on a microcontroller.

Considering how much writing compilers is seen as some kind of dark art, I find that curious.


#4

I noticed that too. One of the biggest benefits to running a Lisp interpreter/compiler on an MCU is that you can dynamically generate/send/execute new source down to the MCU. Only some Forths and luaRTOS (https://github.com/whitecatboard/Lua-RTOS-ESP32) seems to let me do that.


#5

I had a look at this too, I think it is interesting, but as pointed out it lacks the interactivity commonly associated with Lisp. Reading the docs they credit the Picobit system, which compiles Scheme (using Racket on a PC) for execution on a VM on a microcontroller:

There are a couple of Lisp/Scheme systems that do run on microcontrollers, similar to uLisp. Armpit is probably the most similar in that in runs on multiple devices:

http://armpit.sourceforge.net/

Another is is ESP Lisp, only for a single device, but claims features such as a full screen editor:

And finally, Lisp on a MCU, based on an IoT platform:

https://dmitryfrank.com/articles/lisp_on_mcu

From what I can tell the first was/is used for education, while the last 2 were/are hobby projects targetting only the ESP8266.

It appears that none of them have the support/activity that uLisp has, which is why uLisp is one of the first ones I have looked at.

I’d be interested if anyone has other leads, or gives the LambdaChip device a test. Regardless of what it does, I find it interesting that anyone thinks they can sell a device based on Lisp :-)