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 livro “Modern Compiler Design estão disponíveis no xerox. Todos os textos abaixo, com exceção dos guias, estão na pasta Construção de Compiladores (ou Compiladores) do xerox Aquarela (perto da Biblioteca Comunitária).

  • 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. O Capítulo 10 provavelmente não será dado neste curso, mas vocês certamente precisarão dele em Laboratório de Compiladores;
  •  Apostila antiga, que contém o material dos dois últimos meses de curso;
  •  Seria muito interessante que você lesse sobre geração e otimização de código. Veja estes capítulos (mais as figuras) extraídos de uma antiga apostila de compiladores. Esta parte não será exigida neste curso, provavelmente;
  • Listas de exercíciossegunda. A primeira e a terceira lista, presentes nos anos anteriores, foram incorporadas à apostila “Learning Compiler Construction by Examples”;
  • Mini-manual de conversão de expressões regulares para autômatos finitos;
  • 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;
  • Guia de Correção dos Trabalhos.

 

Compiladores

 

Estão disponíveis 20 compiladores exemplo, como projeto para o VisualCafé 4.5.1.

Para simplificar a programação e fazê-la didática, nem todas as possibilidades de erro foram testadas.

 

um novo compilador exemplo: comp11. Ele 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.

 

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