2011-03-30 4 views
20

실시간 임베디드 애플리케이션에 적합한 오픈 소스 Lisp 컴파일러가 있습니까? 나는. 증가 가비지 컬렉션, 사용자 정의 메모리 처리, 소형 풋 프린트 등으로임베디드 플랫폼에서의 Lisp

편집 :

내가 마이크로 컨트롤러에 대한 제안 된 해석 구현에 대한 흥미 불구하고 (네이티브 코드가 아닌 바이트 코드 인터프리터를 의미하는 "컴파일러"에 의해 명확히하려면 내가 생각한 것보다 훨씬 작다!).

+1

매우 작은 플랫폼 (64KB의 코드 및 데이터 공간 결합)에서 모든 PLC주기의 끝에서 세계 정상 가비지 수집기를 성공적으로 실행했습니다. 모든 실시간 시스템에는 제어/처리주기라는 개념이 있으며 전체 수집 이건 증가분 이건 관계없이 각주기마다 수집기를 실행할 수 있습니다. –

+0

미친 짓이 아닌 실용적인,하지만 재미있는 것들 : 마이크로 컨트롤러에서 Lisp을 실행하자 : http://dmitryfrank.com/articles/lisp_on_mcu –

답변

13

C 코드로 컴파일하는 몇 가지 구현이 있습니다 (예 : ECL (Embeddable Common Lisp). 아주 최근의 library도 있는데, Arduino의 Common Lisp의 하위 집합을 C++의 하위 집합으로 컴파일합니다.

"실시간"으로 아무렇지도 않게 언급했지만 가비지 수집으로 실시간을 얻는 것은 쉽지 않습니다. 실시간 가비지 콜렉터가 존재하지만, 아직 이들을 사용하는 Lisp 구현에 대해서는 알지 못합니다.

+2

"실시간"으로 나는 뭔가를 의미하지는 않는다. 동시 가비지 콜렉터가 필요하지만, 가비지 콜렉터가 실행되는 빈도와 횟수를 구성 할 수있는 가능성, 또는 어쨌든 코드를 알고있는 곳에서 수동으로 호출 할 수있는 가능성을 고려해야합니다. 간단히 말해, 불특정 시간 동안 무작위로 프로그램을 중단하는 것보다 예측 가능한 것이 있습니다. :) – absence

17

마이크로 컨트롤러를위한 체계 인 Picobitcode을 살펴보십시오. tinyscheme도 있지만, 더 작은 프로세서에 임베드하는 것이 얼마나 적합한 지 모르겠습니다.

7

Oliotalo의 Hedgehog Lisp도 있으며, LGPLv2.1 라이센스가 있으며 표준 라이브러리는 BSD로 라이센스를 받았습니다.