Grammarware engineering: un enfoque dirigido por modelos

79
Grammarware Engineering: un enfoque dirigido por modelos basado en separación de conceptos - Tesis Doctoral - Director: Abraham Duarte Muñoz Doctorando: Francisco Gortázar Bellas

description

El objetivo de la tesis es proporcionar un enfoque up-down, en lugar de un enfoque down-up en la construcción de herramientas de soporte para lenguajes de programación. La idea principal es definir el lenguaje partiendo de su sintaxis abstracta (un modelo orientado a objetos) y decorar posteriormente este modelo con la sintaxis concreta. A partir de ahí, mediante técnicas de MDE, se pueden generar diferentes tipos de herramientas como editores, compiladores o parsers.

Transcript of Grammarware engineering: un enfoque dirigido por modelos

Page 1: Grammarware engineering: un enfoque dirigido por modelos

Grammarware Engineering: un enfoque dirigido por modelos basado

en separación de conceptos

- Tesis Doctoral -Director: Abraham Duarte Muñoz

Doctorando: Francisco Gortázar Bellas

Page 2: Grammarware engineering: un enfoque dirigido por modelos

Grammarware Engineering: un enfoque dirigido por modelos basado

en separación de conceptos

- Tesis Doctoral -

Director

Abraham Duarte Muñoz

Doctorando

Francisco Gortázar Bellas

Departamento de Ciencias de la Computación

Escuela Superior de Ciencias Experimentales y Tecnología

Page 3: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 3

Grammarware Engineering

Introducción• Motivación

• Hipótesis

• Objetivos

Estado del Arte MetaCET Validación: generación de un parser Implementación Conclusiones, aportaciones y trabajo futuro

Page 4: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 4

Motivación

Lenguajes de computadora

• Diferentes propósitos

• Diferentes objetivos

• Comunicación

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 5: Grammarware engineering: un enfoque dirigido por modelos

Documento

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 6: Grammarware engineering: un enfoque dirigido por modelos

Documento

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 7: Grammarware engineering: un enfoque dirigido por modelos

Documento

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 8: Grammarware engineering: un enfoque dirigido por modelos

Documento

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 9: Grammarware engineering: un enfoque dirigido por modelos

Entorno de Desarrollo

Documento

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 10: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 10

Motivación

Desarrollo de lenguajes de computadora

• Definición del lenguaje y construcción de las herramientas (grammarware) necesarias para su utilización

• Grammarware: software que necesita conocimiento de la descripción estructural del lenguaje para llevar a cabo las tareas para las que fue diseñado

• Grammarware Engineering [Klint et al., 2005]

• “Desarrollo y mantenimiento de grammarware fomentando las buenas prácticas, las herramientas de soporte y los métodos rigurosos.”

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 11: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 11

Motivación

Creciente interés motivado por diferentes fuerzas

• Lenguajes específicos del dominio (DSLs – Domain Specific Languages)

• Apertura arquitectónica de los IDEs (Integrated Development Environments)

Comunidades interesadas

• Metodologías ágiles

• Ingeniería Dirigida por Modelos (MDE – Model Driven Engineering)

• Desarrolladores de IDEs

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 12: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 12

Motivación

El desarrollo de lenguajes es costoso

• El diseño requiere un esfuerzo considerable

• La implementación de herramientas requiere un esfuerzo aún mayor: considérense las herramientas mínimas necesarias para que un desarrollador se sienta “cómodo” utilizando el lenguaje

• Editores

• Refactorizadores

• Asistencia según se escribe

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 13: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 13

Motivación

Algunos ejemplos...

• La incorporación de un nuevo lenguaje en Eclipse se realiza en numerosas ocasiones copiando y pegando el código fuente del soporte para Java y adaptándolo al lenguaje objetivo [Ho et al., 2004]

• La adaptación del soporte para Java en Eclipse a las especificaciones de Java 5 llevó un año y medio de trabajo [Solmi, 2005]

La causa del problema es la falta de una metodología adecuada [Klint et al., 2005]

• El desarrollo de lenguajes es una tarea realizada principalmente ad-hoc para cada lenguaje

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 14: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 14

Motivación

La naturaleza de los lenguajes de computadora es muy diversa, pero comparten ciertas características• Presentan unos conceptos y una estructura (sintaxis abstracta del

lenguaje)

• Representación de dichos conceptos (sintaxis concreta del lenguaje)

• Dichos conceptos tienen unos significados (semántica del lenguaje)

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 15: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 15

Motivación

La propuesta, denominada MetaCET, se centra en:

• Sintaxis abstracta del lenguaje

• Sintaxis concreta del lenguaje

• Lenguajes textuales

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 16: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 16

