Loading AI tools
tipo de lenguaje informático De Wikipedia, la enciclopedia libre
En desarrollo de software e ingeniería de dominio, un lenguaje específico de dominio, o "lenguaje específico del dominio", (en inglés domain-specific language, DSL) es un lenguaje de programación o especificación dedicado a resolver un problema en particular, representar un problema específico y proveer una técnica para solucionar una situación particular. El concepto no es nuevo pero se ha vuelto más popular debido al aumento del uso de modelos específicos del dominio.[1]
Ejemplos de lenguajes específicos del dominio incluyen, Logo para niños, Verilog y VHSIC, R y S para estadísticas, Mata para programación matricial, Mathematica y Maxima para matemáticas, fórmulas de hojas de cálculo y macros, SQL para consultas a bases de datos relacionales, Yacc para crear parseadores, expresiones regulares para crear análisis léxico, Generic Eclipse Modeling System para crear lenguajes con el objetivo de diagramar, Csound un lenguaje para síntesis digital, y los lenguajes de entrada de GraphViz y GrGen, paquetes de software usados para graficar y reescribir gráficas.
Lo opuesto es:
Crear un lenguaje específico del dominio (con software que lo soporte) vale la pena cuando permite que un tipo particular de problemas o soluciones puedan ser expresadas más claramente que con otros lenguajes existentes, y el tipo de problema en cuestión reaparece lo suficiente. La programación orientada a lenguajes considera la creación de lenguajes específicos para expresar problemas una parte estándar para el proceso de solucionar el problema.
Los lenguajes específicos de dominio se componen generalmente de una sintaxis abstracta y de una sintaxis concreta. La sintaxis abstracta se define por medio de un metamodelo que especifica las reglas del lenguaje, los elementos que lo componen, y las relaciones que existen entre ellos. Por su parte, la sintaxis concreta asocia a cada elemento del metamodelo una representación, ya sea textual o gráfica.[2]
En los DSL, la semántica del lenguaje está muy cercana al dominio del problema para el cual se diseña. Tienen un alto nivel de abstracción al usuario, por tanto, están dirigidos a expertos en el dominio.
Metamodelado es el análisis, diseño y construcción de los metamodelos necesarios para cubrir un determinado tipo de problemas, así como las reglas y restricciones aplicables.
Metamodelo: conjunto de conceptos del dominio a modelar (metaclases) y las relaciones entre ellos (metasociaciones).
Tendremos que elegir, según el problema a resolver, cuál es el formato de representación más adecuado para nuestro DSL. ¿Cuál es el tipo de problema que queremos modelar? ¿Quiénes serán los usuarios del lenguaje?
Dos tipos de DSL:
Existen varios tipos de transformaciones:
El Eclipse Modeling Project centra la evolución y promoción del desarrollo de tecnologías basadas en modelos dentro de la comunidad Eclipse, proveyendo un conjunto unificado de frameworks para el modelaje, herramientas e implementación de estándares.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.