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” só 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ícios: segunda. 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.
Há 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. Aí 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