Linguagem de Transformação para a linguagem OO1 Adeline Sousa Gustavo Santos
Motivação A técnica de Transformação de Programas dá suporte a: Refactoring Desenvolvimento formal de software Geração de código Limitação dos sistemas existentes Genéricos X Específicos
Motivação (2) Instanciação do “modelo JaTS” Dará suporte ao desenvolvimento de um modelo de sistema de transformação independente de linguagem
O sistema OOTS Constituído de duas linguagens Linguagem para construção de templates OOTS-TL Linguagem para especificação de transformações OOTS-ES OOTS se apresenta como um ambiente de meta-programação para OO1
A Linguagem OOTS-TL Linguagem para especificar templates para transformações em programas OO1 Um super-conjunto de OO1 Possibilita especificação de templates de casamento (lado esquerdo) e geração (lado direito)
Variáveis OOTS-TL São usadas como placeholders nas transformações Consistem de identificadores OO1 precedidos pelo caractere ‘#’ Podem ser declaradas como sendo de um tipo específico
Transformações em OOTS São compostas por: Pré-condição Lado esquerdo Lado direito
Transformações em OOTS Aplicadas nas seguintes etapas: Parsing Transformação Casamento Substituição Processamento Pretty-Printing (unparsing)
Declarações Executáveis Permitem operações sobre a árvore do programa Aparecem apenas nos templates do lado direito
Declarações Iterativas Permitem gerar coleções de declarações com o mesmo padrão Exemplo...
A Linguagem OOTS-SL Linguagem para especificação de transformações Exemplo...
OOTS – Fase 1 Alteração de todos os nós para suportar as transformações Utilização do JaTS Extensão do parser Variáveis OOTS Expressões executáveis Expressões iterativas
OOTS – Fase 2 Linguagem pra especificar uma transformação Novo parser Novas produções Construção do ambiente de execução OOTS