SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Destaque

Apresentação - Portfólio
Apresentação - PortfólioApresentação - Portfólio
Apresentação - Portfólio
Gabriel Ferraciolli
 
Des grafico (2)
Des grafico (2)Des grafico (2)
Des grafico (2)
projetohappyhoney
 
Deja secar la ira
Deja secar la iraDeja secar la ira
Deja secar la ira
Naty Morales Vega
 
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
Laura Barranco
 
Presentation1 bien echo
Presentation1 bien echoPresentation1 bien echo
Presentation1 bien echo
Alexis Amaro
 
Plan de gestion del conocimiento
Plan de gestion del conocimientoPlan de gestion del conocimiento
Plan de gestion del conocimiento
Rosa Nieves Zambrano
 
Kertas soalan muzik thn 4
Kertas soalan muzik thn 4Kertas soalan muzik thn 4
Kertas soalan muzik thn 4vasanthn
 
Comandos router
Comandos routerComandos router
Comandos router
Jimmy Alfaro
 
Presupuesto
PresupuestoPresupuesto
Presupuesto
loktita
 
Chosen settings
Chosen settingsChosen settings
Chosen settings
2010savannah96
 
Creuer per les illes gregues
Creuer per les illes greguesCreuer per les illes gregues
Creuer per les illes gregues
Nurilori
 
Flormar 7-8
Flormar 7-8Flormar 7-8
Presupuesto
PresupuestoPresupuesto
Presupuesto
loktita
 
Approved Resume-2
Approved Resume-2Approved Resume-2
Approved Resume-2
Dylan Gunn
 
13 01
13 0113 01
13 01
ctnov2011
 
Tutorial movie maker
Tutorial movie makerTutorial movie maker
Tutorial movie maker
Luis Angel Lopez
 

Destaque (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
 

Semelhante a Apresentação JavaCG MetaCG

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
Rafael 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
 
MetaCG
MetaCG MetaCG
MetaCG
Natã Melo
 
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
Fernando S. de Paulo
 
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
Sociedade Brasileira de Gestão do Conhecimento
 
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 JSF
Emmanuel 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 7
tdc-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 varejista
José 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-2019
Renato Groff
 
Desenvolvendo para magento - primeiros passos
Desenvolvendo para magento - primeiros passosDesenvolvendo para magento - primeiros passos
Desenvolvendo para magento - primeiros passos
Ricardo Martins
 
Pgbr2013
Pgbr2013Pgbr2013
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
Renato Groff
 
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
Renato Groff
 
Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
Rodrigo Marconato
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
Eric Gallardo
 
Frameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPFrameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHP
Elton Minetto
 
Magento: Mitos vs Vantagens
Magento: Mitos vs VantagensMagento: Mitos vs Vantagens
Magento: Mitos vs Vantagens
Rafael Corrêa Gomes
 

Semelhante a Apresentação JavaCG MetaCG (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 - 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
 
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
 
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
 

Mais de Natã Melo

Sistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - KafkaSistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - Kafka
Natã 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 Analytics
Natã Melo
 
[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google Maps[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google Maps
Natã Melo
 
Minicurso grails
Minicurso grailsMinicurso grails
Minicurso grails
Natã 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 Prolog
Natã Melo
 
Motores de busca em redes sociais
Motores de busca em redes sociaisMotores de busca em redes sociais
Motores de busca em redes sociais
Natã 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 4
Natã Melo
 
Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3
Natã Melo
 
Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2
Natã Melo
 
Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1
Natã Melo
 
Copas do Mundo de Futebol
Copas do Mundo de FutebolCopas do Mundo de Futebol
Copas do Mundo de Futebol
Natã Melo
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
Natã Melo
 
Sistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes SociaisSistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes Sociais
Natã Melo
 
Sistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINSSistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINS
Natã Melo
 
Terremotos
TerremotosTerremotos
Terremotos
Natã Melo
 
Regresão Múltipla
Regresão MúltiplaRegresão Múltipla
Regresão Múltipla
Natã Melo
 
Linguagem Go
Linguagem GoLinguagem Go
Linguagem Go
Natã Melo
 
Educação a Distância
Educação a DistânciaEducação a Distância
Educação a Distância
Natã Melo
 

Mais de 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
 

Último

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 

Último (8)

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 

Apresentação JavaCG MetaCG

  • 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