Compiladores/Projecto de Compiladores/Compiladores Exemplo: Difference between revisions
From Wiki**3
| Line 22: | Line 22: | ||
<!-- | <!-- | ||
{{Aviso|Note-se que a compilação de algumas versões do compilador Simple num ambiente que não o recomendado pode requerer a pré-instalação dos pacotes relativos ao LLVM. O ambiente recomendado já contém todas as dependências necessárias.}}--> | {{Aviso|Note-se que a compilação de algumas versões do compilador Simple num ambiente que não o recomendado pode requerer a pré-instalação dos pacotes relativos ao LLVM. O ambiente recomendado já contém todas as dependências necessárias.}}--> | ||
== Compilador "pf2asm" == | == Compilador "pf2asm" == | ||
Revision as of 18:05, 6 February 2020
| AVISOS - Avaliação em Época Normal |
|---|
|
Esclarecimento de dúvidas:
|
|
Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Compiladores):
|
|
Processo de avaliação (ver informação completa em Avaliação do Projecto):
|
| Material de Uso Obrigatório |
|---|
| As bibliotecas CDK e RTS de apoio ao desenvolvimento do projecto são de uso obrigatório: |
|
| A máquina virtual, fornecida para desenvolvimento do projecto, já contém todo o material de apoio. |
| Uso Obrigatório: Repositório GIT |
| Apenas se consideram para avaliação os projectos existentes no repositório GIT oficial. Apenas se considera para avaliação o ramo main.
Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho. |
Compiladores "Simple" e "Compact"
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: media:simple-202002022020.tar.bz2 (esta versão não inclui suporte para LLVM)
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 "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:
Compilador GR8
O compilador GR8 foi desenvolvido em 2018 sobre a CDK13, continuando dependente dela. A implementação está incompleta em algumas partes e deixa-se como exercício a sua adaptação para novas características e suporte para CDK14. Note-se que a CDK13 tinha algumas especificidades que foram removidas de versões subsequentes. Recorda-se que em 2018-2019 é obrigatório o uso da CDK14. Esta implementação é compatível com a RTS4.
- Especificação da linguagem GR8
- GR8 - implementação (incompleta) media:gr8-201903091158.tar.bz2
- CDK13 - "Compiler Development Kit" media:libcdk13-201802181144.tar.bz2
- RTS4 - "Run Time System" media:librts4-201602111900.tar.bz2