Hipótesis

La hipótesis fundamental de esta tesis doctoral se puede enunciar del siguiente modo:

• Es posible alcanzar los objetivos de Grammarware Engineering a través de una separación de conceptos clara llevada a la práctica mediante la Ingeniería Dirigida por Modelos

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 17: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 17

Objetivos

A partir de las hipótesis se plantea como objetivo fundamental

• Desarrollar una metodología para Grammarware Engineering basada en el modelado de lenguajes a través de su sintaxis abstracta que permita la aplicación de la Ingeniería Dirigida por Modelos para obtener automáticamente diferentes herramientas de soporte para dichos lenguajes

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 18: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 18

Grammarware Engineering

Introducción Estado del Arte

• Grammarware Engineering

• Ingeniería Dirigida por Modelos

• Enfoques MDE para Grammarware Eng.

MetaCET Validación: generación de un parser Implementación Conclusiones, aportaciones y trabajo futuro

Page 19: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 19

Grammarware Engineering

Gramáticas independientes del contexto

• Una gramática independiente del contexto puede definirse mediante una 4-tupla

• Vt es el conjunto de símbolos terminales

• Vn es el conjunto de símbolos no terminales

• P es un conjunto finito de reglas de producción

• S es el símbolo inicial

),,,( SPVVG nt

nt VV

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 20: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 20

Grammarware Engineering

Gramáticas independientes del contexto

• Las reglas de producción P tienen la siguiente forma

• representa una cadena de terminales y no terminales

*,| wVNwN n tn VV

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 21: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 21

Grammarware Engineering

Analizadores sintácticos o parsers• Determinan si una cadena pertenece al lenguaje

• Dos familias de técnicas de análisis sintáctico• Ascendentes: parten de la cadena y van realizando

sustituciones hasta llegar al símbolo inicial

• Descendentes: parten del símbolo inicial y tratan de obtener la cadena mediante sustituciones

• Las sustituciones se realizan utilizando las producciones Estas técnicas son limitadas

• No soportan todos los tipos de GICs

• Cada generador de analizadores implementa exclusivamente una de estas técnicas

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 22: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 22

Grammarware Engineering

Principios de GE

• Gramáticas neutrales: independencia de técnicas de análisis y generadores de analizadores

• Transformaciones para diferentes casos de uso

• Separación de conceptos

• Evolución del grammarware

• Ingeniería inversa del grammarware

• Calidad del grammarware: establecimiento de métricas adecuadas para medir la calidad

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 23: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 23

Ingeniería Dirigida por Modelos

MDE pretende solucionar los problemas que tienen los lenguajes de tercera generación para afrontar la complejidad de las plataformas y expresar conceptos del dominio de manera efectiva [Douglas C. Schmidt, 2006]

• Utilización de lenguajes de modelado específico del dominio

• Motores de transformación de modelos y generación de código

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 24: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 24

Ingeniería Dirigida por Modelos

MDE considera los modelos como una entidad de primer orden en el proceso de desarrollo

Modelo ([Bézivin y Gerbé, 2001])

• Un modelo es una representación de un sistema que se construye con un objetivo concreto. En este sentido, el modelo debe ser capaz de proporcionar respuestas sin tener que construir el sistema real

Plataforma

• Requisitos específicos del contexto en el que el sistema tiene que ejecutarse

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 25: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 25

Ingeniería Dirigida por Modelos

Tres principios básicos [Jean-Marie Favre, 2004]

• Representación directa

• Cada aspecto del sistema debe ser modelado con su propio DSL

• Automatización

• Obtención de nuevos modelos a través de transformaciones

• Estándares (UML, XMI, etc.)

• Interoperabilidad

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 26: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 26

Ingeniería Dirigida por Modelos

Dos tipos de modelos

• Modelos independientes de la plataforma

• Modelos dependientes de la plataforma

Transformaciones

• Permiten obtener modelos dependientes de la plataforma a partir de modelos independientes

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 27: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 27

Ingeniería Dirigida por Modelos

Dos tipos de modelos

• Modelos independientes de la plataforma

• Modelos dependientes de la plataforma

Transformaciones

• Permiten obtener modelos dependientes de la plataforma a partir de modelos independientes

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 28: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 28

Enfoques MDE para GE

Características estudiadas

• Utilización de gramáticas neutrales

• Separación de conceptos

• Sintaxis abstracta respecto de la gramática

• Gramática respecto de técnicas de análisis

• Técnicas de análisis respecto de generadores

• Automatización: uso de transformaciones

• Utilización de estándares

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 29: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 29

Enfoques MDE para GE

Resumen de los diferentes enfoques

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 30: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 30

Grammarware Engineering

Introducción Estado del Arte MetaCET

• Sintaxis abstracta

• MetaCET

Validación: generación de un parser Implementación Conclusiones, aportaciones y trabajo futuro

Page 31: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 31

Sintaxis abstracta

MDE requiere un cambio en la visión del proceso de desarrollo

• Modelar el lenguaje

• Definir las transformaciones

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 32: Grammarware engineering: un enfoque dirigido por modelos

Documento

Parser

AST

Refactorizadores

Buscadores

Editores

Vista #1

Vista #2

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 33: Grammarware engineering: un enfoque dirigido por modelos

Documento

Parser

AST

Refactorizadores

Buscadores

Editores

Vista #1

Vista #2

GramáticaIndependientedel Contexto

Definición del AST

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 34: Grammarware engineering: un enfoque dirigido por modelos

Documento

Parser

AST

Refactorizadores

Buscadores

Editores

Vista #1

Vista #2

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 35: Grammarware engineering: un enfoque dirigido por modelos

Documento

Parser

AST

Refactorizadores

Buscadores

Editores

Vista #1

Vista #2

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 36: Grammarware engineering: un enfoque dirigido por modelos

Documento

Parser

AST

Refactorizadores

Buscadores

Editores

Vista #1

Vista #2

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 37: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 37

Sintaxis abstracta

Nuestra propuesta es basar la definición de lenguajes en este modelo

• Diseñado en UML

• La sintaxis concreta puede añadirse posteriormente al modelo

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 38: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 38

MetaCET

Propuesta metodológica concreta para Grammarware Engineering

• Diseño de lenguajes y desarrollo de herramientas de soporte para los mismos

Proporciona un marco general para el desarrollo de lenguajes

• Con mayor capacidad de abstracción que los enfoques dirigidos por gramáticas

• Con flexibilidad suficiente para permitir la personalización

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 39: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 39

MetaCET

Metodología general1. Modelar la sintaxis abstracta del lenguaje con UML

2. Modelar la sintaxis concreta anotando el modelo de sintaxis abstracta

3. Diseñar las transformaciones necesarias para cada herramienta de soporte

4. Diseñar el generador de código

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 40: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 40

MetaCET

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 41: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 41

MetaCET

Basado en el modelo de sintaxis abstracta Independiza la definición del lenguaje de gramáticas Sintaxis abstracta y sintaxis concreta pueden tener

un uso que no requiera de una gramática

• Outline, editores estructurales, etc. Si es necesario la gramática puede generarse

posteriormente de manera automática

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 42: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 42

Grammarware Engineering

Introducción Estado del Arte MetaCET Validación: generación de un parser

• Lenguaje de ejemplo

• Descripción del perfil Syntax

• Separación en niveles de abstracción

• Comparativa MetaCET-Enfoque Tradicional Implementación Conclusiones, aportaciones y trabajo futuro

Page 43: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 43

Validación de MetaCET

Lenguajes

• Statechart

• Dialecto de SQL

• Java Grammarware generado

• Editor

• Gramática

• Parser

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 44: Grammarware engineering: un enfoque dirigido por modelos

Documento

Parser

AST

Refactorizadores

Buscadores

Editores

Vista #1

Vista #2

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 45: Grammarware engineering: un enfoque dirigido por modelos

for (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 46: Grammarware engineering: un enfoque dirigido por modelos

for (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 47: Grammarware engineering: un enfoque dirigido por modelos

for (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 48: Grammarware engineering: un enfoque dirigido por modelos

for (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 49: Grammarware engineering: un enfoque dirigido por modelos

Parserfor (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 50: Grammarware engineering: un enfoque dirigido por modelos

Parserfor (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 51: Grammarware engineering: un enfoque dirigido por modelos

Parserfor (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 52: Grammarware engineering: un enfoque dirigido por modelos

Parser

AST

Modelo deSintaxisAbstracta

for (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 53: Grammarware engineering: un enfoque dirigido por modelos

Parser

AST

Modelo deSintaxisAbstracta

Sintaxis Concreta

for (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 54: Grammarware engineering: un enfoque dirigido por modelos

Parser

AST

Modelo deSintaxisAbstracta

for (Ticket t : tickets) { display(t);}

Ticket.java

Sintaxis Concreta

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 55: Grammarware engineering: un enfoque dirigido por modelos

Parser

AST

Modelo deSintaxisAbstracta

Sintaxis Concreta

for (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 56: Grammarware engineering: un enfoque dirigido por modelos

Parser

AST

Modelo deSintaxisAbstracta

Sintaxis Concreta

for (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 57: Grammarware engineering: un enfoque dirigido por modelos

Parser

AST

Modelo deSintaxisAbstracta

Sintaxis Concreta

for (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 58: Grammarware engineering: un enfoque dirigido por modelos

Parser

AST

Modelodel Lenguaje

Sintaxis Concreta

for (Ticket t : tickets) { display(t);}

Ticket.java

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 59: Grammarware engineering: un enfoque dirigido por modelos

Modelo del lenguaje

• Definición de sintaxis abstracta y concreta

• Independiente de gramáticas

• Independiente de técnicas de análisis

• Independiente de generadores

Parser

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 60: Grammarware engineering: un enfoque dirigido por modelos

Modelo del analizador

• Gramática neutral

• Independiente de técnicas de análisis

• Independiente de generadores

Parser

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 61: Grammarware engineering: un enfoque dirigido por modelos

Modelo del generador

• Analizador sintáctico

• Dependiente de una técnica de análisis

• Dependiente de un generador

Parser

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 62: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 62

Comparativa MetaCET-Enfoque Tradicional

Enfoque tradicional• Gramáticas

dependientes del uso

• Dependientes de la técnica de análisis y generador

• Duplicación de información

• Dificultad para generar herramientas

• Difícil evolución

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 63: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 63

Comparativa MetaCET-Enfoque Tradicional

Enfoque tradicional• Gramáticas

dependientes del uso

• Dependientes de la técnica de análisis y generador

• Duplicación de información

• Dificultad para generar herramientas

• Difícil evolución

MetaCET• Estándares

• Niveles de abstracción

• Formalización de la definición del lenguaje

• Casos de uso

• Independencia de herramientas

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 64: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 64

Grammarware Engineering

Introducción

Estado del Arte

MetaCET

Validación: generación de un parser

Implementación

Conclusiones, aportaciones y trabajo futuro

Page 65: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 65

Eclipse

Entorno de desarrollo multi-lenguaje

Arquitectura

Código abierto

Comunidad

Apoyo empresarial

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 66: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 66

Grammarware Engineering en Eclipse

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 67: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 67

Grammarware Engineering en Eclipse

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 68: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 68

Grammarware Engineering en Eclipse

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 69: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 69

Grammarware Engineering en Eclipse

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 70: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 70

Grammarware Engineering en Eclipse

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 71: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 71

Grammarware Engineering en Eclipse

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 72: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 72

Grammarware Engineering

Introducción Estado del Arte MetaCET Validación: generación de un parser Implementación Conclusiones, aportaciones y trabajo

futuro

Page 73: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 73

Conclusiones generales

Aplicación de MDE al desarrollo de lenguajes

Principios de Grammarware Engineering

Definición del lenguaje mediante UML

Metodología general

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 74: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 74

Aportaciones principales

1. Metodología general para el desarrollo de

lenguajes

2. Modelado de lenguajes en UML a través del perfil

Syntax

3. Separación de conceptos

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 75: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 75

Aportaciones principales

4. Particularización de la metodología para obtener un analizador sintáctico

5. Modelado de gramáticas en UML a través del perfil Parser

• Gramática neutral

• Independiente de técnicas de análisis

6. Modelado de especificaciones JavaCC y JFlex en UML a través de los perfiles JFlex y JavaCC

7. Publicación de resultados

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 76: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 76

Trabajo futuro

Ampliación de la gama de herramientas generadas

• Editores estructurales

• Herramientas de búsqueda

• Metricadores

• Herramientas de análisis Aumentar la definición del lenguaje con la semántica

estática

• Posiblemente con OCL

• Enlazar referencias con declaraciones

• Comprobación de tipos

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 77: Grammarware engineering: un enfoque dirigido por modelos

Francisco Gortázar Bellas 77

Trabajo futuro

Relaciones entre dos modelos de lenguajes diferentes

• Traducción de programas de un lenguaje a otro

• Aprovechar el grammarware existente para un determinado lenguaje

• Compiladores

• Depuradores

• Máquinas virtuales

Publicación del código

Introducción – EA – MetaCET – Validación – Implementación – Conclusiones

Page 78: Grammarware engineering: un enfoque dirigido por modelos

Grammarware Engineering: un enfoque dirigido por modelos basado

en separación de conceptos

- Tesis Doctoral -Director: Abraham Duarte Muñoz

Doctorando: Francisco Gortázar Bellas

Page 79: Grammarware engineering: un enfoque dirigido por modelos

Grammarware Engineering: un enfoque dirigido por modelos basado

en separación de conceptos

- Tesis Doctoral -

Director

Abraham Duarte Muñoz

Doctorando

Francisco Gortázar Bellas

Departamento de Ciencias de la Computación

Escuela Superior de Ciencias Experimentales y Tecnología