Quiero generar código para otro idioma en Haskell, pero estoy desconcertado sobre cómo para abordar este problema. Estoy buscando una representación abstracta y elegante del lenguaje en Haskell, que también es útil para la generación de código. El idioma en cuestión es InstallScript (link a la guía de referencia del idioma). ¿Podría alguien dar pistas (tal vez con ejemplos) sobre cómo capturar los constructos del lenguaje empleados en InstallScript en tipos Haskell, o señalar proyectos similares para inspirarse?Generando código para otro idioma en Haskell
19
A
Respuesta
17
Este es un problema classic para resolver en Haskell.
- definir un árbol de sintaxis abstracta para su idioma
- definir una impresora bastante (para generar código)
de puntos de bonificación:
- definir un analizador
- Escribir una buena biblioteca de combinador Haskell para permitirle insertar el objetivo en Haskell
- Escriba un optimizador para su sintaxis abstracta
Hay many, many examples en Hackage (p. Ej. this one).
Cuestiones relacionadas
- 1. Recortes de código de Visual Studio 2008 para otro idioma
- 2. Generando código LLVM para 'lambda', 'define'
- 3. ¿Por qué convertir código en un idioma a otro?
- 4. Haskell idioma para el mapa 'selectiva'
- 5. Generando código F #
- 6. Prevenir otro idioma excepto inglés en EditText
- 7. Generando código LLVM desde Java
- 8. Generando un código QR en rieles
- 9. Generando comentarios JavaDoc para código existente en Eclipse
- 10. Generación de código para el compilador en Haskell
- 11. en el evento de pulsación get charecter en otro idioma
- 12. ¿Puedo reescribir un fragmento de código GPL en otro idioma y liberarlo en BSD?
- 13. ¿Se ejecutará Ruby u otro idioma más rápido en Parrot?
- 14. Generar diagramas para el código de Haskell
- 15. Convertir caracteres especiales (otro idioma) a inglés en PHP
- 16. Generando un valor dependiente de otro valor con AutoPoco
- 17. Optimizar el código Haskell
- 18. Cómo traducir de un idioma a otro en Android
- 19. ¿Haskell FlexibleInstances es una extensión estable del idioma?
- 20. ¿Editores de código de tabulación apropiada del idioma para Linux?
- 21. Análisis del código estático para un nuevo idioma. ¿Donde empezar?
- 22. Generando IL para métodos anónimos
- 23. Nombramiento variable y miembros del equipo que hablan otro idioma
- 24. Generando código en tiempo de compilación utilizando scripts
- 25. Código de descompilación (independiente del idioma)
- 26. Generando iconos para iPhone UITabBar
- 27. Generando URI en Jena para RDF
- 28. Escribir un intérprete Haskell en Haskell
- 29. ¿Cómo escribir código paralelo con vectores Haskell?
- 30. ¿Cuál es un ejemplo en el que conocer C me hará escribir mejor código en cualquier otro idioma?
Solo tiene que definir e implementar tipos abstractos para representar el árbol de sintaxis abstracta de su lenguaje de objetos (InstallScript) y tener las impresoras bonitas apropiadas, etc. etc. –
@BasileStarynkevitch: ¿podría indicar proyectos que hacen esto? Estoy buscando ejemplos y trucos inteligentes ... – akosch
Es posible que desee echar un vistazo al [paquete nsis] (http://hackage.haskell.org/package/nsis-0.1.2). – bzn