我正在重写一个嵌入了脚本语言的程序,用于扩展和配置,旧程序使用Lua,Lua可以轻松嵌入到我的程序中,只需下载源代码,解压缩,并将所有源文件移动到我的程序目录中,删除lua.c和luac.c,一切都很好。对于函数式编程语言学习,我决定选择一个lisp方言(方案)作为新的脚本后端,但是有很多scheme implemetation,哪个最适合嵌入?
答案 0 :(得分:8)
有许多方案可用于嵌入。我个人推荐的两个:
在这两者中,Chibi努力保持其代码和内存占用空间很小。另一方面,Guile在提供的功能方面更先进。只有Chibi支持R7RS,但我相信Guile正在努力实现这一目标。
要了解其他优秀计划,请查看Wikipedia's listing of Scheme implementations。
答案 1 :(得分:4)
我建议您尝试Bigloo。来自他们的网站:
Bigloo是一个旨在实现一个目标的Scheme实现:启用基于Scheme的编程风格,通常需要C(++)。 Bigloo试图通过提供通常由传统编程语言提供但通过Scheme和函数编程不提供的功能来使Scheme变得实用。 Bigloo编译Scheme模块。它提供小而快速的独立二进制可执行文件。 Bigloo支持Scheme和C程序之间,Scheme和Java程序之间以及Scheme和C#程序之间的完全连接。
我已经看到它在生产中成功用于将方案嵌入到C应用程序中。 Bigloo相对于其他项目的一个主要优点是它支持完全编译的方案代码。当然,您可以根据需要将其与解释的方案代码混合使用。
答案 2 :(得分:4)
我知道这是一个非常古老的问题,但请查看s7方案: https://ccrma.stanford.edu/software/snd/snd/s7.html
它分发为仅包含s7.h和s7.c的tarball,这正是您想要的简单嵌入。此外,它具有很多功能,有些甚至是s7独有的。