Last modified: Fri Aug 11 15:46:04 BRT 2000
Página principal de MAC 410 -- Introdução à Compilação.
Notas
As notas do projeto foram publicadas. Pode-se
ainda verificar mais detalhes sobre os critérios
de correção que foram utilizados na correção do projeto.
As notas da P2 e as notas finais saem
na segunda dia 14/8. Todos foram bem na prova.
Quem não foi aprovado em projeto deve reapresentá-lo
pessoalmente no dia 25/08 às 10hs na minha sala, como recuperação.
Entrega final do projeto
Dia 28 de julho de 2000.
Arquivos com testes
Pode-se pegar um arquivo com testes que serão
aplicados no projeto. O referido arquivo também inclui um runtime.s
com o qual ser linkado e vários scripts interessantes.
Classe Set
Há uma nova versão do arquivo fornecido da fase do
capítulo 6 que inclui também a classe Set referenciada na classe TempSet.
Entregas das fases do projeto
Fase do capítulo 9: 26/05/00 (em dupla)
Fase do capítulo 7: 12/05/00 (em dupla)
Fase do capítulo 6: fase fornecida. Pode requerer modificações!!!
Fase do capítulo 5: 07/04/00 (em dupla) adiado para 12/04/00
Fase do capítulo 4: 24/03/00 (já pode ser feito em dupla)
Fase do capítulo 3: 17/03/00 (individual)
Fase do capítulo 2: 03/03/00 (individual)
Exemplos de compilação de C pra MIPS
Adequado pra
entender melhor o capítulo 6 e 7. Permite observar como o gerenciamento das
páginas de ativação é feito e como alguns comandos em C geram instruções MIPS
(que não será muito diferente das Representações intermediárias).
Prova do dia 27/04
A prova do dia 27/04 contará de questões do nível das questões da
seguinte lista de exercícios:
Todos os exercícios dos capítulos II e III exceto:
- ítem g do exercício 2.1
- exercício 2.10
- exercício 3.2
Página do Livro texto
Como visto, o curso segue o livro Modern Compiler
Implementation in Java de Andrew W. Appel. Na referida página
encontram-se vários arquivos e informações referentes ao projeto desenvolvido
no livro e em nosso curso.
Entrega eletrônica de trabalhos na panda
Deve ser feita diretamente em http://panda.ime.usp.br seguindo Entrega
eletronica de trabalhos. O aluno deve inscrever-se na disciplina Introdução à
Compilação com o professor Alair.
Pode ser feito um upload de um único arquivo. Caso se queira fazer um
upload de mais de um arquivo, deve-se usar o tar e compactar.
Lista de discussão da disciplina
Deve ser feita mandando um email
para alair-mac410-subscribe@linux.ime.usp.br. O sistema subescreve à
list o email do remetente da mensagem.
Instalação do JLex e Cup
Quem quiser, pode instalar as versões disponíveis do JLex
(1.2.4) e do java_cup
(0.10j) em seu computador pessoal. Para
isto siga com detalhes as instruções presentes às páginas
http://www.cs.princeton.edu/~appel/modern/java/JLex/
e
http://www.cs.princeton.edu/~appel/modern/java/CUP/.
Em particular, nestas páginas também se encontram os manuais destes dois
programas http://www.cs.princeton.edu/~appel/modern/java/JLex/current/manual.html
e http://www.cs.princeton.edu/~appel/modern/java/CUP/manual.html.
Arquivos do projeto
O autor do livro já fornece vários arquivos auxiliares à confecção do projeto.
Estes arquivos podem ser encontrados em
http://www.cs.princeton.edu/~appel/modern/java/project.html
e ainda em
http://www.ime.usp.br/~alair/mac410/tiger.tar.gz.
Deve-se abrir o arquivo
tiger.tar.gz
fornecido com o comando
tar xvzf tiger.tar.gz
(sem o z
) caso a versão seja tiger.tar
)
Para entregar as fases relativas aos capítulos
Para entregar a fase relativa ao capítulo 2, por exemplo, deve-se no
subdiretório tiger/chap2
, editar o arquivo
Parse/Tiger.lex
apropriadamente e rodar
make
estando no subdiretório tiger/chap2
. Rode
make -n
para saber que comandos serão executados pelo comando make.
OBS: Uma maneira de se evitar algumas mensagens de erro como
Parse/Main.java:9: Class ErrorMsg.ErrorMsg. ErrorMsg not found in new.
Lexer lexer = new Yylex(inp,errorMsg);
é retirar a linha
import ErrorMsg.ErrorMsg;
do arquivo tiger/chap2/Parse/Tiger.lex
.
alair @ ime . usp . br