Dissertação
Um mecanismo para extensibilidade de AspectJ em tempo de costura
A mechanism for the extensibility of AspectJ at weave time
Registro en:
TREVENZOLI, Cleverson Carneiro. A mechanism for the extensibility of AspectJ at weave time. 2013. 109 f. Dissertação (Mestrado em Metodologias e técnicas da Computação; Sistemas de Computação) - Universidade Federal de Viçosa, Viçosa, 2013.
Autor
Trevenzoli, Cleverson Carneiro
Institución
Resumen
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. Domain specific aspect languages (DSALs) are programming languages with aspectoriented features specially designed to solve specific domains. The use of DSALs may offer several advantages such as improved productivity and reduced costs in maintenance. Extensible languages are a way to embed DSALs on general purpose aspects oriented languages. The XAJ language (eXtensible AspectJ) is an extension of AspectJ which uses the concept of syntax classes, units that extend classes with syntax definitions, building modular specifications for extensions. XAJ is built based on AspectBench, a compiler that has adequate support to allow language extensions. Aiming to increase the power of expressiveness of AspectJ, reducing the limitations and restrictions of the language as a set of pointcuts designators fixed and non-extensible, we present a mechanism for automatic code generation at weave time for XAJ syntax classes. The mechanism allows the definition of new pointcut designators by the users but it is still restrict to extensions that use only static information from the base program. This thesis describes problems that were found and solved, when implementing in XAJ this general mechanism and demonstrates a gain for the automation of code in the process of extensibility, removing the need for the user to modify several classes of a specific compiler by hand.