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 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ícios: segunda. 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. 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