Pegue todo o material necessário à disciplina de uma só vez: lc.zip. O conteúdo deste arquivo zip é o seguinte:
1. descrição da linguagem Krakatoa (pdf). Veja alguns sites sobre Krakatoa;
2. o analisador léxico e sintático de Krakatoa, que será descomprimido em um diretório chamado “krakatoa”. Você não começará os trabalhos do zero e sim a partir deste compilador, que faz toda a análise sintática de Krakatoa e constrói a parte da ASA correspondente às expressões. Não retire o compilador deste diretório pois arquivos .bat chamarão o seu compilador e estes assumem que o compilador está exatamente neste diretório;
3. testes para o compilador, que serão descomprimidos em um diretório ktests;
4. guia de Correção dos Trabalhos (html);
5. um artigo descrevendo a geração de Código em C para Krakatoa (pdf) e um texto sobre ponteiros para funções em C;
6. exemplos de tradução Krakatoa->C, que serão descomprimidos para um diretório exemKra2C;
7. o texto Object-Oriented Programming (Guia de Orientação a Objetos, pode ser muito útil para compreender o paradigma e a tradução de código de Krakatoa para C);
8. Extreme Programming (PDF obtido pelo agrupamento de páginas do site Extreme Programming);
9. artigo sobre o compilador da linguagem Green;
10. a apostila de Construção de Compiladores (comp.pdf) que ensina como construir um compilador passo-a-passo utilizando 10 exemplos;
11. arquivos bat para testar o seu compilador, que serão descomprimidos para um diretório chamado “t”. Este diretório possui, por enquanto, um arquivo bat de teste, test-t1.bat, para testar o compilador para o primeiro trabalho;
12. um programa chamado “at” no diretório autoT que é chamado pelo arquivo test-t1.bat. Este programa produz um relatório para o seu compilador em um arquivo chamado “r.txt”;
No diretório ktests, 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 ER-SEM01.KRA.
Opcionalmente, pegue estes textos:
E leia estes sites:
How to Write Unmaintainable Code (se tiver tempo, veja este site. Ele te ajudará a fazer programas melhores).
Roedy Green’s Java & Internet Glossary