2011-03-30 64 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許可。

相關問題