MetaCG -A Metamodel BasedApproach for WritingSource Code Generators   Franklin Ramalho    Anderson Ledo    Natã Venâncio
Agenda•    Contexto•    Objetivo•    Técnica•    Resultados•    Exemplo•    Próximos passos•    DúvidasWorkShop     Frankl...
Contexto•  Poucos trabalhos relacionados a geração de   sintaxe concreta•  Os trabalhos que existem não tratam   transform...
Objetivo•  MetaCG guia a organização, especificação e   o fluxo de controle entre transformações   textuais•  O que isso i...
Técnica•  MetaCG é composta por uma série de   especificações:    •  Alto Nível – Estrutura dos pacotes    •  Baixo Nível ...
Técnica•  Estrutura dos pacotesWorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   620/07/2010                G...
Técnica•  O que cada pacote representa?    •  Main – utiliza as regras do pacote Core para       realizar a transformação ...
Técnica    •  Core – propõe regras de transformações       para cada meta-elemento         •  Extractor – regras de extraç...
Técnica    •  Templates – definição de sintaxe para a       linguagem alvo         •  Definitions – definição de sintaxe c...
Técnica•  Guidelines    •  Separação da definição de sintaxe da       manipulação dos elementos do meta-modelo    •  Manip...
Resultados•  Geração parcial das transformações do   pacote Core e de seus sub-pacotes: Engine,   Extractor e Collection• ...
Exemplos•  JavaCG    •  Baseado na Técnica MetaCG    •  Geração de sintaxe concreta a partir de       modelos baseados no ...
Próximos passos•  Desenvolver uma cadeia de transformações   que trate mais detalhadamente os passos   necessários pra rea...
DúvidasWorkShop     Franklin Ramalho, Anderson Ledo e Natã Venâncio   1420/07/2010                GMF/DSC/CEEI/UFCG
Obrigado a todos!                   Franklin Ramalho                    Anderson Ledo                    Natã Venâncio   {...
Próximos SlideShares
Carregando em…5
×

Apresentação JavaCG MetaCG

561 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
561
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Apresentação JavaCG MetaCG

  1. 1. MetaCG -A Metamodel BasedApproach for WritingSource Code Generators Franklin Ramalho Anderson Ledo Natã Venâncio
  2. 2. Agenda•  Contexto•  Objetivo•  Técnica•  Resultados•  Exemplo•  Próximos passos•  DúvidasWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 220/07/2010 GMF/DSC/CEEI/UFCG
  3. 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 320/07/2010 GMF/DSC/CEEI/UFCG
  4. 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 manterWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 420/07/2010 GMF/DSC/CEEI/UFCG
  5. 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 MOFScriptWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 520/07/2010 GMF/DSC/CEEI/UFCG
  6. 6. Técnica•  Estrutura dos pacotesWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 620/07/2010 GMF/DSC/CEEI/UFCG
  7. 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 finalWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 720/07/2010 GMF/DSC/CEEI/UFCG
  8. 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 umWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 820/07/2010 GMF/DSC/CEEI/UFCG
  9. 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 terminaisWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 920/07/2010 GMF/DSC/CEEI/UFCG
  10. 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 StatementsWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 1020/07/2010 GMF/DSC/CEEI/UFCG
  11. 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 templatesWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 1120/07/2010 GMF/DSC/CEEI/UFCG
  12. 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çãoWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 1220/07/2010 GMF/DSC/CEEI/UFCG
  13. 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 EclipseWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 1320/07/2010 GMF/DSC/CEEI/UFCG
  14. 14. DúvidasWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 1420/07/2010 GMF/DSC/CEEI/UFCG
  15. 15. Obrigado a todos! Franklin Ramalho Anderson Ledo Natã Venâncio {franklin, ledo, natanvm}@dsc.ufcg.edu.brWorkShop Franklin Ramalho, Anderson Ledo e Natã Venâncio 1520/07/2010 GMF/DSC/CEEI/UFCG

×