Últimas notícias
24 de Junho
(19h)
No terceiro trabalho, pode-se
considerar que apenas os caracteres A-Z e a-z podem ser inseridos pelo comando “add”.
Isto simplificará um pouco o trabalho.
24 de Junho
Em relação ao terceiro trabalho,
entregue apenas o código que VOCÊ fez. Não me interessa o código produzido pelo
CUP/JLex. Não se esqueça das classes da ASA.
Os alunos Rodrigo Scoralick Murta e
Flávio Augusto devem me procurar para comentar a revisão da primeira prova. Eu
fiquei de aumentar a nota destes dois alunos e preciso de alguns
esclarecimentos a respeito das provas.
Eu não estarei na minha sala na
maior parte da Quarta feira. Mas com certeza estarei depois de 17:40-18h.
Ficarei enquanto houver alunos com dúvidas a respeito da matéria da prova.
23 de Junho
(16:30)
Acrescentei o item d)
na matéria da prova. Veja abaixo.
23 de Junho
A matéria da prova da segunda prova
é:
a)
capítulos 1, 4 e 7 da apostila antiga (em Português);
b)
gramáticas e analisadores LR(0);
c) capítulo
9 da apostila. Este capítulo requer alguns conhecimentos do capítulo 8.
d)
expressões regulares (ER), a representação gráfica de ER e a implementação de
ER em Java.
Os itens a)
e b) devem valer entre 11 e 12 pontos na prova. O item c)
entre 1 e 2 pontos. É possível que caia alguma questão extra (mais extra ainda)
baseada no site
http://www.gimpel.com/html/bugs.htm
mas não
tenho certeza (não fiz as provas).
Quanto às gramáticas LR(0), só poderei pedir conceitos e exercícios bem básicos, já
que não estudamos estas gramáticas em profundidade.
CUP e JLex
não caem. Mas expressões regulares podem cair.
10 de Junho
As notas do segundo trabalho já
estão disponíveis.
9 de
Junho
Não teremos aula dias 10 e 12 de
Junho.
6 de
Junho
Modifiquei ligeiramente o terceiro
trabalho. Agora, os comandos possuem mais de uma letra. Assim, o comando ‘a’
agora se chama “add”.
23 de Maio
(20h)
A questão 6
da prova da turma de Quinta foi tirada da página
http://www.gimpel.com/html/bugs.htm
Vale a pena
olhar TODOS os erros que ela apresenta.
23 de Maio
Os trabalhos
extras já estão disponíveis.
Na definição do trabalho 2, há uma observação sobre o comando foreach:
o comando “foreach” do exemplo acima percorre o vetor associando cada
elemento à variável x. Assim, todos os elementos do vetor v são impressos na
saída padrão;
Então,
foreach x in v do
comando
deve
geral em C algo do tipo
for ( ... ) {
x = v[i];
comando
}
O que torna
errado utilizar o comando foreach para ler os elementos de um vetor, por
exemplo.
20 de Maio
Havia dois erros no manual citado no
dia 19/05 que foram corrigidos.
A data de entregue do segundo
trabalho foi adiada para o dia 30 de Maio. O terceiro trabalho deverá ser
entregue até o dia 27 de Junho.
19 de Maio
Veja em Apostila e artigos um pequeno manual de como
converter expressões regulares em autômatos finitos.
O terceiro trabalho já está
disponível.
15 de Maio
No dia 12 de Maio, escrevi que uma
conferência semântica foi esquecida na definição do trabalho 2:
- se os
operandos de uma expressão são compatíveis com o operador. Ex: (+ (> 4 5)
2) está incorreto.
Esqueça esta conferência. Não temos o tipo
boolean nesta linguagem. Comparações resultam em inteiros. Assim,
(+ (> 4 5) 2)
está
correto e resultaria em (+ 0 2), que é 0.
14 de Maio
As observações sobre a apostila
continuam muito genéricas. Elas falam em “deveria existir exemplos de geração
de código” e “A ASA deveria ser melhor explicada” sem
dizer onde na apostila eu deveria modificar. Fico sem saber onde, já que há
exemplos de geração de código na apostila e a ASA é explicada em detalhes.
Por favor, mandem-me os trabalhos
extra e as observações sobre a apostila em formato TEXTO (.txt).
13 de Maio
(17h)
A prova da turma A feita hoje já
está na lista de provas deste semestre. Com a resolução (parcial).
12 de Maio
(19h)
O trabalho
extra poderá ser entregue até às 11 horas da próxima Segunda feira, dia 19.
12 de Maio (14h)
No segundo trabalho, pode-se ter comentários começados por #. Isto foi
acrescentado alguns dias depois de eu ter colocado o
trabalho na página.
Há um erro no exemplo dado no
trabalho dois: a declaração de um vetor deve ser
var v : integer[] = { 2, 3, 5, 7, 11, 13, 17, 19 }
e não
var v : []integer = { 2, 3, 5, 7, 11, 13, 17, 19 }
como está
na página.
Uma conferência semântica foi
esquecida na página:
- se os
operandos de uma expressão são compatíveis com o operador. Ex: (+ (> 4 5) 2) está incorreto.
9 de Maio
Poucas pessoas me enviaram
observações sobre a apostila. E mesmo assim as observações têm sido muito
genéricas como “deveria haver explicações mais detalhadas”. Não diz aonde as
explicações deveriam melhorar. Seja bem específico, citando
a página e o parágrafo a que você se refere.
7 de Maio
Grupos de até duas pessoas poderão
fazer um trabalho que valerá até 10
pontos a serem acrescentados na nota da primeira prova. Este trabalho será
avaliado com o seguinte critério: se ele for bom, valerá 1
ponto. Se for muito bom, valerá 2 pontos. Se for muito muito bom, valerá 3. Se for muiton bom,
valerá n+1 pontos, até um máximo de 10.
Um trabalho muiton bom deve ser 10 vezes melhor do que um muiton-1
bom. Ou seja, a sua nota vale log10E, onde E é a excelência do
trabalho. A descrição do trabalho está aqui. Os
trabalhos deverão ser enviados a mim até o dia 13 de Maio às 18 horas por
email. No subject da mensagem, coloque “cc03”, sem as aspas. Colocarei os
melhores trabalhos na página da disciplina. Se você não quiser que o seu nome
apareça, deixe isto claro no seu email.
28 de Abril
Um bom livro de Java acabou de ser
lançado:
Carlos Camarão e Lucília
Figueiredo. Programação de Computadores em Java. LTC, 2003.
O livro
possui uma página em
http://www.dcc.ufmg.br/~camarao/ipcj
Há
transparências para parte do livro.
24 de Abril
Não pude resistir: vejam esta piadinha. Não se ofendam.
11 de Abril
Um guia de pronúncia das palavras em
Inglês mais comuns no curso já está disponível na página Pronúncia em Inglês.
Eu pedi a vocês que fizessem
observações sobre o que poderia ser melhorado nas apostilas deste curso. Estou
aguardando o retorno.
Já temos uma nova lista de exercícios, a terceira. Ela trata dos compiladores 8,
9 e 10, mas muitas perguntas se aplicam também aos compiladores anteriores.
Há um novo IDE para Java em http://www.netbeans.org/. Não o conheço,
mas foi bem recomendado. E é grátis, sem restrições.
7 de Abril
O trabalho dois já está disponível.
Notem que a folha de capa para ele é diferente da capa para o trabalho 1.
1 de
Abril
Dêem uma olhada na linguagem Whitespace. O próximo
compilador será feito nesta linguagem e não em Java. É bom começar a aprendê-la
desde já.
31 de Março
Dêem uma olhada nestes velhos
programas em C:
Este programa
compilava em um antigo compilador Borland.
27 de Março
Pegue a definição do primeiro trabalho de 2002 e faça o item c) deste
trabalho até a próxima aula. Não utilize o computador, faça apenas em papel.
26 de Março
Fiz pequenas modificações nos
compiladores disponíveis na página. Quem baixou os compiladores qualquer dia
antes de 26 de Março deve baixá-los novamente. Apesar das modificações serem
minúsculas, seria bom que todos tivessem exatamente as mesmas versões dos
compiladores.
A apostila “Learning Compiler
Construction by Example” já está disponível. Veja a observação sobre ela no dia
25 de Março.
25 de Março
Eu deixei no Xerox da Produção duas
apostilas: “Construção de Compiladores” e “Learning Compiler Construction by
Example”. Esta última não está completa. Farei algumas modificações nas últimas
páginas e a apostila completa deve estar disponível até Quinta. Quem já
imprimiu esta apostila terá que reimprimir todas as páginas entre 20 e 29.
Modifiquei os compiladores que estão
disponíveis na página. Quem baixou os compiladores antes do dia 24/03 deve
baixá-los novamente.