Articulo de referencia

Programación orientada al lenguaje

La programación orientada al lenguaje ( LOP ) [ 1 ] es un paradigma de desarrollo de software donde el "lenguaje" es un bloque de construcción de software con el mismo estatus q...

La programación orientada al lenguaje ( LOP ) [ 1 ] es un paradigma de desarrollo de software donde el "lenguaje" es un bloque de construcción de software con el mismo estatus que los objetos, módulos y componentes, [ 2 ] y en lugar de resolver problemas en lenguajes de programación de propósito general , el programador crea primero uno o más lenguajes específicos de dominio (DSL) para el problema, y ​​lo resuelve en esos lenguajes. La programación orientada al lenguaje se describió por primera vez en detalle en el artículo de Martin Ward de 1994, Language Oriented Programming . [ 1 ]

Concepto

El concepto de programación orientada al lenguaje adopta el enfoque de capturar los requisitos en los términos del usuario y luego intentar crear un lenguaje de implementación lo más isomorfo posible a las descripciones del usuario, de modo que el mapeo entre requisitos e implementación sea lo más directo posible. Una medida de la cercanía de este isomorfismo es la "redundancia" del lenguaje, definida como el número de operaciones de edición necesarias para implementar un cambio independiente en los requisitos. No se asume a priori cuál es el mejor lenguaje para implementar el nuevo lenguaje. Más bien, el desarrollador puede elegir entre las opciones creadas por el análisis de los flujos de información: qué información se adquiere, cuál es su estructura, cuándo se adquiere, de quién y qué se hace con ella. [ 3 ]

Desarrollo

El lenguaje de programación Racket y RascalMPL fueron diseñados para soportar la programación orientada al lenguaje desde cero. [ 2 ] Otras herramientas de entorno de desarrollo de lenguajes [ 4 ] como JetBrains MPS , Kermeta o Xtext proporcionan las herramientas para diseñar e implementar DSL y programación orientada al lenguaje. [ 5 ]

Véase también

Referencias

  1. 1 2
  2. 1 2 Felleisen, Matías; Findler, Robert Bruce; Flatt, Mateo; Krishnamurthi, Shriram; Barzilay, Eli; McCarthy, Jay; Tobin-Hochstadt, Sam (marzo de 2018). "Un lenguaje de programación programable" . Comunicaciones de la ACM . 61 (3): 62– 71. doi : 10.1145/3127323 . S2CID 3887010 . Consultado el 15 de mayo de 2019 . 
  3. Dunlavey (1994). Building Better Applications: a Theory of Efficient Software Development . International Thomson Publishing . ISBN 0-442-01740-5.
  4. 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 .
  5. Erdweg, Sebastian (2013). "El estado del arte en los entornos de desarrollo de lenguajes" . Ingeniería de lenguajes de software . Notas de clase en informática. Vol. 8225. pp. 197–217 . doi : 10.1007/978-3-319-02654-1_11 . ISBN   978-3-319-02653-4. S2CID 5234848 . Consultado el 4 de julio de 2023 . 
  • Programación orientada al lenguaje: el próximo paradigma de programación. El artículo de Sergey Dmitriev que profundizó en el tema.
  • Estado del arte en entornos de desarrollo de lenguajes. Conclusiones del concurso Language Workbench Challenge. En: Actas de la 6.ª Conferencia Internacional sobre Ingeniería de Lenguajes de Software (SLE'13). 2013.
  • Programación orientada al lenguaje en MetaLisp Tesis de Gyuri Lajos 1992 Universidad de Leeds El sistema utilizó el mismo algoritmo de lenguaje de análisis de arriba hacia abajo que impulsó Tree-Meta