next up previous contents index
Next: Programação de Código Up: Open C++ Previous: Modelo de Objectos

Programação e Execução

Um programa em Open C++ é um programa C++ contendo directivas especiais que declaram métodos e variáveis controlados por um metaobjecto. As directivas são embebidas num programa C++ como comentários começando por //MOP.

Os métodos e variáveis controlados pelos metaobjectos são ditos reflexivos e são tratados como se fossem métodos e variáveis normais. No entanto, nem todos os métodos e/ou todas as variáveis têm que ser controlados pelo metaobjecto. Os que não estão sob controlo do metaobjecto comportam-se como os normais da linguagem.

O processamento do código é feito com o auxílio de uma ferramenta de pré-processamento. O resultado desse processador é uma biblioteca com código de suporte e alguns módulos de código (C++). A execução é levada a cabo como se indica na figura 2.4. A chamada ao método da classe IncAge no nível base é interceptada pelo metaobjecto, sendo por este realizada. O processo de interceptar a mensagem é incorporado na classe reflexiva pelo pré-processador. Na figura, não se encontram representados os argumentos dos métodos Meta..., que permitem a identificação do método a executar e a localização dos seus argumentos (no caso particular de IncAge, nenhuns).

  
Figure 2.4: Meta-arquitectura do sistema.

No secção C.2 (em apêndice), é apresentado um exemplo simples de programação com Open C++, que ilustra o modo de definição e utilização de código por uma aplicação.



David M. M. de Matos
Thu Jun 29 14:58:09 MET DST 1995