Estoy buscando una manera de tener que escribir y mantener un cierto algoritmo (un submódulo de representación gráfica de mi código, en realidad) solo una vez. Necesito el algoritmo en C++, PHP y Javascript. Teóricamente podría escribirlo en C++ y envolverlo en una extensión PHP; pero eso tiene muchos problemas en sí mismo y no resuelve el enlace de Javascript.Meta programación en varios idiomas de salida
Lo que estoy buscando, creo, es una herramienta que convierte de un idioma (no importa cuál) a los tres (o dos, si el idioma de origen es uno de los tres) idiomas de salida I estoy apuntando Encontré MetaL (http://www.meta-language.net/) que parece hacer lo que quiero, pero también se ve como muerto (no hay actualizaciones desde 2007) y solo se dirige a uno de los tres idiomas que necesito. Necesita ser bastante flexible y permitirme actualizar los resultados, por ejemplo, uso Cairo en mi representación en C++ y PHP, y HTML Canvas en el lado de Javascript. Entonces necesito personalizar la API para ciertos efectos.
Como alternativa, me conformaría con un analizador y un analizador de PHP que me daría un AST con suficiente información para escribir generadores para C++ y Javascript como un back-end alternativo.
¿Alguna idea? Gracias.
Su pregunta me recordó la cita anterior: _Algunas personas, cuando se enfrentan con un problema, piensan "I Sé, usaré expresiones regulares ". Ahora tienen dos problemas. Entiendo su voluntad de centralizar el mantenimiento, pero me parece que está tomando un problema algo molesto pero razonable y lo convierte en un problema MUY complicado. (Estoy pensando en la compilación automática, los problemas con el motor de traducción y el infierno de depuración que está a punto de ingresar) Piense en el pobre que tiene que mantener esta solución después de que se haya mudado .. – NightDweller
If está hablando de como mucho miles de líneas de código, sería mejor que diseñara la API cuidadosamente y simplemente las recodifique. La generación automática de código para todas las cosas raras que uno encuentra en un lenguaje (por ejemplo, para C++: clases, herencias múltiples, espacios de nombres, declaración/definición separada, macros, plantillas, sobrecargas, ...) es una gran tarea y no es vale la pena el esfuerzo por unos pocos miles de líneas. Si desea generar 100K SLOC, bien valdría la pena el esfuerzo, o si compuso fragmentos de código de manera arbitraria. Pero 3 copias de un algoritmo fijo? No creas que vale la pena el problema. –
Puedo permitirme restringirme a un subconjunto mucho más pequeño de un idioma para escribir esto. Obviamente no necesito traducir todos los matices de C++ a varios idiomas. La representación es 90% 'calcular la ubicación del píxel, rectángulo o círculo, calcular el color de la misma, llamar a la función API de dibujo'. No tiene que ser de propósito general. De todos modos, parece que HaXe hará lo que necesito. – Roel