Compiladores/Projecto de Compiladores/Compiladores Exemplo: Difference between revisions
From Wiki**3
< Compiladores | Projecto de Compiladores
Line 24: | Line 24: | ||
O código do compilador Compact pode ser obtido aqui: | O código do compilador Compact pode ser obtido aqui: | ||
* Compact: [[file:compact-201502141815.tar.bz2]] | * Compact: [[file:compact-201502141815.tar.bz2|compact-201502141815.tar.bz2]] | ||
== Compilador "pf2asm" == | == Compilador "pf2asm" == |
Revision as of 17:48, 21 February 2015
A DISPONIBILIZAR BREVEMENTE
Compiladores "Simple" e "Compact"
Os compiladores Compact e Simple exemplificam a utilização das bibliotecas de apoio. Estes compiladores suportam expressões básicas com inteiros, permitem apresentá-los na saída e permitem obtê-los a partir do utilizador. Permitem ainda a apresentação de cadeias de caracteres. Em Compact, as cadeias de caracteres não podem ser utilizadas em expressões (esta restrição não existem em Simple; ver abaixo).
Apesar de permitirem estruturas de controlo, tais como ciclos while e instruções if-then-else, não permitem a definição de funções e todas as variáveis são obrigatoriamente inteiras e globais.
Ambos os compiladores fazem uma gestão básica da utilização de variáveis declaradas (i.e., são declaradas na primeira atribuição).
Compilador "Simple"
O código do compilador Simple pode ser obtido aqui:
- Simple: File:Simple-201502141815.tar.bz2
Compilador "Compact" (obsoleto -- utilizar o "Simple")
O compilador Compact não tem necessidade de verificação de tipos, pois não é possível misturar tipos, pelo que esse código não está presente. Esta opção, embora funcional, não é a mais elegante/flexível e foi removida no compilador Simple, que tem, assim, necessidade de verificar a coerências dos operadores e dos seus operandos relativamente aos tipos.
Note-se que em Compact a atribuição é uma operação e não uma expressão. Em Simple, a atribuição é uma expressão e as noções de left-value e right-value estão definidas de forma mais elegante.
O código do compilador Compact pode ser obtido aqui:
- Compact: File:Compact-201502141815.tar.bz2
Compilador "pf2asm"
O compilador pf2asm permite escrever e compilar directamente código Postfix. É também um exemplo de uso do material de apoio. Este compilador é de utilização opcional (é independente da realização do projecto), mas pode ser útil para a realização de testes de protótipos de geração de código Postfix.
Este compilador pode ser obtido aqui:
- pf2asm: File:Pf2asm-201502141815.tar.bz2
Aconselha-se a consulta do manual de referência da linguagem Postfix: Postfix Reference Guide.