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