Método Prático de Geração de Avaliadores de Atributos em um Passo
Autores
3083 |
Edmar Wienskoski Júnior
|
1409,16,104
|
3084 |
1409,16,104
|
|
3085 |
1409,16,104
|
Informações:
Publicações do PESC
Trata-se da construção de uma ferramenta sob a forma de um gerador de programa avaliador de atributos.
A partir da descrição sintática e semântica da linguagem alvo, esta ferramenta irá gerar duas saídas: a lista das produções da linguagem alvo no formato exigido pelo gerador R% desenvolvido por J. L. Rangel e S. M. Schneider, e o avaliador de atributos escrito na linguagem Pascal.
Para o analisador sintático do compilador alvo, o método adotado deriva do LR e se chama R%. Para formar o avaliador de atributos, definimos uma gramática de atributos que deve ser avaliada em um percurso da árvore de derivação da esquerda para a direita como proposto por G. V. Bochrnann.
A descrição da linguagem alvo deve ser feita através de uma linguagem criada para este fim, chamada LINDA (LINguagem de Descrição de Atributos). Esta tese descreve a sintaxe e o uso desta linguagem, descreve ainda uma implementação do compilador LINDA e detalha o desenvolvimento de um compilador exemplo usando a linguagem LINDA.
This thesis describes the construction of a tool, a program generator of attribute evaluators.
Starting from a description of the syntax and semantics of the target language, this to01 generates two outputs: The list of target language productions in RmS generator format and the attribute evaluator program, written in Pascal. The RmS generator was developed by J. L. Rangel and S. M. Schneider.
The syntactic analysis of the target compiler follows a method derived from the LR parsing, named R%, and for attribute evaluation, we define an attribute grammar to be evaluated in one pass over the parse tree, from left to right as proposed by G. V. Bochmann.
The description of target language will be done in a specific defined language, named LINDA (Attribute Description Language). This thesis describes that language, a LINDA compiler implementation and the development of a compiler-example using the LINDA language.