Especialização de linguagens orientadas a aspectos baseada em extensibilidade de gramáticas

=== The development of computational resources and the rise of software industry brought the need to produce software more quickly and with higher complexity. With the increase on program size and complexity, severe problems of maintenance arise, because errors are more dificult to find and correct...

Full description

Bibliographic Details
Main Author: Leonardo Vieira dos Santos Reis
Other Authors: Roberto da Silva Bigonha
Format: Others
Language:Portuguese
Published: Universidade Federal de Minas Gerais 2010
Online Access:http://hdl.handle.net/1843/SLSS-85BKYB
Description
Summary:=== The development of computational resources and the rise of software industry brought the need to produce software more quickly and with higher complexity. With the increase on program size and complexity, severe problems of maintenance arise, because errors are more dificult to find and correct. So, it is important to create tools that make maintenance easier and improve the productivity of programmers. Domain-Specific Languages and Aspect-Oriented Programming can be combined to achieve these goals, building domain-specific aspect-oriented languages as extensions of languages such as AspectJ or AspectC. But building such extensions and embedding them on generalpurpose aspect languages is not an easy task. This work presents XAJ, an aspect-oriented extensible language based on AspectJ. XAJ provides features to build extensions and embedded domain-specific aspect-oriented languages. XAJ has a new compilation unit called syntax class, whichen capsulates the whole denition of a language extension, improving modularity and portability of extensions. Mechanisms for symbol import allow the definition of new grammar rules with local scope. Extensions in XAJ are portable because they are completely defined with the language itself, without the need of additional tools for the implementation. === O desenvolvimento dos recursos computacionais e o surgimento da indústria de software trouxeram a necessidade de produzir softwares rapidamente e mais complexos. Com o aumento da complexidade dos softwares, surgiram problemas de manutenção, pois a complexidade e o tamanho dos programas aumentaram, o que dificulta encontrar e corrigir erros. Neste contexto, surgiu a necessidade de desenvolver ferramentas que aumentem a produtividade e facilitem a manutenção dos softwares. Programação Orientada a Aspectos e Linguagens de Domínio Específico são metodologias de programação que visam aumentar a produtividade e facilitar a manutenção de código. Noentanto criar extensões e embarcar linguagens de domínio específico orientadas a aspectos (união das duas técnicas citadas) em linguagens de propósito geral, e.g., AspectJ, AspectC, etc., não são tarefas simples. Este trabalho apresenta a linguagem XAJ, a primeira linguagem extensível orientada a aspectos que se tem conhecimento, a qual permite estender sua sintaxe concreta, possibilitando criar extensões e linguagens de domínio específico orientadas a aspectos embarcadas. XAJ tem uma nova unidade sintática, as classes sintáticas, que encapsulam as definições das extensões, aumentando a modularidade das mesmas. Novos mecanismos de importação são definidos para o uso das extensões, permitindo que sejam usadas em escopo local, não modificando globalmente a gramática da linguagem base. As extensões definidas na linguagem XAJ são portáveis, pois não são dependentes de ferramentas de implementação, sendo definidas na própria linguagem.