Especificação do Terceiro Trabalho - CI211 - 2018/1

Prof. André Luiz Pires Guedes
Maio de 2018

Objetivo: Contruir um compilador para a linguagem Tiger-- usando lex e yacc (ou flex e bison).

A linguagem Tiger-- é um subconjunto da linguagem Tiger, definida no livro Modern Compiler Implementation in C de Andrew W. Appel. Disponível em http://www.cs.princeton.edu/~appel/modern/.

Entrada: um arquivo texto

Saída: A árvore de derivação. Caso a entrada não seja um programa válido, escrever algo que indique isso, dizendo o motivo (mensagem de erro correspondente).

A árvore de derivação deve ser escrita na saída padrão. O formato é simples, cada nó é a raíz de uma sub-árvore. As sub-árvores filhas de um nó estão entre chaves ("{" e "}") e separadas por vírgulas. Espaços em branco podem ser usados para identação, mas não são obrigatórios. Os símbolos devem ser os usados na gramática escolhida. Símbolos terminais não tem sub-árvores.

  <SÍMBOLO> {
    <SUB-ÁRVORE>,
    <SUB-ÁRVORE>,
    ...
    <SUB-ÁRVORE>
  }

Execução do Programa: Entrada padrão e saída padrão. (Filtro)

Nome do executável: tc--

Arquivos: Makefile, fontes (lex e yacc) e um relatório, tudo dentro de um tar.gz com o nome do seu login. Ao descompactar deve ser gerado um diretório com o mesmo nome base do tar.gz entregue.

Correção:

Outras referências para a linguagem //Tiger//: