2011-03-30 60 views
20

是否有适用于实时嵌入式应用程序的开源Lisp编译器?即增量垃圾收集,可定制的内存处理,占地面积小等优点嵌入式平台上的Lisp

编辑:

为了澄清,通过“编译”我的意思是原生代码,而不是字节码解释器(尽管微控制器所建议的解释实现是有趣比我想象的要小很多!)。

+1

我已经成功地在一个非常小的平台(组合代码和数据空间为64kb)的每个PLC周期结束时运行停止世界的垃圾回收器。在任何实时系统中,都有一个控制/处理周期的概念,您可以在每个周期运行收集器 - 无论是完整收集还是增量收集。 – 2014-01-03 01:39:32

+0

我已经完成了一个疯狂且非实用但有趣的事情:让我们在微控制器上运行Lisp:http://dmitryfrank.com/articles/lisp_on_mcu – 2016-07-25 21:21:22

回答

13

有一些编译为C代码的实现,例如, ECL(Embeddable Common Lisp)。还有一个非常新的library,它将Common Lisp的子集编译为Arduino的C++子集。

您提到的“实时”如此无情,但实时使用垃圾收集并不是微不足道的。确实存在实时垃圾收集器,但我还没有意识到任何使用它们的Lisp实现。

+2

“实时”我并不是指这样的东西对于需要并发无锁垃圾收集的时机很敏感,但是可以配置增量垃圾收集器被允许执行的频率和时间,或者理想情况下能够手动调用它,因为我知道代码将会等待。简而言之,比在未指定的时间内随机停止该程序更可预测的事情。 :) – absence 2011-04-01 08:47:11

17

看看Picobitcode,这是一个微控制器的方案。也有tinyscheme,但我不知道它是如何适合嵌入到较小的处理器。

7

还有Oliotalo的Hedgehog Lisp,根据LGPLv2.1许可,标准库以BSD许可。