Um mecanismo para extensibilidade de AspectJ em tempo de costura

Linguagens de domínio específico orientadas a aspectos (DSALs) são linguagens de programação com funcionalidades orientadas a aspectos especialmente projetadas para resolver problemas de domínios específicos. O uso destas pode trazer diversas vantagens como a melhora da produtividade e diminuição do...

ver descrição completa

Detalhes bibliográficos
Autor: Trevenzoli, Cleverson Carneiro
Formato: tesis de maestría
Estado:Versión publicada
Fecha de publicación:2013
País:Brasil
Recursos:Universidade Federal de Viçosa (UFV)
Repositorio:LOCUS Repositório Institucional da UFV
Idioma:portugués
OAI Identifier:oai:locus.ufv.br:123456789/2650
Acesso em linha:http://locus.ufv.br/handle/123456789/2650
Access Level:acceso abierto
Palavra-chave:Extensibilidade
XAJ
Designadores de pointcut
Extensibility
Pointcut designators
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Descrição
Resumo:Linguagens de domínio específico orientadas a aspectos (DSALs) são linguagens de programação com funcionalidades orientadas a aspectos especialmente projetadas para resolver problemas de domínios específicos. O uso destas pode trazer diversas vantagens como a melhora da produtividade e diminuição dos custos na manutenção. Linguagens extensíveis são uma maneira de embutir DSALs em linguagens orientadas a aspectos de propósito geral. A linguagem XAJ (eXtensible AspectJ) é uma linguagem extensível baseada em AspectJ, que usa o conceito de classes de sintaxe, unidades que estendem classes com definições de sintaxe, construindo especificações modulares para extensões. XAJ é construída com base no abc (AspectBench Compiler), um compilador que possui suporte adequado para permitir extensões de linguagem. Visando aumentar o poder de expressividade de AspectJ, diminuindo as limitações e restrições da linguagem, como o conjunto de designadores de pointcut fixo e não-extensível, apresentamos um mecanismo de geração automática de código, processável em tempo de costura, para a classe de sintaxe de XAJ. O mecanismo possibilita a definição de novos designadores de pointcut pelo usuário mas ainda se limita a extensões que usam apenas informações estáticas do programa base para a geração de código. Essa dissertação descreve problemas encontrados e solucionados na implementação em XAJ desse mecanismo geral e demostra um ganho pela automação de código no processo de extensibilidade, retirando do usuário a necessidade de modificar várias classes do compilador à mão.