Articulo de referencia

banco de trabajo de lenguaje

Un entorno de desarrollo de lenguajes [ 1 ] [ 2 ] es una herramienta o conjunto de herramientas que permite el desarrollo de software en el paradigma de programación orientada a...

Un entorno de desarrollo de lenguajes [ 1 ] [ 2 ] es una herramienta o conjunto de herramientas que permite el desarrollo de software en el paradigma de programación orientada a lenguajes [ 2 ] . Un entorno de desarrollo de lenguajes generalmente incluye herramientas para apoyar la definición, reutilización y composición de lenguajes específicos de dominio junto con su entorno de desarrollo integrado . Los entornos de desarrollo de lenguajes fueron introducidos y popularizados por Martin Fowler en 2005.

Los entornos de trabajo de lenguajes suelen admitir: [ 1 ]

Ejemplos

  • Racket es un entorno de desarrollo de lenguajes multiplataforma que incluye compilador, compilador JIT, IDE y herramientas de línea de comandos, diseñado para facilitar la creación tanto de lenguajes específicos de dominio como de lenguajes completamente nuevos, con funcionalidades para añadir nueva notación, restringir construcciones y crear herramientas IDE. [ 3 ] [ 4 ] [ 5 ]
  • JetBrains MPS es una herramienta para el diseño de lenguajes específicos de dominio. Utiliza edición proyectiva, lo que permite superar las limitaciones de los analizadores sintácticos y crear editores de DSL, como los que incluyen tablas y diagramas. Implementa programación orientada al lenguaje. MPS combina un entorno para la definición del lenguaje, un banco de trabajo para el lenguaje y un Entorno de Desarrollo Integrado (IDE) para dichos lenguajes. [ 6 ]
  • Kermeta es un entorno de desarrollo de lenguajes académicos de código abierto. El entorno de desarrollo de Kermeta utiliza tres metalenguajes diferentes: uno para la sintaxis abstracta (alineado con Emof ); uno para la semántica estática (alineado con OCL ) y uno para la semántica de comportamiento (denominado Lenguaje Kermeta). [ 7 ]
  • Melange es un entorno de trabajo de lenguaje que proporciona un enfoque modular para personalizar, ensamblar e integrar múltiples especificaciones e implementaciones de lenguajes específicos de dominio (DSL). [ 8 ]
  • Spoofax [ 9 ] es un entorno de desarrollo de lenguajes de código abierto para generar analizadores sintácticos, verificadores de tipos, compiladores, intérpretes y complementos IDE para Eclipse e IntelliJ [ 10 ] . Utiliza SDF y un analizador sintáctico GLR sin escáner para la sintaxis, y formalismos derivados de Stratego/XT para la semántica.
  • Xtext es un marco de software de código abierto para el desarrollo de lenguajes de programación y lenguajes específicos de dominio (DSL). A diferencia de los generadores de analizadores sintácticos estándar, Xtext genera no solo un analizador, sino también un modelo de clases para el árbol de sintaxis abstracta. Además, proporciona un IDE basado en Eclipse, completo y personalizable. [ 11 ]
  • Meeduse [ 12 ] es un marco basado en EMF que permite construir, probar y animar lenguajes específicos de dominio ejecutables (xDSL) utilizando el método B. La herramienta incorpora ProB, un animador y un verificador de modelos del método B. [ 13 ]

Véase también

Referencias

  1. 1 2 Fowler, Martin. "LanguageWorkbench" . Recuperado el 14 de abril de 2015 .
  2. 1 2 Fowler, Martin (12 de junio de 2005). "Entornos de trabajo de lenguajes: ¿La aplicación definitiva para lenguajes específicos de dominio?" . Recuperado el 14 de abril de 2015 .
  3. Feltey, Daniel; Florence, Spencer P.; Knutson, Tim; St-Amour, Vincent; Culpepper, Ryan; Flatt, Matthew; Findler, Robert Bruce; Felleisen, Matthias (2016). "Languages ​​the Racket Way" (PDF) . Desafío Language Workbench 2016 (65) . Recuperado el 9 de junio de 2019 .
  4. Tobin-Hochstadt, S.; St-Amour, V.; Culpepper, R.; Flatt, M.; Felleisen, M. (2011). "Lenguajes como bibliotecas" (PDF) . Diseño e implementación de lenguajes de programación .
  5. Flatt, Matthew (2012). "Creating Languages ​​in Racket" . Communications of the ACM . Recuperado el 8 de abril de 2012 .
  6. "JetBrains MPS: Creador de lenguajes específicos de dominio" .
  7. Jézéquel, Jean-Marc; Combemale, Benoit; Barais, Olivier; Monperrus, Martin; Fouquet, François (2015). "Mashup de metalenguajes y su implementación en el entorno de trabajo de lenguajes Kermeta". Software & Systems Modeling . 14 (2): 905– 920. arXiv : 1306.0760 . doi : 10.1007/s10270-013-0354-4 .
  8. "Melange" .
  9. "El entorno de trabajo del lenguaje Spoofax" .
  10. Kats, Lennart CL; Visser, Eelco (2010). "El entorno de desarrollo de lenguajes Spoofax: reglas para la especificación declarativa de lenguajes e IDE." . Actas de la 25.ª Conferencia Anual ACM SIGPLAN sobre Programación Orientada a Objetos, Sistemas, Lenguajes y Aplicaciones, OOPSLA 2010 . doi : 10.1145/1869459.1869497 .
  11. "Xtext" .
  12. Idani, Akram; Ledru, Yves; Vega, German (diciembre de 2020). "Alianza de la ingeniería dirigida por modelos con un enfoque formal basado en pruebas" . Innovations in Systems and Software Engineering (ISSE), NASA Journal . 6 (3): 289– 307. doi : 10.1007/s11334-020-00366-3 .
  13. "Meeduse" .
  • Martin Fowler, Language Workbench
  • Desafío de Language Workbench

Obtenido de " https://en.wikipedia.org/w/index.php?title=Language_workbench&oldid=1350079282 "