Download T2 - ocw@uca - Universidad de Cádiz

Document related concepts
no text concepts found
Transcript
Procesadores de Lenguajes 2
Lenguajes Específicos de
Dominio
Curso 2013-2014
Iván Ruiz Rube
Departamento de Ingeniería Informática
Escuela Superior de Ingeniería
Universidad de Cádiz
17/10/13
PL2 - Lenguajes Específicos de Dominio
1
Contenidos
—  Introducción
—  Clasificación
—  Herramientas
17/10/13
PL2 - Lenguajes Específicos de Dominio
2
LENGUAJES ESPECÍFICOS DE DOMINIO
INTRODUCCIÓN
17/10/13
PL2 - Lenguajes Específicos de Dominio
3
Domain Specific Languages (DSL)
—  Lenguaje
de programación orientado a un
problema específico.
—  Son opuestos a los lenguajes de propósito
general.
—  Diseñado para ser utilizado para un
conjunto específico de tareas.
—  Herramienta específica para un trabajo
concreto.
17/10/13
PL2 - Lenguajes Específicos de Dominio
4
Herramienta de Propósito General
Peter Friese, itemis
17/10/13
PL2 - Lenguajes Específicos de Dominio
5
Herramienta de Propósito
Específico
Peter Friese, itemis
17/10/13
PL2 - Lenguajes Específicos de Dominio
6
Domain Specific Languages (DSL)
—  La
semántica del lenguaje está muy
cercana al dominio de problema para el
cual se diseña.
—  Los DSL ofrecen un alto nivel de
abstracción al usuario. Por tanto, están
dirigidos a “expertos en el dominio”.
—  Ofrecen un vocabulario controlado para
su ámbito.
17/10/13
PL2 - Lenguajes Específicos de Dominio
7
Ejemplos DSL
Apache Maven
Automatización de la gestión y construcción de
proyectos Java
17/10/13
PL2 - Lenguajes Específicos de Dominio
8
Ejemplos DSL (II)
JBOSS DROOLS
Reglas de negocio definidas en alto nivel, dentro de
un motor de procesos
17/10/13
PL2 - Lenguajes Específicos de Dominio
9
Ejemplos DSL (III)
TREW@
Modelado de procedimientos administrativos telemáticos
en el marco de la administración pública en Andalucía
17/10/13
PL2 - Lenguajes Específicos de Dominio
10
Ejemplos DSL (IV)
Structured Query Language (SQL)
Manipulación de bases de datos relacionales
17/10/13
PL2 - Lenguajes Específicos de Dominio
11
Ejemplos DSL (V)
—  HTML
◦  Utilizado para escribir páginas web
—  CSS
◦  Usado para describir hojas de estilos en la
web
—  Flex, Bison
o ANTLR:
◦  Para generar compiladores
—  AWK,
plantillas Wikipedia, shell scripts,
etc.
17/10/13
PL2 - Lenguajes Específicos de Dominio
12
LENGUAJES ESPECÍFICOS DE DOMINIO
CLASIFICACIÓN
17/10/13
PL2 - Lenguajes Específicos de Dominio
13
Clasificación de DSL
—  Representación
◦  Visuales
◦  Textuales
—  Implementación
◦  Internos
◦  Externos
17/10/13
PL2 - Lenguajes Específicos de Dominio
14
DSL textuales internos
—  Utilizan
la infraestructura de un lenguaje
de programación existente (host).
—  En la mayoría de las ocasiones, se
implementan como librerías en el lenguaje
de programación.
—  Ejemplo: Rails
◦  Construido sobre la base de Ruby
◦  Orientado a construir aplicaciones web
17/10/13
PL2 - Lenguajes Específicos de Dominio
15
DSL textuales externos
—  No
se hospedan bajo ningún lenguaje.
—  Desarrollados desde cero.
—  Requiere la construcción de las etapas
clásicas de un compilador.
—  Sin embargo, no necesitan todas las
complejidades que tienen los lenguajes de
propósito general.
17/10/13
PL2 - Lenguajes Específicos de Dominio
16
DSL visuales internos
—  Muchos
problemas de Ingeniería del
Software se analizan e interpretan mejor
utilizando modelos gráficos.
—  UML proporciona un mecanismo de
extensión (profiles) para personalizar
modelos para dominios y plataformas
particulares.
—  Los perfiles no modifican la semántica de
UML, sino que la amplían.
—  Se implementan mediante estereotipos,
definiciones de etiquetas y restricciones.
17/10/13
PL2 - Lenguajes Específicos de Dominio
17
DSL visuales externos
—  Los
lenguajes visuales son más fáciles de
analizar que los textuales.
—  Sin embargo, el lenguaje UML y los perfiles
basados en él, no son del todo sencillos para
un usuario no técnico.
—  Por ello, se desarrollan lenguajes gráficos con
las semánticas apropiadas para la clase de
problemas a modelar.
—  El desarrollo de este tipo de lenguajes suele
ser más complejo que uno textual.
17/10/13
PL2 - Lenguajes Específicos de Dominio
18
LENGUAJES ESPECÍFICOS DE DOMINIO
HERRAMIENTAS
17/10/13
PL2 - Lenguajes Específicos de Dominio
19
Herramientas de desarrollo DSL
—  Para
dar soporte a las fases del desarrollo de
un DSL, necesitamos herramientas que nos
asistan en dicho proceso.
—  Enfoque tradicional
◦  FLEX, BISON
◦  ANTLR,
◦  etc.
—  Enfoque
model-driven
◦  Eclipse (Modeling Project)
◦  MS Visual Studio (DSL Tools)
◦  MetaEdit+
◦  etc.
17/10/13
PL2 - Lenguajes Específicos de Dominio
20
Eclipse: Edición textual
Eclipse es un entorno de programación para lenguaje Java,
aunque dispone de extensiones para trabajar con otros
lenguajes como PHP, XML, etc. Así mismo, permite
trabajar con DSLs creados por el usuario
17/10/13
PL2 - Lenguajes Específicos de Dominio
21
Eclipse: Edición visual
Eclipse permite trabajar con modelos visuales
basados en UML o en DSLs creados por el usuario
17/10/13
PL2 - Lenguajes Específicos de Dominio
22
LENGUAJES ESPECÍFICOS DE DOMINIO
RESUMEN
17/10/13
PL2 - Lenguajes Específicos de Dominio
23
Resumen
—  Lenguaje
de programación orientado a un
problema específico.
—  Pueden ser visuales o textuales.
—  Se pueden implementar interna o
externamente.
—  En esta asignatura, construiremos DSLs
siguiendo un enfoque model-driven
utilizando las facilidades que ofrece el
proyecto Eclipse.
17/10/13
PL2 - Lenguajes Específicos de Dominio
24
Procesadores de Lenguajes 2
Lenguajes Específicos de
Dominio
Curso 2013-2014
Iván Ruiz Rube
[email protected]
17/10/13
PL2 - Lenguajes Específicos de Dominio
25