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 ou Construção de Compiladores 2;
- 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 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