Scheme和C一起工作

时间:2012-05-09 17:19:30

标签: c scheme

有没有办法让C运行计划程序?我知道这两种语言,并希望以C的速度使用方案的逻辑。基本的例子C使得方案需要使用的列表然后方案返回一些东西。到目前为止,我一直在使用DrRacket进行计划。有人能指出我正确的方向吗?

编辑:

看着Caleb的回答,我看到了Racket CGC。你如何找到这个我的网站上的球拍来源,我在Ubuntu。我在哪里可以获得libracket.a和libmzgc.a库。我无法在任何地方找到它们。在任何地方,我看它只是回到文章说你需要它们。

3 个答案:

答案 0 :(得分:5)

混合Scheme和C的最简单方法是在Scheme中编写主程序,只写出C中C中绝对需要的内容。

将C源编译为库,然后使用FFI将其导入Racket。 FFI非常容易使用,即使您决定以相反的方式编写程序,也绝对应该首先检查。

Introduction to the FFI

Docs on the FFI

顺便说一句 - libracket.a和libmzgc.a应该与其余的Racket文件一起安装。我不在Ubuntu上,所以我不知道确切的路径。但是,您可以使用unix命令find来定位它。

如果我没记错的话,命令是:

find / -name libracket.a

答案 1 :(得分:3)

您是否看过the Racket C API documentation,特别是标题为Embedding Racket into a Program的部分? Unix,Windows和MacOS X提供了相关说明。

答案 2 :(得分:3)

大多数当前方案都有某种外部函数接口,允许您使用非方案代码。很多人在这里对Racket的经验比我更多,所以我会让他们告诉你。

Chicken在方案中相当独特,因为它包含了C的编译器。因此,鸡允许您使用C直接将#> ... <#代码嵌入到计划程序中,并为interfacing with external variables and functions提供了多个程序。

有关详细信息,请参阅手册的“Getting Started”部分。