Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
7年前关闭。
Improve this question
所以我有很好的OCaml代码(50000行)。我想将其移植到C。所以有免费的OCaml到C转换器吗?
您得到的基本上是字节码的静态转储。结果将类似于:
您可以使用
有关更多信息,请参见the OCaml manual。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
7年前关闭。
Improve this question
所以我有很好的OCaml代码(50000行)。我想将其移植到C。所以有免费的OCaml到C转换器吗?
最佳答案
这可能不是您想要的,但是您可以让OCaml编译器将其运行时代码转储到C中:
ocamlc -output-obj -o foo.c foo.ml
您得到的基本上是字节码的静态转储。结果将类似于:
#include <caml/mlvalues.h>
CAMLextern void caml_startup_code(
code_t code, asize_t code_size,
char *data, asize_t data_size,
char *section_table, asize_t section_table_size,
char **argv);
static int caml_code[] = {
0x00000054, 0x000003df, 0x00000029, 0x0000002a, 0x00000001, 0x00000000,
/* ... */
}
static char caml_data[] = {
132, 149, 166, 190, 0, 0, 3, 153, 0, 0, 0, 118,
/* ... */
};
static char caml_sections[] = {
132, 149, 166, 190, 0, 0, 21, 203, 0, 0, 0, 117,
/* ... */
};
/* ... */
void caml_startup(char ** argv)
{
caml_startup_code(caml_code, sizeof(caml_code),
caml_data, sizeof(caml_data),
caml_sections, sizeof(caml_sections),
argv);
}
您可以使用
gcc -L/usr/lib/ocaml foo.c -lcamlrun -lm -lncurses
有关更多信息,请参见the OCaml manual。
关于c++ - 有免费的OCaml到C转换器吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2638664/