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

Carregando...
Imagem de Miniatura

Título da Revista

ISSN da Revista

Título de Volume

Editor

Universidade Federal de Minas Gerais

Descrição

Tipo

Dissertação de mestrado

Título alternativo

Primeiro orientador

Membros da banca

Marcelo de Almeida Maia
Marco Tulio de Oliveira Valente
Mariza Andrade da Silva Bigonha

Resumo

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.

Abstract

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-SpecificLanguages 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 newgrammar 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.

Assunto

Programação orientada a objetos (Computação), Computação

Palavras-chave

Citação

Departamento

Curso

Endereço externo

Avaliação

Revisão

Suplementado Por

Referenciado Por