Download ICE - Intelligence Control Engine
Transcript
79 código intermediário da definição do agente. O construtor foi inspirado no padrão Builder em [GAM94]. Este padrão foi levemente modificado devido ao modo de funcionamento das classes geradas pelas ferramentas utilizadas; Gerador de código: após a árvore sintática ter sido criada, esta é transformada em uma representação em termos de uma estrutura de classes de objetos em conformidade com a especificação da arquitetura ICE. Ao final do processo de compilação a representação Orientada a Objetos é convertida em arquivos fonte na linguagem alvo, que no caso deste trabalho é C++. 7.1.4 Analisador léxico e sintático O processo de compilação no ICEC é encabeçado pelos analisadores léxico e sintático. Estes analisadores são criados utilizando-se as ferramentas já descritas, tendo como fonte a gramática da IADL. Devido à forma com que as ferramentas utilizadas operam, foi necessária a criação de um módulo que isolasse a geração de código intermediário do módulo de análise sintática. As regras especificadas na definição da gramática da linguagem para o analisador sintático são acompanhadas de regras da gramática de atributos utilizada para a geração do código intermediário. Nas regras da gramática de atributos são feitas chamadas para o módulo construtor de nodos da árvore sintática, de modo a gerar o código intermediário. 7.1.5 Construtor de nodos da árvore sintática Este módulo é responsável pela criação dos nodos da árvore sintática, que corresponde à representação em código intermediário do agente sendo compilado. Ele é composto basicamente por métodos para a criação de tipos específicos de nodos, cada um representando um componente lógico da definição de um agente. Estes nodos podem ser vistos na Figura 17 e são todos derivados de uma classe comum, chamada de Node, que contém as funcionalidades referentes a estrutura básica da árvore sintática. Ao final do