2010-11-18 12 views
19

Tengo un montón de algoritmos matemáticos/dsp en C. Funciones únicas, una función por archivo, sin vinculación sofisticada o directivas de inclusión o preprocesador, solo llamadas de biblioteca estándar y c99 (principalmente memset y memmoves a manejar la copia de matriz, etc.). Traducirlos no es un gran problema, pero lleva tiempo. Me preguntaba si había alguna herramienta de traducción C -> Javascript, para acelerar el trabajo.Traduciendo C a JavaScript

Por favor, tenga en cuenta que no necesito una traducción perfecta, voy a poner mi mano en el resultado final de todos modos. Lo que necesito es una herramienta simple que ayude con las cosas básicas y "aburridas".

¿Alguien ha oído hablar de tal cosa?

Editar: parece que emscripten hará el truco.

+4

La forma en que C permite el uso de punteros, tal herramienta seguramente fallaría en todos los ejemplos, excepto en los más artificiales. – cdhowie

+1

No estoy buscando un traductor perfecto que pueda entender la lógica del puntero, estoy buscando un caballo de batalla levemente estúpido que pueda hacer las partes aburridas automáticamente. – janesconference

+0

(¡gracias por la edición!) – janesconference

Respuesta

22

Actualización: Parece que los tiempos están cambiando :)

Ver este artículo: DOOM Ported to JavaScript and HTML5

Zakai compilado el código fuente de Doom de C a JavaScript usando Emscripten y Clang y optimizado con Closure Compiler.

Y aquí es el Project page. ¡Que te diviertas! :)

+4

ahah encontré el camino: traducir c a Java con esto: http://www.axiomsol.com/, luego traducir Java a Javascript con GWT (solo bromeando). – janesconference

+1

De todos modos: 1) Analizas C y, si realizas que es una división entera (mira los tipos de operandos), Math.floor el resultado en js 2) No te importa lo que es inútil, pase el parámetro de todos modos en el guión traducido. Es redundante, no incorrecto. Tenga en cuenta que no busco un traductor que optimice, voy a hacer las optimizaciones. 3) Parece más complejo, pero siempre puede ver el tipo de matriz y calcular cuántos elementos está copiando. 3b) Objetos en C? ¿Estás hablando de estructuras o estás pensando en técnicas OO en C? – janesconference

+0

Ver mi actualización, parece que algunas personas lo hicieron funcionar para DOOM :) – galambalazs

2

Los reescribiré. Son dos idiomas muy diferentes, si los "traduce" obtendrá un código Javascript pésimo.

O bien, puede envolverlos, ponerlos en una biblioteca y llamarlos desde JS.

Cuestiones relacionadas