Segundo Trabalho de
LC
Prof. José de Oliveira
Guimarães.
Departamento de Computação - UFSCar
Segundo semestre de 2006
Data de entrega: 20 de Novembro até o meio-dia.
Data das entrevistas: 29 (quarta) e 30 (quinta)
de Novembro. (estas datas não
poderão ser alteradas)
Grupos de até duas pessoas.
Descrição do trabalho: incremente o primeiro trabalho para que
ele faça a análise semântica de Krakatoa. O seu
compilador deve passar nos testes semânticos fornecidos na página
Material de Aula. E, naturalmente, em todos
os testes léxicos, sintáticos e de geração de código (embora não se exija que a
geração de código esteja correta, o seu compilador não deve emitir erros nos
arquivos ok-ger*.kra).
Entregue uma listagem
do trabalho juntamente
com a folha
de capa. Trabalhos
sem esta capa
não serão
aceitos. Envie o trabalho zipado por email para
jose@dc.ufscar.br com o subject “LC06”, sem
as aspas. No zip, inclua os .class além dos .java. NÃO
inclua nenhum outro arquivo. Absolutamente
não envie o trabalho
em outro
formato de compressão
que não
seja ZIP. Veja observações gerais sobre todos os trabalhos
na página Trabalhos. E leia as Observações.
Imprima o trabalho
em fonte courier. Assim
podemos ver ser a
tabulação está correta. Para
quem não
sabe, letras em
courier ocupam sempre o mesmo espaço horizontal,
independente do tamanho
da letra. O mesmo
não ocorre com
outras fontes, onde
o “i”, por exemplo,
ocupa menos espaço
do que o “m” e outras letras mais
gordinhas.
Veja a página
Material de aula
para um manual da linguagem Krakatoa. Para fazer os trabalhos, utilize o Guia de Correção dos Trabalhos
e o site How to Write
Unmaintainable Code.
Este compilador deve ter
obrigatoriamente as características
descritas abaixo.
- A classe
principal do compilador
deve se chamar “Comp”. A classe principal é
aquela com o método main.
- O compilador
deve tomar o nome do arquivo
a ser compilado como entrada,
isto é; para chamá-lo, deveremos digitar algo do
tipo
C:\>java –cp c:\krakatoa
Comp.Comp ktests\Hello.kra
“ktests\Hello.kra” é
o arquivo a ser
compilado. O compilador está no diretório c:\krakatoa;
- O compilador
deve produzir como saída um arquivo
texto com nome
igual ao arquivo de entrada.
Este arquivo deve ter
extensão txt e deve ser criado
no diretório corrente. Assim,
ao chamar o seu compilador
usando
java –cp c:\krakatoa Comp.Comp
c:\lc\testes\ok-sin01.kra
o compilador deve produzir um
arquivo ok-sin01.txt no
diretório corrente. Se não
houve erro ao compilar
o programa dado como
entrada, o primeiro caráter
do arquivo de saída (ok-sin01.txt neste exemplo) deve ser
‘0’ (ASCII 48, não ASCII
0). Se houve erro de compilação, o arquivo de saída
deve conter o número da linha
com erro
seguido por espaço em
branco, “:”, espaço em
branco e a descrição do erro,
tudo isso em
uma única linha. Veja um
exemplo de arquivo de saída
produzido quando houve e quando não
houve erro. É necessário emitir apenas e tão somente um único erro. Se
o erro não for no arquivo fonte, como erro de leitura do arquivo de
entrada ou arquivo de entrada inexistente, utilize -1 como número de linha
(veja Comp.java). Após esta linha, coloque a linha do arquivo de entrada
que causou o erro (veja o exemplo).
Imprima estas mesmas informações na saída padrão. Note que o compilador
fornecido já emite erros como pedido. É necessário apenas que você não
modifique o que já está funcionando.
- Faça todos os testes
correspondentes aos possíveis erros
léxicos, sintáticos e semânticos.
Observações gerais sobre
o trabalho:
- qualquer parte
do trabalho poderá ser copiada de qualquer
grupo, desde que
este fato seja escrito
na folha de capa do trabalho.
Trabalhos com um
número significativo de trechos
iguais sem a devida
observação na capa receberão zero. A nota
do trabalho diminui com a quantidade
de trechos copiados. De qualquer forma,
não mais do que
10% do código pode ser copiado, mesmo
com observações na folha
de capa. Estes
10% se referem aos trechos feitos por
você, não
ao total do compilador,
cuja maior
parte foi fornecida na página da disciplina;
- faça o seu trabalho
utilizando corretamente os princípios de orientação a objetos.
Procure o professor em dúvida;
- não serão
aceitos trabalhos
atrasados.