Programación orientada al lenguaje


La programación orientada al lenguaje ( LOP ) [1] es un paradigma de desarrollo de software en el que el "lenguaje" es un bloque de construcción de software con el mismo estado 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 para el problema y resuelve el problema en esos lenguajes. La programación orientada al lenguaje se describió por primera vez en detalle en el artículo de 1994 de Martin Ward Programación orientada al lenguaje , [1] publicado en Software - Concepts and Tools , Vol.15, No.4, pp 147–161, 1994.

El concepto de programación orientada al lenguaje adopta el enfoque para 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 los requisitos y la 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]

El Racket (lenguaje de programación) está diseñado para admitir la programación orientada al lenguaje. [2] Otras herramientas del banco de trabajo de lenguaje [4] como JetBrains MPS , Kermeta o Xtext proporcionan las herramientas para diseñar e implementar DSL y programación orientada al lenguaje [ cita requerida ]