SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
MetaCG -A Metamodel Based
Approach for Writing
Source Code Generators


   Franklin Ramalho
    Anderson Ledo
    Natã Venâncio
Agenda
•    Contexto
•    Objetivo
•    Técnica
•    Resultados
•    Exemplo
•    Próximos passos
•    Dúvidas



WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   2
20/07/2010                GMF/DSC/CEEI/UFCG
Contexto
•  Poucos trabalhos relacionados a geração de
   sintaxe concreta
•  Os trabalhos que existem não tratam
   transformações textuais adequadamente
•  Como promover fácil entendimento e
   manutenção em transformações textuais?




WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   3
20/07/2010                GMF/DSC/CEEI/UFCG
Objetivo
•  MetaCG guia a organização, especificação e
   o fluxo de controle entre transformações
   textuais
•  O que isso impacta no gerador de código?
    •  Complexidade
    •  Esforço empregado por designers na fase de
       construção
    •  Facilidade de entender e manter



WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   4
20/07/2010                GMF/DSC/CEEI/UFCG
Técnica
•  MetaCG é composta por uma série de
   especificações:
    •  Alto Nível – Estrutura dos pacotes
    •  Baixo Nível – Guidelines para a codificação
       das transformações
•  Implementada em MOFScript




WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   5
20/07/2010                GMF/DSC/CEEI/UFCG
Técnica
•  Estrutura dos pacotes




WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   6
20/07/2010                GMF/DSC/CEEI/UFCG
Técnica
•  O que cada pacote representa?

    •  Main – utiliza as regras do pacote Core para
       realizar a transformação e persiste o código
       final




WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   7
20/07/2010                GMF/DSC/CEEI/UFCG
Técnica
    •  Core – propõe regras de transformações
       para cada meta-elemento

         •  Extractor – regras de extração; utiliza os
            pacotes Engine e Collection como auxiliares
         •  Engine – fluxo de transformações e
            inferência de tipos
         •  Collection – regras para os elementos com
            multiplicidade maior que um



WorkShop        Franklin Ramalho, Anderson Ledo e Natã Venâncio   8
20/07/2010                   GMF/DSC/CEEI/UFCG
Técnica
    •  Templates – definição de sintaxe para a
       linguagem alvo

         •  Definitions – definição de sintaxe concreta
            para cada meta-classe
         •  SymbolTables – tabela de símbolos para
            elementos terminais




WorkShop        Franklin Ramalho, Anderson Ledo e Natã Venâncio   9
20/07/2010                   GMF/DSC/CEEI/UFCG
Técnica
•  Guidelines
    •  Separação da definição de sintaxe da
       manipulação dos elementos do meta-modelo
    •  Manipulação de um elemento por regra
    •  Definição de regras separadas para coleções
    •  Reduz o uso de Print Statements




WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   10
20/07/2010                GMF/DSC/CEEI/UFCG
Resultados
•  Geração parcial das transformações do
   pacote Core e de seus sub-pacotes: Engine,
   Extractor e Collection
•  Geração de stubs de regras de templates




WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   11
20/07/2010                GMF/DSC/CEEI/UFCG
Exemplos
•  JavaCG
    •  Baseado na Técnica MetaCG
    •  Geração de sintaxe concreta a partir de
       modelos baseados no meta-modelo Java
       Abstract Syntax para linguagem de sintaxe
       concreta de Java
    •  Demonstração




WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   12
20/07/2010                GMF/DSC/CEEI/UFCG
Próximos passos
•  Desenvolver uma cadeia de transformações
   que trate mais detalhadamente os passos
   necessários pra realizar nossa técnica
•  Evoluir a técnica
•  Implementar a técnica MetaCG também em
   MOF2Text
•  Desenvolver um plugin que implemente a
   técnica MetaCG para a IDE Eclipse


WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   13
20/07/2010                GMF/DSC/CEEI/UFCG
Dúvidas




WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   14
20/07/2010                GMF/DSC/CEEI/UFCG
Obrigado a todos!



                   Franklin Ramalho
                    Anderson Ledo
                    Natã Venâncio

   {franklin, ledo, natanvm}@dsc.ufcg.edu.br



WorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   15
20/07/2010                GMF/DSC/CEEI/UFCG

Weitere ähnliche Inhalte

Andere mochten auch (17)

Kuca3
Kuca3Kuca3
Kuca3
 
Apresentação - Portfólio
Apresentação - PortfólioApresentação - Portfólio
Apresentação - Portfólio
 
Des grafico (2)
Des grafico (2)Des grafico (2)
Des grafico (2)
 
Deja secar la ira
Deja secar la iraDeja secar la ira
Deja secar la ira
 
Casa dos bloques grupo 8 mañanas
Casa dos bloques grupo 8 mañanasCasa dos bloques grupo 8 mañanas
Casa dos bloques grupo 8 mañanas
 
Presentation1 bien echo
Presentation1 bien echoPresentation1 bien echo
Presentation1 bien echo
 
Plan de gestion del conocimiento
Plan de gestion del conocimientoPlan de gestion del conocimiento
Plan de gestion del conocimiento
 
Kertas soalan muzik thn 4
Kertas soalan muzik thn 4Kertas soalan muzik thn 4
Kertas soalan muzik thn 4
 
Comandos router
Comandos routerComandos router
Comandos router
 
Presupuesto
PresupuestoPresupuesto
Presupuesto
 
Chosen settings
Chosen settingsChosen settings
Chosen settings
 
Creuer per les illes gregues
Creuer per les illes greguesCreuer per les illes gregues
Creuer per les illes gregues
 
Flormar 7-8
Flormar 7-8Flormar 7-8
Flormar 7-8
 
Presupuesto
PresupuestoPresupuesto
Presupuesto
 
Approved Resume-2
Approved Resume-2Approved Resume-2
Approved Resume-2
 
13 01
13 0113 01
13 01
 
Tutorial movie maker
Tutorial movie makerTutorial movie maker
Tutorial movie maker
 

Ähnlich wie MetaCG Approach for Code Generators

Como criar módulos para magento 2
Como criar módulos para magento 2Como criar módulos para magento 2
Como criar módulos para magento 2Rafael Corrêa Gomes
 
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...JP Clementi
 
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCE
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCECOMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCE
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCEFernando S. de Paulo
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoÉberli Cabistani Riella
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 
.NET Core 3.0 e ASP.NET Core 3.0: novidades e dicas úteis - Qual o X da Quest...
.NET Core 3.0 e ASP.NET Core 3.0: novidades e dicas úteis - Qual o X da Quest....NET Core 3.0 e ASP.NET Core 3.0: novidades e dicas úteis - Qual o X da Quest...
.NET Core 3.0 e ASP.NET Core 3.0: novidades e dicas úteis - Qual o X da Quest...Renato Groff
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...Renato Groff
 
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7tdc-globalcode
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaJosé Roberto Araújo
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019Renato Groff
 
Desenvolvendo para magento - primeiros passos
Desenvolvendo para magento - primeiros passosDesenvolvendo para magento - primeiros passos
Desenvolvendo para magento - primeiros passosRicardo Martins
 
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SP
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SPO novo ASP.NET - dotnetConf.Local 2016 - Santos-SP
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SPRenato Groff
 
O novo ASP.NET - PUC Developers Day - 2016
O novo ASP.NET - PUC Developers Day - 2016O novo ASP.NET - PUC Developers Day - 2016
O novo ASP.NET - PUC Developers Day - 2016Renato Groff
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Frameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPFrameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPElton Minetto
 

Ähnlich wie MetaCG Approach for Code Generators (20)

Como criar módulos para magento 2
Como criar módulos para magento 2Como criar módulos para magento 2
Como criar módulos para magento 2
 
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
 
MetaCG
MetaCG MetaCG
MetaCG
 
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCE
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCECOMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCE
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCE
 
