Compiladores/Projecto de Compiladores/Compiladores Exemplo: Difference between revisions

From Wiki**3

< Compiladores‎ | Projecto de Compiladores
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{PRJCompiladoreAvisosEN20162017}}
#REDIRECT [[ist:Compiladores/Projecto de Compiladores/Compiladores Exemplo]]
{{PRJCOMandatory20162017}}
{{TOCright}}
<!--'''<font color="red">A DISPONIBILIZAR BREVEMENTE</font>'''-->
 
== Compiladores "Simple" e "Compact" (descontinuado) ==
 
O compilador Simple exemplifica a utilização das bibliotecas de apoio. Este compilador suporta expressões básicas com inteiros, permite apresentá-los na saída e permite obtê-los a partir do utilizador. Permite ainda a apresentação de cadeias de caracteres.
 
Apesar de permitir estruturas de controlo, tais como ciclos while e instruções if-then-else, não permite a definição de funções e todas as variáveis são obrigatoriamente inteiras e globais.
 
O compilador faz 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-201602111900.tar.bz2]] --> (a disponibilizar)
 
A definição da linguagem Simple pode ser obtida por inspecção do código, especialmente estudando o léxico e a gramática.
 
=== Compilador "Compact" (descontinuado -- utilizar o "Simple") ===
 
O compilador Compact suportava uma versão primitiva da linguagem Simple, em que não havia necessidade de verificação de tipos, pois não era possível misturá-los. Esta opção, embora funcional, não é a mais elegante/flexível e foi removida no compilador Simple. Como consequência, em Simple é necessário verificar a coerência dos operadores e dos seus operandos relativamente aos tipos. Além disso, em Compact a atribuição era 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.
 
{{Aviso|O código do compilador Compact já não se encontra disponível a partir da CDK12.}}
 
== 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-201602111900.tar.bz2]] --> (a disponibilizar)
 
Aconselha-se a consulta do [[Postfix Reference Guide|manual de referência da linguagem Postfix]].
 
[[category:Projecto de Compiladores]]
[[category:Compiladores]]
[[category:Ensino]]

Latest revision as of 18:38, 6 December 2018