P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de...
Transcript of P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de...
![Page 1: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/1.jpg)
Iván Ruiz Rube Departamento de Ingeniería Informática Escuela Superior de Ingeniería Universidad de Cádiz
20/01/14 1
Transformaciones de modelo a texto con
MOFScript
Procesadores de Lenguajes 2
PL2 - Transformaciones de modelo a texto con MOFScript
Curso 2013-2014
![Page 2: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/2.jpg)
Contenidos
� Instalación � Introducción � Componentes � Características del lenguaje � Desarrollo de una transformación
20/01/14 2 PL2 - Transformaciones de modelo a texto con MOFScript
![Page 3: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/3.jpg)
INSTALACIÓN
TRANSFORMACIONES DE MODELO A TEXTO CON MOFSCRIPT
20/01/14 3 PL2 - Transformaciones de modelo a texto con MOFScript
![Page 4: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/4.jpg)
Instalación MOFScript
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 4
Help → Install New Software
![Page 5: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/5.jpg)
INTRODUCCIÓN
TRANSFORMACIONES DE MODELO A TEXTO CON MOFSCRIPT
20/01/14 5 PL2 - Transformaciones de modelo a texto con MOFScript
![Page 6: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/6.jpg)
MOFScript
� Herramienta muy utilizada para transformaciones de modelo a texto (código o documentación).
� Implementación de la especificación M2T de la OMG. Alineamiento con el estándar QVT.
� Existen alternativas M2T más recientes como Acceleo, JET o Xtend.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 6
![Page 7: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/7.jpg)
Características (I)
� Generación de texto desde modelos basados en MOF, UML, Ecore u otros creados con EMF.
� Permite crear múltiples ficheros de salida. Codificación configurable.
� Control de la trazabilidad desde el modelo a los bloques de código generado.
� Integración con código Java externo.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 7
![Page 8: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/8.jpg)
Características (II)
� Fácil de usar: lenguaje sencillo con pocos constructores.
� Lenguaje imperativo, similar a los lenguajes de scripting.
� Reglas invocadas explícitamente, excepto la inicial (main).
� Se permite la herencia de transformaciones.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 8
![Page 9: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/9.jpg)
Arquitectura
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 9
MOFScript se distribuye como un plugin que incorpora las herramientas necesarias para que el usuario pueda interaccionar
con los servicios de reconocimiento y verificación de los programas, ejecución de las transformaciones, etc.
![Page 10: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/10.jpg)
COMPONENTES
TRANSFORMACIONES DE MODELO A TEXTO CON MOFSCRIPT
20/01/14 10 PL2 - Transformaciones de modelo a texto con MOFScript
![Page 11: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/11.jpg)
Componentes
� Los módulos MOFScript se componen de los siguientes elementos: ◦ Declaración del módulo ◦ Reglas de transformación � Incluyendo una regla main.
◦ Operaciones de escritura en ficheros
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 11
![Page 12: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/12.jpg)
Declaración del módulo
� Define el nombre del módulo de transformación, el/los metamodelo(s) de origen y opcionalmente, la importación de otros módulos.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 12
import “otraTransformacion.m2t"
texttransformation module_name
(in InputMM1:“input_metamodel_uri1",
in InputMM2:“input_metamodel_uri2")
{
…
![Page 13: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/13.jpg)
Reglas de transformación
� Las reglas de transformación son similares a los métodos en Java. Pueden tener un contexto, un tipo de retorno, parámetros y un conjunto de sentencias a ejecutar. Debe existir una regla main, sin parámetros y sin tipo de retorno.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 13
[InputMM.MMElement::] rule_name (param1:Type1, param2:Type2) {
// statements
…
result= exp;
}
![Page 14: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/14.jpg)
Escritura en ficheros
� Indicar el nombre (relativo o absoluto) del fichero donde se escribirá el texto de salida. Las sentencias println y el texto ‘escapado’ permitirán escribir en el último file declarado.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 14
file fichero(“ficherodesalida.txt”);
fichero.println(“escribiendo texto…”);
nl(1); tab(2); space(3);
‘ escribiendo más texto…’;
![Page 15: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/15.jpg)
CARACTERÍSTICAS DEL LENGUAJE
TRANSFORMACIONES DE MODELO A TEXTO CON MOFSCRIPT
20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript
![Page 16: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/16.jpg)
Expresiones MOFScript
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 16
if (condition) {
// statements
} else {
// statements
}
while (condition){
//statements
}
property name:Type = value;
var name:Type = value;
![Page 17: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/17.jpg)
Tipos de datos MOFScript � Predefinidos ◦ String ◦ Integer ◦ Real ◦ Boolean ◦ List ◦ Hashtable ◦ PropertyMap ◦ Object
� Tipos del metamodelo (metaclases)
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 17
![Page 18: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/18.jpg)
Operaciones MOFScript � Predefinidos: ◦ String: substring(), toLower(), replace() ◦ Integer: +, -, *, / ◦ List: add(), remove(), forEach(), select() ◦ Hashtable: put(), get(), keys() ◦ PropertyMap: load(), loadXML(), storeXML()
� Tipos del metamodelo ◦ objectsOfType(), oclIsTypeOf(), oclIsKindOf()
� Utilidades del sistema ◦ position(), time(), date(),
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 18
![Page 19: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/19.jpg)
DESARROLLO DE UNA TRANSFORMACIÓN
TRANSFORMACIONES DE MODELO A TEXTO CON MOFSCRIPT
20/01/14 19 PL2 - Transformaciones de modelo a texto con MOFScript
![Page 20: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/20.jpg)
Creación de un proyecto
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 20
File → New Project → Empty EMF Project Los metamodelos los crearemos dentro de un proyecto EMF
![Page 21: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/21.jpg)
Arquitectura del ejemplo
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 21
Ecore
MOFScript
WebPageMM
UCA web UCA.html
WebPage2HTML
conforme A
conforme A
conforme A
transformación
origen
![Page 22: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/22.jpg)
Correspondencia del metamodelo
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 22
<html> … <img src=“Header.logo"/> <h1>Header.title</h1> <p>Paragraph.text</p> <img src="http://mapas.org/map?=Map.lat,Map.long"> <div align="center">Footer.text</div> … </html>
WebPageMM
![Page 23: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/23.jpg)
Establecer rutas de trabajo
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 23
![Page 24: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/24.jpg)
Crear una transformación MOFScript
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 24
File → New → MOFScript File
![Page 25: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/25.jpg)
Desarrollo de la transformación (I)
� Nuestro fichero M2T definirá un módulo de transformación, el cual transformará un modelo basado en el metamodelo de páginas web en texto.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 25
property filename:String = "index.html“;
texttransformation WebPage2HTML (in WebPageMM:"http://webpagemm/1.0") {
![Page 26: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/26.jpg)
Desarrollo de la transformación (II)
� Función principal, la cual abrirá el fichero de salida, escribirá las etiquetas de apertura del HTML, lo poblará y luego escribirá las etiquetas de cierre.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 26
WebPageMM.WebPage::main () {
stdout.println ("Generando web para... " + self.name);
file (filename); // Creamos archivo
writeHTMLHeader(self.name); // Apertura del fichero HTML
self.toHTML(); // Contenidos del HTML
writeHTMLEnd(); // Cierre del fichero HTML
}
![Page 27: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/27.jpg)
Desarrollo de la transformación (III)
� Función auxiliar que genera las etiquetas de cabecera del documento HTML.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 27
writeHTMLHeader(name:String){
'<html lang="es">\n';
'<head>\n';
tab(1); '<meta http-‐equiv="content-‐type" content="text/html; charset=utf-‐8">\n';
tab(1); '<title>'; name; '</title>\n'; '</head>\n';
'<body>\n';
}
![Page 28: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/28.jpg)
Desarrollo de la transformación (IV)
� Función auxiliar que genera las etiquetas de cierre del documento HTML.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 28
writeHTMLEnd(){
nl(1);
'</body>';
nl(1);
'</html>';
}
![Page 29: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/29.jpg)
Desarrollo de la transformación (V)
� Función auxiliar que genera el contenido HTML desde el modelo origen.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 29
WebPageMM.WebPage::toHTML() {
self.header.toHTML();
self.paragraphs-‐>forEach(paragraph:WebPageMM.Paragraph){
paragraph.toHTML();
}
self.maps-‐>forEach(map:WebPageMM.Map){
map.toHTML();
}
self.footer.toHTML();
}
![Page 30: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/30.jpg)
Desarrollo de la transformación (VI)
� Función auxiliar que genera el HTML necesario para representar el título y el logotipo de la página web.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 30
WebPageMM.Header::toHTML() {
nl(1);tab(1);
'<img width="300" height="126" src="' self.logo '"/>'; nl(1);tab(1);
'<H1>' self.title '</H1>';
}
![Page 31: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/31.jpg)
Desarrollo de la transformación (VII)
� Función auxiliar que genera el HTML necesario para representar un párrafo de la página web.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 31
WebPageMM.Paragraph::toHTML() {
nl(1);tab(1);
'<p>' self.text '</p>'; }
![Page 32: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/32.jpg)
Desarrollo de la transformación (VIII)
� Función auxiliar que genera el HTML necesario para representar un mapa estático de Google.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 32
WebPageMM.Map::toHTML() {
nl(1); '<br/>';
nl(1); tab(1);
'<img src= "http://maps.googleapis.com/maps/api/staticmap?center=' self.lat ',' self.long ‘ &zoom=11& size=200x200 &sensor=false">';
}
![Page 33: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/33.jpg)
Desarrollo de la transformación (IX)
� Función auxiliar que genera el HTML necesario para representar la información del pié de página.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 33
WebPageMM.Footer::toHTML() {
nl(1);
'<br/><hr/>';
nl(1);tab(1);
'<div align="center">' self.info '</div>'; }
![Page 34: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/34.jpg)
Desarrollo de un modelo origen
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 34
![Page 35: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/35.jpg)
Ejecución de la transformación
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 35
Las opciones MOFScript de la barra de botones de Eclipse, permiten compilar el fichero M2T, ejecutar una transformación
para un modelo dado y ejecutar la transformación anterior.
![Page 36: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/36.jpg)
Resultado: Página HTML
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 36
![Page 37: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/37.jpg)
RESUMEN
TRANSFORMACIONES DE MODELO A TEXTO CON MOFSCRIPT
20/01/14 37 PL2 - Transformaciones de modelo a texto con MOFScript
![Page 38: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/38.jpg)
¿Qué hemos aprendido hoy?
� MOFScript es un lenguaje y un entorno de ejecución para generar texto a partir de modelos (M2T).
� Permite generar varios ficheros de salida de código ejecutable o documentación.
� El desarrollo de las reglas de transformación es similar a la programación de métodos en Java.
20/01/14 PL2 - Transformaciones de modelo a texto con MOFScript 38
![Page 39: P9 - Transformaciones de modelo a texto con MOFScript · 20/01/14 15 PL2 - Transformaciones de modelo a texto con MOFScript . Expresiones MOFScript ... Los metamodelos los crearemos](https://reader035.fdocuments.es/reader035/viewer/2022062506/5fba834cc7c46f22652d9fc0/html5/thumbnails/39.jpg)
20/01/14 39 PL2 - Transformaciones de modelo a texto con MOFScript
Transformaciones de modelo a texto con
MOFScript
Procesadores de Lenguajes 2
Iván Ruiz Rube [email protected]