O projeto saber na magneti marelli cofap
O projeto saber na magneti marelli cofapO projeto saber na magneti marelli cofap
O projeto saber na magneti marelli cofap
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
.NET Core 3.0 e ASP.NET Core 3.0: novidades e dicas úteis - Qual o X da Quest...
.NET Core 3.0 e ASP.NET Core 3.0: novidades e dicas úteis - Qual o X da Quest....NET Core 3.0 e ASP.NET Core 3.0: novidades e dicas úteis - Qual o X da Quest...
.NET Core 3.0 e ASP.NET Core 3.0: novidades e dicas úteis - Qual o X da Quest...
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
 
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
 
Desenvolvendo para magento - primeiros passos
Desenvolvendo para magento - primeiros passosDesenvolvendo para magento - primeiros passos
Desenvolvendo para magento - primeiros passos
 
Pgbr2013
Pgbr2013Pgbr2013
Pgbr2013
 
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SP
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SPO novo ASP.NET - dotnetConf.Local 2016 - Santos-SP
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SP
 
O novo ASP.NET - PUC Developers Day - 2016
O novo ASP.NET - PUC Developers Day - 2016O novo ASP.NET - PUC Developers Day - 2016
O novo ASP.NET - PUC Developers Day - 2016
 
Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Frameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPFrameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHP
 
Magento: Mitos vs Vantagens
Magento: Mitos vs VantagensMagento: Mitos vs Vantagens
Magento: Mitos vs Vantagens
 

Mehr von Natã Melo

Sistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - KafkaSistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - KafkaNatã Melo
 
