25
Iván Ruiz Rube Departamento de Ingeniería Informática Escuela Superior de Ingeniería Universidad de Cádiz 17/10/13 1 Lenguajes Específicos de Dominio Procesadores de Lenguajes 2 PL2 - Lenguajes Específicos de Dominio Curso 2013-2014

Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

  • Upload
    ledan

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

Iván Ruiz Rube Departamento de Ingeniería Informática Escuela Superior de Ingeniería Universidad de Cádiz

17/10/13 1

Lenguajes Específicos de Dominio

Procesadores de Lenguajes 2

PL2 - Lenguajes Específicos de Dominio

Curso 2013-2014

Page 2: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

Contenidos

�  Introducción � Clasificación � Herramientas

17/10/13 2 PL2 - Lenguajes Específicos de Dominio

Page 3: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

INTRODUCCIÓN LENGUAJES ESPECÍFICOS DE DOMINIO

17/10/13 3 PL2 - Lenguajes Específicos de Dominio

Page 4: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

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 4 PL2 - Lenguajes Específicos de Dominio

Page 5: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

Herramienta de Propósito General

17/10/13 PL2 - Lenguajes Específicos de Dominio 5 Peter Friese, itemis

Page 6: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

Herramienta de Propósito Específico

17/10/13 PL2 - Lenguajes Específicos de Dominio 6 Peter Friese, itemis

Page 7: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

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 7 PL2 - Lenguajes Específicos de Dominio

Page 8: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

Ejemplos DSL

17/10/13 8

Apache Maven Automatización de la gestión y construcción de

proyectos Java

PL2 - Lenguajes Específicos de Dominio

Page 9: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

Ejemplos DSL (II)

17/10/13 9

JBOSS DROOLS Reglas de negocio definidas en alto nivel, dentro de

un motor de procesos

PL2 - Lenguajes Específicos de Dominio

Page 10: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

Ejemplos DSL (III)

17/10/13 10

TREW@ Modelado de procedimientos administrativos telemáticos

en el marco de la administración pública en Andalucía

PL2 - Lenguajes Específicos de Dominio

Page 11: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

Ejemplos DSL (IV)

17/10/13 11

Structured Query Language (SQL) Manipulación de bases de datos relacionales

PL2 - Lenguajes Específicos de Dominio

Page 12: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

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

Page 13: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

CLASIFICACIÓN LENGUAJES ESPECÍFICOS DE DOMINIO

17/10/13 13 PL2 - Lenguajes Específicos de Dominio

Page 14: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

Clasificación de DSL

� Representación ◦ Visuales ◦ Textuales

�  Implementación ◦  Internos ◦  Externos

17/10/13 PL2 - Lenguajes Específicos de Dominio 14

Page 15: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

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

Page 16: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

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

Page 17: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

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

Page 18: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

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

Page 19: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

HERRAMIENTAS LENGUAJES ESPECÍFICOS DE DOMINIO

17/10/13 19 PL2 - Lenguajes Específicos de Dominio

Page 20: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

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

Page 21: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

Eclipse: Edición textual

17/10/13 PL2 - Lenguajes Específicos de Dominio 21

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

Page 22: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

Eclipse: Edición visual

17/10/13 PL2 - Lenguajes Específicos de Dominio 22

Eclipse permite trabajar con modelos visuales basados en UML o en DSLs creados por el usuario

Page 23: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

RESUMEN LENGUAJES ESPECÍFICOS DE DOMINIO

17/10/13 23 PL2 - Lenguajes Específicos de Dominio

Page 24: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

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 24 PL2 - Lenguajes Específicos de Dominio

Page 25: Lenguajes Específicos de Dominio - OCW Universidad … · Flex, Bison o ANTLR: Para generar compiladores ! AWK, plantillas Wikipedia, shell scripts, etc. 17 ... clásicas de un compilador

17/10/13 25 PL2 - Lenguajes Específicos de Dominio

Lenguajes Específicos de Dominio

Procesadores de Lenguajes 2

Iván Ruiz Rube [email protected]

Curso 2013-2014