哪种方案实现最容易嵌入到C/C++程序中?

mol*_*loo 10 scheme

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

csl*_*csl 8

有许多方案可用于嵌入.我个人推荐的两个:

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

在这两者中,Chibi努力保持其代码和内存占用空间很小.另一方面,Guile在提供的功能方面更先进.只有Chibi支持R7RS,但我相信Guile正在努力实现这一目标.

要了解其他伟大的Schemes,请查看Wikipedia的Scheme实现列表.

  • 谢谢你的推荐!Guile有许多依赖,比如libgmp,libunistring等.而且它们对我来说是多余的.我决定尝试ChibiScheme,它很快就在我的电脑上编译了. (2认同)
  • Chibi 方案只能在 Windows 上的 Cygwin 下编译,我的 MinGW 不支持它。 (2认同)
  • @moligaloo 我在 Windows 上的 Visual Studio 中提出了 Chibi,零戏剧性,零警告,零注释掉定义和包含(移植到 Windows 时通常的废话),零错误,并且所有单元测试都通过。只需要运行 CMake,它会生成一个 Visual Studio .sln 文件,按 F7 build all,运行测试项目。五次点击,从下载到工作代码不到一分钟。 (2认同)

Jus*_*ier 5

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

Bigloo是一个致力于一个目标的Scheme实现:启用通常需要C(++)的基于Scheme的编程样式。Bigloo试图通过提供通常由传统编程语言提供但由Scheme和函数式编程提供的功能来使Scheme实用。Bigloo编译Scheme模块。它提供小型快速的独立二进制可执行文件。Bigloo启用Scheme和C程序之间,Scheme和Java程序之间以及Scheme和C#程序之间的完全连接。

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


Mat*_*rry 5

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

它作为仅包含s7.h和s7.c的tarball分发,这正是您希望轻松嵌入的目标。此外,它还有很多功能,甚至是s7所特有的。