Así que tengo un buen código OCaml (50000 líneas). Quiero portarlo a C. Entonces, ¿hay algún traductor de OCaml a C gratis?¿Hay algún traductor OCaml to C gratis?
Respuesta
Esto probablemente no es lo que quiere, pero se puede obtener el compilador OCaml para volcar su código en tiempo de ejecución en C:
ocamlc -output-obj -o foo.c foo.ml
Lo que se obtiene es básicamente un vertedero estática del código de bytes. El resultado será algo como:
#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);
}
Se puede compilar con
gcc -L/usr/lib/ocaml foo.c -lcamlrun -lm -lncurses
Para obtener más información, consulte the OCaml manual.
y puede compilar este código utilizando el compilador C (gcc por ejemplo)? – Rella
Claro, ¿por qué no? Información agregada arriba. –
Grate, pero ¿cómo ahora, por ejemplo, llamar funciones desde mi biblioteca OCaml desde C?(Conozco la forma de llamar a la biblioteca de OCaml desde C, pero para poder portarlo necesito poder anidar OCaml lib en C pero poder invocar sus funciones desde C) – Rella
El proyecto OCamlJS sería un buen punto de partida. Compila OCaml a JavaScript; debería ser posible modificarlo para compilar OCaml a ActionScript. Compilar en C probablemente sería más trabajo, sin recolección de basura de ningún tipo, pero no imposible, especialmente si Adobe Alchemy proporciona API para satisfacer algunas de esas necesidades.
Si tuviera algún código OCaml quería ejecutar el lado del cliente "en el navegador" (que parece ser su intención basada en comentarios con la pregunta), tengo que decir que mi primer pensamiento sería hacer uno de
- usar algo como OcamlJava a compilar OCaml a código de bytes de Java y desplegar que el uso de iniciar Java web o similar.
- Puerto a F # (versión de Microsoft de OCaml) que se ejecuta en .NET y usa lo que MS proporcione a web-deploy eso.
Y tal vez si estaba realmente loco:
- Puerto del intérprete OCaml (que creen se implementa en 'C') a flash usando Alquimia y hacer que se ejecute el código de bytes OCaml de mi código original (no protegido).
Un OCaml-to-C de dos etapas, C-to-Flash realmente no atrae mucho.
No es un archivo ejecutable de código de bytes OCaml a C compilador de código fuente: https://github.com/ocaml-bytes/ocamlcc
Así, compilar primero el código ejecutable a un código de bytes a continuación, utilizar ocamlcc.
- 1. ¿Hay algún Treebank gratis?
- 2. ¿Hay algún texto para voz gratis para los navegadores?
- 3. ¿Hay algún buen control de cuadrícula Delphi gratis/barato?
- 4. ¿Hay algún perfilador decente de C#?
- 5. ¿Hay algún daño al llamar "gratis" para el mismo puntero dos veces en un programa C?
- 6. ¿Hay algún libtorrent para C#?
- 7. ¿Por qué prefiere currying to tuple arguments en OCaml?
- 8. ¿Hay un JSF Webhost gratis por ahí?
- 9. ¿Hay algún depurador C#/.NET independiente?
- 10. ¿Hay algún "patrón de diseño" en C?
- 11. OCaml para JVM. ¿Hay alguna?
- 12. ¿Hay algún libro de ocsigen disponible?
- 13. enviar SMS gratis desde C# + ASP.NET
- 14. ¿Hay algún conversor de archivos DBF gratuito?
- 15. Analizando C a Ocaml
- 16. ¿Por qué C++ es compatible con C? ¿Por qué no hay algún lenguaje C++ "puro"?
- 17. Apagar Traductor caché
- 18. C: ¿Llama gratis en una variable automática?
- 19. ¿Hay algún embellecedor CoffeeScript?
- 20. ¿Hay algún evento onDocumentChange?
- 21. Incrustar OCaml en C: error de vinculación
- 22. Crear fuente a traductor de origen
- 23. ¿Hay un intérprete toploop mejorado para OCaml?
- 24. Escribiendo el traductor de código de Python a C?
- 25. Cómo utilizar Google Traductor aplicación
- 26. ¿Diseña Windows WPF gratis?
- 27. ¿Hay algún IDE de Windows Perl libre con depuración?
- 28. C# code to class diagram
- 29. Ocaml - Archivos y análisis
- 30. android application sound gratis
¿Por qué querrías hacer eso? Estoy seguro de que hay mejores formas de hacer lo que sea que estés haciendo. – tiftik
Oh ... No, no hay otras formas ... (a mano es una, pero vamos a esbozarlo) Necesito el código C para compilarlo usando alguna herramienta llamada Adobe Alchemy para Adobe Flash Player ... Así que obtendré 10- 200x de pérdida de velocidad, pero el acero será más rápido que el código compilado a partir de ActionScript puro ... Idea principal: hacer que una aplicación se ejecute dentro de la página web, incluso si es lenta ... – Rella