4

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

编辑:

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

4

3 回答 3

4

您是否查看过 Racket C API 文档,尤其是标题为将 Racket 嵌入程序的部分?那里提供了适用于 Unix、Windows 和 MacOS X 的说明。

于 2012-05-09T17:29:55.227 回答
4

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

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

FFI 简介

FFI 上的文档

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

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

find / -name libracket.a
于 2012-05-09T20:48:32.853 回答
4

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

Chicken在方案中相当独特,因为它包含一个编译器来C. 因此,chicken 允许您C使用这些直接将代码嵌入到方案程序中,#> ... <#并且有几个用于与外部变量和函数交互的过程。

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

于 2012-05-09T21:31:23.887 回答