2010-04-14 4 views
1

У меня есть библиотека OCaml с большим количеством классов Мне нужен переводчик, чтобы сделать его из OCaml lib a C lib, чтобы иметь возможность использовать его методы. Как это сделать? Как переносить OCaml lib в lib? Может быть, из C-кода?Как переносить OCaml lib в lib, доступный из C-кода?

ответ

2

Как правило, перенос с одного языка на другой является очень ручным процессом. Вы читаете исходный источник и конвертируете его, в основном вручную, на новый язык. Там могут быть инструменты, которые помогут вам на этом пути, но вам все равно придется много хлопать в ладоши.

При этом можно назвать OCaml-функции программой C (и наоборот). Это все равно потребует написания кучи кода, но может оказаться проще (вам нужно только понять библиотеку, а не то, как работает библиотека).

Here is a blog post on how to do this. В дополнение к этому сообщению в блоге вы можете ознакомиться с официальными документами, которые гораздо больше касаются вызова кода C из OCaml (напротив того, что вы хотите сделать). That can be found here.

Существует также chapter in the O'Reilly book on this.

+0

Есть ли способ получить от ocamlopt не объект-файл (camlcode.o), который может быть связан с C-кодом, но с реальным C-кодом (исходные файлы C)? – Rella

+0

Вы спрашиваете, будет ли ocamlopt компилировать OCaml в c-код, например GHC, для Haskell? Насколько я знаю, вы не можете этого сделать, но я не уверен. –

+0

OCamlopt производит код сборки, а не код C. –