嵌入式平台上的Lisp

26

是否有适用于实时嵌入式应用的开源Lisp编译器?即带有增量垃圾回收、可定制的内存处理、小巧的占地面积等功能。

编辑:

澄清一下,我所说的“编译器”是指本地代码,而不是字节码解释器(虽然针对微控制器的建议性解释实现非常有趣,因为它们比我认为可能的要小得多!)


1
我已经成功地在一个非常小的平台上(64kb的代码和数据空间)每个PLC周期结束时运行了一个停止-全球垃圾收集器。在任何实时系统中,都有一个控制/处理周期的概念,您可以在每个周期内运行收集器 - 无论是完整收集还是增量收集。 - Kuba hasn't forgotten Monica
我做过的一件疯狂而不切实际但很有趣的事情是:让微控制器上运行Lisp语言。详情请见:http://dmitryfrank.com/articles/lisp_on_mcu - Dmitry Frank
3个回答

19

看一下Picobit代码,这是一个用于微控制器的Scheme。还有tinyscheme,但我不知道它是否适合嵌入到更小的处理器中。


14

有一些实现可以编译成C代码,例如ECL(可嵌入的公共Lisp)。近期也出现了一个,它将Common Lisp的子集编译为适用于Arduino的部分C++。

您轻描淡写地提到了“实时”,但实时垃圾收集并不容易。虽然存在实时垃圾收集器,但我不知道是否已有任何Lisp实现在使用。


3
“实时”并不意味着需要并发无锁垃圾回收这样时间敏感的操作,而是指可以配置增量式垃圾回收器执行的频率和持续时间,或在我知道代码将会等待的情况下手动调用它。简而言之,比随机停止程序并且时间不确定更加可预测。 :) - absence

7

还有来自Oliotalo的Hedgehog Lisp,采用LGPLv2.1许可证,标准库采用BSD许可证。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接