Iteradores, Templates e Consultas na Análise e Manipulação de Programas.
Published in II Workshop de Manutenção Moderna de Software, 2005
A engenharia reversa e a reestruturação de programas são uteís em tarefas de manutenção e evolução de software. As ferramentas e meta-ferramentas para análise e manipulação de código-fonte têm um papel importante nestas atividades, contudo seu desenvolvimento é difícil dada à complexidade intrínsica desta classe de ferramentas. A existência de meta-ferramentas melhores poderia facilitar a construção das ferramentas para análise e manipulação de código. Apesar de diversas meta-ferramentas já terem sido propostas, ainda não existe uma solução definitiva. Este trabalho propõe o uso integrado de iteradores, templates, e consultas relacionais para facilitar a construção de módulos para análise e manipulação de programas. Estes mecanismos são baseados nas noções de referências tipadas para código-fonte e de casamento de padrões em árvores sintáticas. Para demonstrar a efetividade desta abordagem, apresenta-se um construtor de grafos de semântica estática baseada em declarações, escopo e uso de símbolos. Para avaliar a performance das abordagens iterativas e declarativas, foram implementadas e analisadas duas refatorações. As meta-ferramentas apresentadas neste artigo apresentaram vantagens sobre outras meta-ferramentas, portanto podendo ser consideradas viáveis de serem introduzidas em processos de manutenção de software.