DSL – DOMAIN SPECIFIC LANGUAGES Juan Manuel Ramón Vigo Sergio Ruiz Pérez Fernando Vicente Vallejo
Índice Introducción. ¿Qué es un Lenguaje de Dominio Específico (DSL)? Modelos de uso. Casos en los que encontramos los DSLs Contexto. Aplicación de los DSLs y diferencias con otros tipos de lenguajes Pasos en la creación de un DSL. Elaboración de un DSL Ejemplos de uso. Eclipse Modeling Framework, Grep, VHDL Ventajas y desventajas. Sobre los DSLs
Introducción. ¿Qué es un Lenguaje de Dominio Específico (DSL)? Lenguajes de dominio específico: DSLs (Domain Specific Lenguajes de dominio específico: DSLs (Domain Specific Lnguages) Languages) Tarea específica Más alto nivel, más cercanos
Modelos de uso. Casos en los que encontramos los DSLs. DSL Externo DSL Interno (DSL encajado) DSL independientes (Makefile, GraphViz) DSL en tiempo de ejecución DSL “embebidos”
Contexto. Aplicación de los DSLs y diferencias con otros tipos de lenguajes. Usuarios + diseñadores dentro del mismo dominio DSD (Domain Specific Development): resuelven problemas recurrentes. Parte fija (Framework, API) +Parte variante (DSL)
6 Solución Parte fija Parte variante Contexto. Aplicación de los DSLs y diferencias con otros tipos de lenguajes. “Interfaces fluidas”
Contexto. Aplicación de los DSLs y diferencias con otros tipos de lenguajes. Lenguaje mucho más expresivo
Pasos en la creación de un DSL. Elaboración de un DSL (caso práctico). 1. Elaboración modelo dominio: clases + relaciones 2. Generación de código relationships domain classes
Pasos en la creación de un DSL. Elaboración de un DSL (caso práctico). Creación de un DSL con Visual Studio DSL Tools Uso de un DSL con VHDL
Pasos en la creación de un DSL. Elaboración de un DSL (caso práctico). Definición de DSL: Modelo de dominio Els. de diagrama Personalización de código Definición de DSL: Modelo de dominio Els. de diagrama Personalización de código Aplicación de sw Autor del DSL Usuario DSL/ Autor de aplicación Usuario final
Ventajas y desventajas. Sobre los DSLs. VENTAJAS Encapsular el conocimiento Generación de código más sencilla Concisos Desarrollo rápido Mayor productividad
Ventajas y desventajas. Sobre los DSLs. DESVENTAJAS Alto coste diseño, implementación y mantenimiento Difícil ajustar el dominio Código menos eficiente Más difícil de depurar
BIBLIOGRAFÍA behind-the-scenes-of-the-planning-dsl.aspx behind-the-scenes-of-the-planning-dsl.aspx s-it-a-bird-is-it-a-plane-it-s-a-dsl.aspx s-it-a-bird-is-it-a-plane-it-s-a-dsl.aspx Trabajo del Dr. J. Guadalupe Ramos Díaz para el SIINCO 2007