Material de Aula

 

Você precisará tirar xerox ou imprimir todos os textos dados abaixo, com exceção do Guia de Programação e Guia de Correção dos Trabalhos (opcionais). Note que as páginas do livroModern Compiler Design estão disponíveis no xerox. Todos os textos abaixo, com exceção dos guias, estão na pasta Compiladores do xerox.

  • Apostila “Learning Compiler Construction by Examples (estudo dos exemplos dados em aula). Os apêndices são o código dos compiladores 6, 7, 8, 9 e 10. Muitos acharão desnecessário imprimir estes apêndices, que tomam  aproximadamente 120 páginas da apostila;
  •  Apostila antiga, que contém o material dos dois últimos meses de curso. Talvez não haja tempo para estudarmos otimização de código;
  • Listas de exercíciossegunda. A primeira e a terceira lista, presentes nos anos anteriores, foram incorporadas à apostila “Learning Compiler Construction by Examples”;
  • Mini-manual sobre o método LR(0) de análise ascendente. Deve ser utilizado com páginas 150-165 do livro
    Dick Grune, Henri E. Bal, Ceriel J. H. Jacobs, and Koen G. Langendoen. Modern Compiler Design. John Wiley & Sons, 2000;
  • Guia de Programação (antigo, mas ainda vale a pena lê-lo);
  • Guia de Correção dos Trabalhos.

 

Compiladores

 

Estão disponíveis 21 compiladores exemplo. Para simplificar a programação e fazê-la didática, nem todas as possibilidades de erro foram testadas.

 

O compilador Comp11 imprime, junto com a saída em C, quais os métodos da análise sintática são chamados e quais as operações são feitas na ASA. Veja a saída do compilador 11 para um programa exemplo.

 

Os itens a seguir são referências ao JLex/CUP e Java. Você não necessariamente precisa imprimir/baixar este material. Em particular, os alunos de Construção de Compiladores 1 verão o CUP/JLex (ou algo equivalente) apenas no segundo semestre.

 

Veja este site:     http://www.gimpel.com/html/bugs.htm

Ele contém erros em programas em  C/C++. Super interessante.

 

Se quiser saber mais sobre experiências obtidas ao fazer o compilador da linguagem Green, leia o artigo

 

Guimarães, José de Oliveira. Experiences in Building a Compiler for an Object-Oriented Language. SIGPLAN Notices, Vol 38, No. 4, p. 25-33, April 2003.

 

            Há alguns sites na Internet que descrevem/explicam formatos de arquivos .obj. estão eles:

      http://www.sankhya.com/articles/0002.html 

                 descreve o formato ELF (Executable Linking Format), usado no Linux e Unix

      http://www.osdever.net/documents/PECOFF.pdf?the_id=49

                 descreve o formato usado pela Microsoft

      http://www.sankhya.com/articles/0002.html

                 introdução a arquivos objeto