Informática
Bernardo Parente Coutinho Fernandes Toninho – nº17366 29 de Dezembro de 2006
Resumo
Este trabalho tem como objectivo a implementação de um compilador e de um interpretador para uma linguagem de programação orientada por objectos, tipificada, denominada de TyPO. Este relatório pretende tornar explícitos os pormenores implementacionais da linguagem assim como os modos de utilização das aplicações desenvolvidas. Este trabalho foi desenvolvido na sua vertente Avançada.
Índice
Introdução Análise Sintáctica
– –
Pág. 1 Pág. 2 Pág. 4 Pág. 11 Pág. 13 Pág. 27 Pág. 37 Pág. 55 Pág. 56 Pág. 56 Pág. 64 Pág. 123 Pág. 132 Pág. 133 Pág. 136 Pág. 137 Pág. 139
Construcção das ASTs Rearranjos sintácticos
Interpretação Sistema de Tipos Compilação Manual de Utilizador das Aplicações Código Fonte
– – – – – – –
Analisador Sintáctico Classes Java CodeSeq Ambiente de Compilação Ambiente de Interpretação Interpretador Compilador
Ambiente de Suporte à Execução
Introdução
Este trabalho propõese à implementação de um interpretador e um compilador para uma linguagem tipificada, orientada por objectos, com classes, funções e procedimentos de primeira ordem, chamada TyPO. Esta linguagem tem um fragmento imperativo, chamado TyPI, que permite manipulação explícita de variáveis, registos, arrays, strings, inteiros e booleanos (tudo elementos de primeira ordem). Relativamente ao pedido no enunciado, foi efectuado o trabalho para a sua cotação máxima, ou seja, na sua vertente Avançada, que inclui todos os aspectos referidos anteriormente. No que diz respeito à verificação dos tipos da linguagem, ela é efectuada estaticamente, sendo que as declarações, arrays, funções, procedimentos e classes necessitam de ter o seu tipo explicito. A síntaxe destas operações será