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:

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