[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google Analytics[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google AnalyticsNatã Melo
 
[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google Maps[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google MapsNatã Melo
 
Minicurso grails
Minicurso grailsMinicurso grails
Minicurso grailsNatã Melo
 
Java Style Grading
Java Style Grading Java Style Grading
Java Style Grading Natã Melo
 
Listas em Prolog
Listas em PrologListas em Prolog
Listas em PrologNatã Melo
 
Motores de busca em redes sociais
Motores de busca em redes sociaisMotores de busca em redes sociais
Motores de busca em redes sociaisNatã Melo
 
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...Natã Melo
 
Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4Natã Melo
 
Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3Natã Melo
 
Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2Natã Melo
 
Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1Natã Melo
 
Copas do Mundo de Futebol
Copas do Mundo de FutebolCopas do Mundo de Futebol
Copas do Mundo de FutebolNatã Melo
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem PythonNatã Melo
 
Sistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes SociaisSistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes SociaisNatã Melo
 
Sistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINSSistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINSNatã Melo
 
Regresão Múltipla
Regresão MúltiplaRegresão Múltipla
Regresão MúltiplaNatã Melo
 
Educação a Distância
Educação a DistânciaEducação a Distância
Educação a DistânciaNatã Melo
 

Mehr von Natã Melo (20)

Sistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - KafkaSistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - Kafka
 
[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google Analytics[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google Analytics
 
[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google Maps[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google Maps
 
Minicurso grails
Minicurso grailsMinicurso grails
Minicurso grails
 
Java Style Grading
Java Style Grading Java Style Grading
Java Style Grading
 
Listas em Prolog
Listas em PrologListas em Prolog
Listas em Prolog
 
Motores de busca em redes sociais
Motores de busca em redes sociaisMotores de busca em redes sociais
Motores de busca em redes sociais
 
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
 
Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4
 
Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3
 
Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2
 
Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1
 
Copas do Mundo de Futebol
Copas do Mundo de FutebolCopas do Mundo de Futebol
Copas do Mundo de Futebol
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
Sistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes SociaisSistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes Sociais
 
Sistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINSSistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINS
 
Terremotos
TerremotosTerremotos
Terremotos
 
Regresão Múltipla
Regresão MúltiplaRegresão Múltipla
Regresão Múltipla
 
Linguagem Go
Linguagem GoLinguagem Go
Linguagem Go
 
Educação a Distância
Educação a DistânciaEducação a Distância
Educação a Distância
 

MetaCG Approach for Code Generators

  • 1. MetaCG -A Metamodel Based Approach for Writing Source Code Generators Franklin Ramalho Anderson Ledo Natã Venâncio
  • 2. Agenda •  Contexto •  Objetivo •  Técnica •  Resultados •  Exemplo •  Próximos passos •  Dúvidas WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 2 20/07/2010 GMF/DSC/CEEI/UFCG
  • 3. Contexto •  Poucos trabalhos relacionados a geração de sintaxe concreta •  Os trabalhos que existem não tratam transformações textuais adequadamente •  Como promover fácil entendimento e manutenção em transformações textuais? WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 3 20/07/2010 GMF/DSC/CEEI/UFCG
  • 4. Objetivo •  MetaCG guia a organização, especificação e o fluxo de controle entre transformações textuais •  O que isso impacta no gerador de código? •  Complexidade •  Esforço empregado por designers na fase de construção •  Facilidade de entender e manter WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 4 20/07/2010 GMF/DSC/CEEI/UFCG
  • 5. Técnica •  MetaCG é composta por uma série de especificações: •  Alto Nível – Estrutura dos pacotes •  Baixo Nível – Guidelines para a codificação das transformações •  Implementada em MOFScript WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 5 20/07/2010 GMF/DSC/CEEI/UFCG
  • 6. Técnica •  Estrutura dos pacotes WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 6 20/07/2010 GMF/DSC/CEEI/UFCG
  • 7. Técnica •  O que cada pacote representa? •  Main – utiliza as regras do pacote Core para realizar a transformação e persiste o código final WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 7 20/07/2010 GMF/DSC/CEEI/UFCG
  • 8. Técnica •  Core – propõe regras de transformações para cada meta-elemento •  Extractor – regras de extração; utiliza os pacotes Engine e Collection como auxiliares •  Engine – fluxo de transformações e inferência de tipos •  Collection – regras para os elementos com multiplicidade maior que um WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 8 20/07/2010 GMF/DSC/CEEI/UFCG
  • 9. Técnica •  Templates – definição de sintaxe para a linguagem alvo •  Definitions – definição de sintaxe concreta para cada meta-classe •  SymbolTables – tabela de símbolos para elementos terminais WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 9 20/07/2010 GMF/DSC/CEEI/UFCG
  • 10. Técnica •  Guidelines •  Separação da definição de sintaxe da manipulação dos elementos do meta-modelo •  Manipulação de um elemento por regra •  Definição de regras separadas para coleções •  Reduz o uso de Print Statements WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 10 20/07/2010 GMF/DSC/CEEI/UFCG
  • 11. Resultados •  Geração parcial das transformações do pacote Core e de seus sub-pacotes: Engine, Extractor e Collection •  Geração de stubs de regras de templates WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 11 20/07/2010 GMF/DSC/CEEI/UFCG
  • 12. Exemplos •  JavaCG •  Baseado na Técnica MetaCG •  Geração de sintaxe concreta a partir de modelos baseados no meta-modelo Java Abstract Syntax para linguagem de sintaxe concreta de Java •  Demonstração WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 12 20/07/2010 GMF/DSC/CEEI/UFCG
  • 13. Próximos passos •  Desenvolver uma cadeia de transformações que trate mais detalhadamente os passos necessários pra realizar nossa técnica •  Evoluir a técnica •  Implementar a técnica MetaCG também em MOF2Text •  Desenvolver um plugin que implemente a técnica MetaCG para a IDE Eclipse WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 13 20/07/2010 GMF/DSC/CEEI/UFCG
  • 14. Dúvidas WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 14 20/07/2010 GMF/DSC/CEEI/UFCG
  • 15. Obrigado a todos! Franklin Ramalho Anderson Ledo Natã Venâncio {franklin, ledo, natanvm}@dsc.ufcg.edu.br WorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 15 20/07/2010 GMF/DSC/CEEI/UFCG