Busca avançada
Ano de início
Entree


Guarana: uma arquitetura de software para reflexão computacional implementada em Java tm

Texto completo
Autor(es):
Alexandre Oliva
Número total de Autores: 1
Tipo de documento: Dissertação de Mestrado
Imprenta: Campinas, SP.
Instituição: Universidade Estadual de Campinas (UNICAMP). Instituto de Computação
Data de defesa:
Membros da banca:
Luiz Eduardo Busato; Markus Endler; Jorge Stolfi; Cecília Mary Fischer Rubira
Orientador: Luiz Eduardo Busato
Resumo

Esta dissertação é uma coleção de artigos escritos em inglês, com uma introdução e uma conclusão em português. O primeiro artigo descreve Guaraná, uma arquitetura reflexiva independente de linguagem, cujo protocolo de meta-nível, em tempo de execução, permite um alto grau de reutilização de código de meta-nível. O protocolo foi projetado de forma a prover, de forma segura, flexibilidade e reconfigurabilidade do comportamento de meta-nível de objetos. O segundo artigo descreve nossa implementação dessa arquitetura, através da modificação de uma implementação aberta da Máquina Virtual de Java TM, que mantém a linguagem de programação Java TM inalterada. Com nossa abordagem, aplicações Java TM pré-existentes podem ser tornadas reflexivas, mesmo quando seu código fonte não está disponível. O artigo descreve as alterações que fizemos à máquina virtual, bem como as classes que completam a implementação. Além disso, ele apresenta medidas de degradação de desempenho causadas por nossas alterações. O" terceiro artigo é um tutorial dirigido a programadores J ava TM que pretendam conhecer e utilizar os recursos do Guaraná. Ele cobre desde mecanismos básicos de interceptação até tópicos avançados, expondo alguns detalhes internos da implementação do Guaraná. O quarto e último artigo apresenta MOLDS, uma biblioteca de componentes de meta-nível adequados para a construção de aplicações distribuídas, que pretendemos implementar sobre o Guaraná. Esta biblioteca explorará a capacidade do Guaraná de combinar meta-objetos independentes de modo a definir comportamentos de meta-nível complexos, de maneira transparente, do ponto de vista da aplicação do nível base (AU)