3ª parte do projeto - construção de um reconhecedor sintático
Aggregazione dei criteri
Aperto: giovedì, 20 ottobre 2016, 00:00
Data limite: martedì, 1 novembre 2016, 23:55
Checklist para entrega (itens que serão avaliados):
Entregar arquivo comprimido (zip) com documento PDF com questões respondidas, arquivo README.txt com instruções de compilação e diretório com código do compilador.
- Preparar um relatório conciso da implementação do analisador sintático, contendo os seguintes itens:
- Introdução (explicar qual é o papel de um analisador sintático em um compilador);
- Lista de submáquinas do APE (as submáquinas são geradas em http://mc-barau.herokuapp.com/):
- Lista de transições (para cada submáquina, apresentar a saída gerada pelo aplicativo acima);
- Lista de autômatos (utilize o JFLAP - http://www.cs.duke.edu/csed/jflap/ para gerar um autômato para cada submáquina gerada no aplicativo acima).
- Comentários sobre a implementação (explicar como o analisador sintático foi implementado e integrado ao compilador).
- Implementação:
- Cada transição do analisador sintático (consumindo tokens ou empilhando/desempilhando submáquinas) deve estar mapeada à chamada de uma função void semantico_tbd que imprime "TODO\n". Encare esta função como um trigger das transições do APE;
- A saída do analisador sintático, neste momento, será uma sequência de "TODO"s impressos no console conforme as transições do APE ocorrem;
- Implemente um autômato similar ao que foi implementado no Analisador Léxico, mas com a habilidade de empilhar/desempilhar outros autômatos (este será o Autômato de Pilha Estruturado).
- Junto de todas as entregas, devem ser apresentadas as instruções para compilação do compilador com GCC.
Apenas um aluno da dupla precisa entregar.
Tenham cuidado com o prazo. Haverá desconto de 10% da nota para cada dia de atraso na entrega (com limite de no máximo 2 dias de atraso).