Material de Aula
Preferencialmente,
pegue todo o material
necessário à disciplina
de uma só vez: TUDO.
Ao descomprimir este arquivo, que se chama lc.zip, serão criados os seguintes diretórios: examples, krakatoa, ktests e t. O diretório examples
possui exemplos de tradução de Krakatoa para C. O
diretório krakatoa possui o compilador fornecido pelo professor. O
diretório ktests contém os 204 testes (por enquanto)
para o compilador. O diretório t possui dois arquivos bat
para testar o compilador. Para testar o seu compilador, execute ONLY-ER-Trab01.BAT
para chamar o seu compilador com todos
os arquivos contendo erros e ONLY-OK.BAT para chamar o compilador com todos os
arquivos que não contém erros. ONLY-ER-Trab01.BAT é o
arquivo para o trabalho 1. Haverá um ONLY-ER-Trab02.BAT para o trabalho 2. Daqui
a algumas semanas disponibilizaremos um programa que o auxiliará a compilar e
verificar se a geração de código está correta.
Explicações:
Para fazer
os trabalhos, utilize o Guia de Correção dos Trabalhos
e o site How
to Write Unmaintainable Code.
Disponibilizamos um analisador sintático
de Krakatoa que
faz quase toda a análise
sintática e constrói a parte
da ASA correspondente
às expressões. Contudo, variáveis e
métodos estáticos de Krakatoa não estão incluídos
neste analisador.
Há testes para o analisador léxico,
sintático e semântico.
Um teste
chamado er-sin04.s contém um
erro e testa
o analisador sintático. É o quarto
teste deste tipo.
Da mesma forma,
um teste ok-lex03.s testa o
analisador léxico, não
contém um erro
(está ok) e é o terceiro
teste deste tipo.
Alguns números de testes estão ausentes. Por exemplo, não temos (provavelmente
!)
ER-SEM01.KRA. Os
arquivos ok-ger*.kra são
utilizados para testar a geração de código. Veja na descrição do primeiro
trabalho como são estes arquivos.
Dúvidas sobre
Orientação a Objetos que
inevitavelmente ocorrerão poderão ser
sanadas lendo-se o “manual” Object Oriented Programming. Este manual
não foi corrigido e certamente possui alguns erros. Mas
mesmo assim deve ser bastante útil.