MC910 - Construção de Compiladores

Segundo Semestre de 2008

Turma A

Aulas Atendimento Avaliação Projetos Links Referências Notas
Avisos

Terça-feira, 09 de dezembro de 2008
As notas e médias finais, considerando o resultado do exame, estão disponíveis aqui. Os alunos que fizeram exame e estiverem interessados poderão ver a prova corrigida dia 10/12(quarta) das 14h00 as 15h00 na minha sala (42).

Sexta-feira, 28 de novembro de 2008
As notas e médias estão disponíveis aqui. Os alunos interessados poderão ver a prova corrigida dia 01/12(segunda) das 10h00 as 11h00 na minha sala (42).

Quinta-feira, 13 de novembro de 2008
O prazo de entrega para o trabalho prático se esgotou em 11/11. Em caso de entregas com atraso que ocorram até hoje as 23:59, o trabalho será aceito com uma penalidade de 25% na nota. A partir deste horário, não serão aceitas mais entregas.

Terça-feira, 11 de novembro de 2008
A Prova 2 de MC-910 no dia 25/11 será na sala CB-06, das 10h as 12h.

Quarta-feira, 05 de novembro de 2008
Não haverá aula de MC-910 no dia 18/11.

Quarta-feira, 05 de novembro de 2008
A matéria a ser cobrada na prova 2 é o conteúdo ministrado em aula dos capítulos 10, 11, 13 e 17 do livro texto.

Quarta-feira, 05 de novembro de 2008
Não se esqueça de testar o seu parser também com programas errados de entrada. Você pode usar os programas de testes fornecidos para inserir erros sintáticos e testar seu parser ou produzir seus próprios programas em minijava.

Quarta-feira, 05 de novembro de 2008
Conforme discutido em sala na aula de 4/11, a entrega do trabalho deve ser feita por email, contendo [MC910] e seu ra no subject. A entrega é composta pelo seu arquivo de entrada do sablecc e um relatório de no máximo 2 páginas comentando eventuais pontos onde seu parser falha, como você implementou os pontos principais da tarefa, tais como:tratamento de if-then e if-then-else, comentários aninhados, e eliminação de eventuais ambiguidades que foram mais trabalhosas. Se você criou algum programa de teste que ache importante para evidenciar alguma funcionalidade do seu parser, submeta-o junto com os outros arquivos.

Segunda-feira, 03 de novembro de 2008
As notas da primeira prova estão disponíveis aqui. Os alunos interessados poderão ver a prova corrigida dia 11/11(terça) das 13h30 as 14h30 na minha sala (42).

Quarta-feira, 08 de outubro de 2008
· Devido à realização do SBES e SBBD na Unicamp, não será cobrada presença obrigatória nas aulas de 14 e 16 de outubro.

Terça-feira, 07 de outubro de 2008
· Algumas seções mudaram de lugar!
· Nova página no ar

Quarta-feira, 20 de agosto de 2008
· Prof. Tomasz Kowaltowsky costuma deixar no xerox do IA uma cópia de seu livro sobre Implementação de linguagens com autorização para que os alunos tirem xerox.
· Bibliografia comentada sobre linguagens formais e autômatos.
· Texto sobre linguagens formais e autômatos escrito pelo Prof. Arnaldo está disponível aqui.. Os capítulos 1 e 3 são interessantes para complementar a teoria do cap. 2 do livro texto.

Segunda-feira, 04 de agosto de 2008
· Página da disciplina no ar. Confira critérios de avaliação e calendário.

Aulas

Turmas A e B
· Quartas: 14:00, sala IC-302

Atendimento


· Ao final das aulas ou em horario de comum acordo agendado por email.

Contato
· Turmas A: Sandro Rigo (sandro AT ic dot unicamp dot br)
· OBS.: Quando enviar um e-mail favor colocar no subject [MC910], caso contrário você corre sério risco de seu email ser filtrado como spam.

Programa

  • Introdução
  • Análise Léxica
  • Análise Sintática
  • Representação Intermediária
  • Registros de Ativação
  • Seleção de Instruções
  • Análise de Longevidade
  • Alocação de Registradores
  • Análise de Fluxo de Dados
  • Coleta de Lixo

Calendário

  • 02/10: Prova 1
  • 28/10: Feriado
  • 11/11: Entrega do Trabalho
  • 20/11: Feriado
  • 25/11: Prova 2
  • 09/12: Exame

Avaliação

Avaliação
A disciplina terá duas provas teóricas e um trabalho prático, onde a média do desempenho será calculada por:
MP = 0,3 * P1 + 0,45*P2 + 0,25*T
Se MP >= 5,0 o aluno aprovou-se. Caso contrário haverá um exame final (EX) e a média final do aluno passará a ser:
MF = (MP+EX)/2

Presença
Será cobrada presença em aula durante todo o semestre.

Fraudes
Qualquer tentativa de fraude nos exames ou nos trabalhos práticos implicará em ZERO no exame ou trabalho correspondente para todos os envolvidos e o cálculo da média passará a ser: M = min(4,0; MP), estando o aluno obrigatoriamente de exame final.

Projetos

Projeto
O trabalho de implementação desta disciplina está descrito no final dos capítulos 2 e 3 do livro texto. Consiste na construção dos analisadores léxico e sintático para a linguagem Minijava, que é especificada no Apêndice A do livro, usando o SableCC. Abaixo você encontra links para o SableCC e programas de teste escritos em Minijava.

Links


SableCC
Programas de Teste

Referências Principais

Notas de Aula

Modern Compiler Implementation in Java
Andrew Appel, 2a Edicão

Compiladores : Princípios, Técnicas e Ferramentas
Aho, Sethi & Ullman

Implementação de Linguagens de Programação
Kowaltowski, Editora Guanabara Dois, 1983.