Metaprogramação extensível para a linguagem XAJ (eXtensible AspectJ)

Imagem de Miniatura

Data

2013-02-26

Título da Revista

ISSN da Revista

Título de Volume

Editor

Universidade Federal de Viçosa

Resumo

Linguagens de domínio específico orientadas a aspectos (DSALs) são linguagens projetadas especificamente para um domínio com funcionalidades orientadas a aspectos, gerando vantagens como produtividade e expressividade. Embarcar uma DSAL em uma linguagem de propósito geral orientada a aspectos pode apresentar algumas vantagens. Para conseguir isso, uma das técnicas utilizadas é a extensibilidade. A linguagem eXtensible AspectJ (XAJ ) é uma linguagem extensível baseada em AspectJ, principal linguagem orientada a aspectos. A definição de extensões para a linguagem é modular, sendo encapsulada em uma classe sintática, que permite definir a sintaxe e a semântica da nova construção, além de representá-la na árvore de sintaxe abstrata (AST ). A definição da semântica de uma nova construção se dá pela tradução para construções já conhecidas. Nesse ponto, a linguagem pode-se beneficiar das vantagens da metaprogramação. A metaprogramação é uma técnica de escrever programas que geram ou manipulam programas. Assim, com uma sintaxe próxima à sintaxe concreta da linguagem, obtém-se maior facilidade de entendimento. Com um mecanismo de metaprogramação extensível, pode-se utilizar construções definidas pelo usuário na definição de novas construções. Este trabalho apresenta um mecanismo de metaprogramação extensível para a linguagem XAJ, apresentando exemplo de uso e suas vantagens.
Domain specific aspect languages (DSALs) are languages specifically designed for a domain with aspect-oriented features, obtaining benefits such as productivity and expressiveness. To embed a DSAL in an aspect-oriented general purpose language may present some advantages. To achieve this, one of the techniques used is language extensibility. XAJ (eXtensible AspectJ ) is an extensible language based on AspectJ, the main aspect-oriented language. The definitions of extensions to the language are modular, being encapsulated in a syntax class. Syntax class allow users define the syntax and semantics of a new construction, and represent it in the abstract syntax tree (AST ). The definition of the semantics of a new construction is given by the translation to already known constructs. At this point, the language can benefit from the advantages of metaprogramming. Metaprogramming is a technique of writing programs that generate or manipulate other programs. Metaprogramming commands are very ease to understand especially when they use a syntax that is very similar to the concrete syntax of the language. With an extensible metaprogramming mechanism, user defined constructs can be used in the definitions of new constructs. This work presents an extensible metaprogramming mechanism for the XAJ language, presenting examples of usage and its advantages.

Descrição

Palavras-chave

Metaprogramação, Extensibilidade, Orientação a aspectos, Metaprogramming, Extensibility, Aspect orientation

Citação

PINHEIRO, Felipe da Silva. Extensible metaprogramming for the XAJ (eXtensible AspectJ) language. 2013. 45 f. Dissertação (Mestrado em Metodologias e técnicas da Computação; Sistemas de Computação) - Universidade Federal de Viçosa, Viçosa, 2013.

Avaliação

Revisão

Suplementado Por

Referenciado Por