MC011 - Laboratório de Compiladores
Primeiro semestre de 2009
Turmas
A e B
Avisos |
---|
03/07 |
As notas do terceiro trabalho estão disponíveis aqui, já estando descontados os 20% para as entregas em atraso e calculadas as médias finais. |
30/06 |
As notas do segundo trabalho estão disponíveis aqui, já estando descontados os 20% para as entregas em atraso. |
17/06 |
AVISO IMPORTANTE: Entrega do Trabalho 3
Devido ao adiamento da data de entrega e visando acelerar a entrega das notas no término do semestre, a entrega 3 será feita em um formato diferente das anteriores. Os projetos serão avaliados através de uma demonstração de no máximo 10 min feita por cada grupo. Nessa demonstração, os alunos explicarão como foi feita a implementação e rodarão um exemplo de programa, mostrando o efeito da aplicação de seu algoritmo de constant propagation. Todos os grupos demonstrarão seus projetos no dia 1/07, durante o horário da aula ( a partir das 13h). Olharei os projetos na ordem de cadastramento dos grupos. É obrigatória a presença de todos os integrantes do grupo para evitar penalidades na nota. Grupos que não demonstrarem seus trabalhos nessa data, poderão demonstrar o trabalho no dia 3/7 as 10h na sala 42 do IC-2, com penalidade de 20% da nota. Não serão aceitas demonstrações após essa data. Para esta etapa, não há necessidade de elaborar um relatório por escrito. |
03/06 |
Os questionários para avaliação de cursos estão disponíveis hoje na sala 302 durante o horário da aula. |
26/05 |
Dia 27/5 não poderei comparecer no horário de laboratório. Em caso de dúvidas, os alunos podem me procurar na sexta-feira. Os interessados podem marcar por email o horário para o atendimento. |
20/05 |
As notas do primeiro trabalho estão disponíveis aqui, já estando descontados os 20% para as entregas em atraso. |
20/05 |
Alguns alunos relataram ter problemas para montar o assembly gerado pelo compilador minijava no Nasm versão 2.03. Tente usar versões mais recentes. |
20/05 |
Atendendo a pedidos de vários alunos, submissão sem penalidades pode ser feita até as 23:59h do dia 22/05. O trabalho será aceito com penalidade de 20% na nota até segunda (25/5) as 23:59h. Não serã aceitas submissões após essa data. O projeto 3 poderá ser submetido até dia 1/7, sem possibilidades de novos adiamentos. |
19/05 |
A submissão deve ser feita nos mesmos moldes do projeto 1. Um pacote por grupo, com script para compilação e execução e um pequeno relatório. O relatório deve conter um resumo da sua implementação, com as informação mais relevantes e problemas encontrados, principais padrões de instruções que você escolheu incluir, etc. O ideal é não passar de 5 páginas. A submissão pode ser feita até as 23:59h do dia 20/05. O trabalho será aceito com penalidade de 20% na nota até sexta (22/5) as 23:59h. Não serã aceitas submissões após essa data. |
07/05 |
Dia 13/5 não haverá aula de laboratório. Dia 20/5 a aula será iniciada as 13h30 na sala 301 para apresentação do projeto 3. |
07/05 |
Estou disponibilizando uma documentação sobre o pacote do Appel escrito por um antigo monitor de MC011. Pode ajudar a entender a estrutura de classes e os métodos existentes. Faça o download aqui. |
22/04 |
Instruções para compilação e execução no Linux dos programas de teste usando seu compilador para o Projeto 2: java main.Main < #arquivo de teste# nasm -felf minijava.asm gcc runtime.o minijava.o ./a.out. Notem que runtime.o é obtido pela compilação da biblioteca de runtime que está no diretório runtime do pacote( gcc -c runtime.c). |
14/04 |
A aula de 15/4 será iniciada as 13h30 na sala 301 para a apresentação do projeto 2. |
07/04 |
Instruções sobre entrega Projeto 1: As entregas deverão ser feitas por email para o professor com o subject [MC011] Grupo X. Onde X é o número de cadastro de seu grupo no site. É importante que seja entregue um pacote completo (TAR ou ZIP) contendo o compilador completo e um arquivo README, que será o relatório (máximo desejado de 2 páginas). No relatório é importante a descrição de eventuais problemas de implementação, bugs conhecidos, etc. Também deve conter uma explicação de como foi resolvida a detecção de herança cíclica, se o grupo inclui recuperação de erros no compilador e qualquer outra característica que tenha implementado a mais do especificado.
É muito importante o pacote conter um mecanismo fácil e claro (script, makefile, etc) de compilar o pacote e executar a compilação de um programa no seu compilador, visando tornar mais completo e agilizar a correção, sendo também considerado na nota final. Fique atento que o compilador será corrigido sendo invocado pela LINHA DE COMANDO em linux. Os usuários de Eclipse ou outro ambiente devem se certificar que o compilador funciona corretamente desta maneira antes de submetê-lo, caso estejam invocando sua execução de dentro de um ambiente de desenvolvimento e/ou em windows. |
06/04 |
Como nos dois últimos finais de semana houve interrupção de energia na Unicamp, vou adiar a entrega sem penalidades do Projeto 1 para segunda 13/4. O trabalho será aceito, com penalidade de 20% na nota, até quarta dia 15/4. Após essa data não serã aceitas mais entregas. |
01/04 |
Volto a lembrar que obrigatório o cadastramento dos grupos ANTES da data de submissão, mesmo os que decidiram por grupos de apenas 1 integrante |
20/03 |
Vários alunos me procuraram para relatar dificuldades em trabalhar no projeto usando Eclipse. Segue abaixo instruções que me foram enviadas pelo colega Alexandre Hirata e estou compartilhando com vocês:
No Eclipse, após criar um projeto java e extrair o conteúdo de mc011_proj1.tgz para a pasta do projeto, entre no terminal e vá até a pasta do projeto e crie um JAR a partir do pacote minijava: jar -cf minijava.jar minijava/ Voltando ao Eclipse, clique com o botão direito no ícone do projeto (menu de navegação à esquerda) e selecione "Properties". Selecione "Java Build Path" e clique na aba "Libraries". Feito isso, clique em "Add JARs" e selecione o arquivo minijava.jar recém-criado. Com isso, o Eclipse consegue encontrar as dependcias com os *.class. |
16/03 |
É obrigatório o cadastramento dos grupos ANTES da data de submissão. |
16/03 |
Foi liberado o formulário de cadastro para os grupos de MC011. Cadastre seu grupo aqui |
16/03 |
Ainda sem dupla? Consulte a lista com outros alunos procurando formar uma dupla aqui |
04/02 |
Mais um link para ajudar a entender o padrão de visitors, usado pelo Appel no analisador semântico: http://en.wikipedia.org/wiki/Visitor_pattern |
04/02 |
É importante a leitura dos capítulos 4 e 5 para a elaboração do projeto 1. O capítulo 4 tem uma explicação sobre os métodos visitors usados no analisador semântico e sobre a representação intermediária dos programas. |
04/02 |
Primeira aula, explicação de como funcionará a matéria e apresentação do primeiro projeto |
04/02 |
Os alunos deve se dividir em duplas para a realização do projeto, ou fazê-lo de forma individual. |
Turmas A e B: Quartas: 14:00 - 16:00 Sala: IC-302 |
Professor: Sandro Rigo | |||
A implementação será dividida em três partes :
|
||||
Bibliografia |
---|