ARM处理器的Scheme编译器

10

有没有适用于 ARM 处理器,特别是 Cortex-M3 的 Scheme 编译器(不是解释器)?我正在寻找一个编译器,而不是解释器,以获得可预测和小的执行时间在相对较慢的处理器上。它可能会省略一些规范的部分(例如 continuations),但这没关系。

需要注意的是,我只有 8 kB(也许多 2-4 倍)的 RAM。

我将尝试使用答案中的所有内容,然后回复我的发现。这可能需要一些时间。


Bigloo已知可用。Stalin可能也可用(但我尚未尝试过ARM)。实际上,任何其他Scheme到C编译器也应该可以。 - SK-logic
顺便问一下,你真的需要Scheme吗?在嵌入式环境中,像BitC这样的东西不更合适吗? - SK-logic
@SK-logic,如果Bigloo“可行”,你能提供一个链接吗? Cortex-M3是ARM控制器的低端系列之一,例如它们无法运行Linux,并且我没有看到Bigloo对裸机uC的支持。此外,它还相当庞大。 BitC看起来是一个不错的项目,但我想坚持使用更标准化和文档化的东西。 - whitequark
@SK-logic,大多数Scheme-to-C编译器的问题在于它们需要运行时环境,这个环境通常相当庞大,并且有时依赖于操作系统的特性。 - whitequark
3个回答

4

这个问题是关于Common Lisp的,但一个特定的答案引用了Picobit,它本质上是为微控制器设计的Scheme。根据论文所说,它可以在仅有7 kb的内存上运行,非常适合我的条件。

我决定fork Picobit并将其移植到ARM处理器中。


2

非常有趣!不过我会研究一下如何让它在Cortex-M3 CPU上运行。因为他们的RAM相当有限。 - whitequark
Chicken Scheme确实是一款非常好的软件,但它的运行时库大小约为240k,并且我甚至不知道其RAM占用情况。可悲的是,这有点太多了。(此外,它也缺乏在裸机微控制器上运行的支持,但这不是一个大问题。) - whitequark
@whitequark:啊,抱歉。我没有在受限环境中运行scheme的经验,但我之前使用过chicken scheme编译成C,所以我希望那会起作用。 - cam

1

Gambit-C 还提供了 Scheme 到 C 的编译器。 同时也可以看看 Stalin


就我所知,Gambit运行时非常大,而Stalin生成的代码相当臃肿--也许它确实更快,但绝对也需要大量内存,这是不可接受的。 - whitequark
开箱即用的Gambit运行时非常庞大,但已经有一些工作来减少很多冗余,并且只提供所需的运行时,而不是每个Gambit原语和函数。 - Jonathan Arkell

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