14

我正在重写一个嵌入脚本语言进行扩展和配置的程序,旧程序使用Lua,Lua可以很容易地嵌入到我的程序中,只需下载它的源代码,解压缩,并将所有源文件移动到我的程序目录中,删除lua .c 和 luac.c,一切运行良好。对于函数式编程语言学习,我决定选择一个 lisp dialect(scheme) 作为新的脚本后端,但是有很多方案实现,哪个最适合嵌入?

4

3 回答 3

11

有大量用于嵌入的方案。我个人推荐的两个:

  • 赤壁,因为它的设计小巧轻便,并且支持新的 R7RS 标准
  • Guile,因为它是 GNU 的选择并且是一个非常成熟的项目

在这两者中,Chibi 努力保持其代码和内存占用较小。另一方面,Guile 在提供的功能方面更先进。只有 Chibi 支持 R7RS,但我相信 Guile 正在朝着这个方向努力。

要查看其他出色的 Schemes,请查看Wikipedia 的 Scheme implementations 列表

于 2013-08-16T06:38:57.563 回答
6

我知道这是一个非常古老的问题,但请查看 s7 方案: https ://ccrma.stanford.edu/software/snd/snd/s7.html

它作为仅包含 s7.h 和 s7.c 的 tarball 分发,这正是您想要轻松嵌入的内容。此外,它还有很多功能,有些甚至是 s7 独有的。

于 2018-05-18T04:00:10.237 回答
5

我建议尝试Bigloo。从他们的网站:

Bigloo 是一个致力于一个目标的 Scheme 实现:在通常需要 C(++) 的地方启用基于 Scheme 的编程风格。Bigloo 试图通过提供通常由传统编程语言提供但没有由 Scheme 和函数式编程提供的特性来使 Scheme 变得实用。Bigloo 编译 Scheme 模块。它提供小而快的独立二进制可执行文件。Bigloo 实现了 Scheme 和 C 程序之间、Scheme 和 Java 程序之间以及 Scheme 和 C# 程序之间的完全连接。

我已经看到它在生产中成功用于将方案嵌入到 C 应用程序中。Bigloo 相对于其他项目的一个主要优势是它支持完全编译的方案代码。当然,您可以根据需要将其与解释的方案代码混合使用。

于 2013-08-16T17:48:51.177 回答