2025/1

Informações gerais da disciplina, bem como links para materiais e etc., estão na página do GitHub.

Sala de aula: ANFI-B; ensalamento


Ferramentas

Analisador léxico: Flex

Analisador sintático: Bison


Avaliação

Nota = Prova 1 * 30% + Prova 2 * 30% + Trabalho * 40%

Datas importantes

  • Prova 1: 29/04
  • Prova 2: 05/06
  • Trabalho: 11/06 até 23h59min

Apresentação do trabalho será obrigatória apenas para quem tirar menos que 70 na média das provas: (P1 + P2) / 2


Conteúdo Teórico (Analisador sintático - parser)

Os capítulos de interesse do livro do dragão (primeira edição) são os seguintes:

  • Cap 4.1 - O papel do analisador sintático (pode ignorar tratamento de erros)
  • Cap 4.2 - Gramáticas Livre de contexto
  • Cap 4.3 - Escrevendo uma gramática (especialmente: eliminar ambiguidade, eliminar recursão a esquerda e fatoração a esquerda
  • Cap 4.4 - Análise sintática top-down (pode ignorar a recuperação de erros)
  • Cap 4.5 - Análise sintática bottom-up (serve mais para ajudar no entendimento geral)
  • Cap 4.7 - Analisadores sintáticos LR (até "contrução de tabelas sintáticas LR canônicas", LALR não será cobrado na prova)

Caso esteja com a segunda edição do livro, aparentemente a única mudança é que o Cap 4.7 foi dividido em dois capítulos: 4.6 e 4.7. No caso, seria o capítulo sobre parsers LR. O que precisa ser estudado é o SLR e LR canônico ( ou LR(1) ), e analisadores de precedência podem ser ignorados.

As principais fórmulas/procedimentos/operações/algoritmos estão disponíveis nesta cheat sheet.

Uma lista de exercícios pode ser encontrada aqui.

Geradores LL(1), SLR e LR(1) podem ser encontrados aqui: jsmachines, github (mesma máquina, porém salvos no github).


Cronograma

Data Aula Descrição
11/03 Aula 1 Introdução
13/03 Aula 2 Analisador léxico (Flex) e sintático (Bison)
18/03 Aula 3 LLVM-IR
20/03 Aula 4 LLVM-IR
25/03 Aula 5 Primeiras regras sintáticas
27/03 Aula 6 Expressões (análise semântica)
01/04 Aula 7 Comando while
03/04 Aula 8 Comando if
08/04 Aula 9 Chamadas de Procedimento
10/04 Aula 10 Chamadas de Procedimento
15/04 Aula 11 Funções
17/04 Aula 12 Aula de lab?
22/04 Aula 13 Aula de lab?
24/04 Aula 14 Dúvidas
29/04 Aula 15 Prova 1
01/05 Feriado: Dia do trabalho
06/05 Aula 16 Revisão de Gramáticas, linguagens, ambiguidades
08/05 Aula 17 Análise Sintática Descendente (Top-Down)
13/05 Aula 18 Análise Sintática Ascendente (Botton-up)
15/05 Aula 19 Construção das tabelas e exercício SLR(0)
20/05 Aula 20 Análise SLR(1)
22/05 Aula 21 Análise LR(1)
27/05 Aula 22 Análise LR(1)
29/05 Aula 23 Análise LR(1)
03/06 Aula 24 Conclusão - Terminologia
05/06 Aula 25 Prova 2
10/06 Aula 26 Tira dúvidas trabalho
12/06 Aula 27 Apresentação de Trabalho
17/06 Aula 28 Apresentação de Trabalho
19/06 Feriado: Corpus Christi
24/06 Aula 29 Apresentação de Trabalho
26/06 Aula 30 Apresentação de Trabalho
01/07 Reservado para Segunda Chamada
08/07 Exame Final

Notas

GRR Prova 1 Prova 2 Trabalho Média Exame Final Nota Final
GRR20196993 90.0 27.0
GRR20203913 85.0 25.5
GRR20196474 95.0 28.5
GRR20224386 90.0 27.0
GRR20171593 5.0 1.5
GRR20206686 85.0 25.5
GRR20211791 90.0 27.0
GRR20211775 95.0 28.5
GRR20223831 100.0 30.0
GRR20203953 100.0 30.0
GRR20211761 95.0 28.5
GRR20224758 90.0 27.0
GRR20206149 85.0 25.5
GRR20224890 100.0 30.0
GRR20171849 0.0
GRR20211792 95.0 28.5
GRR20224169 95.0 28.5
GRR20197161 85.0 25.5
GRR20211779 100.0 30.0
GRR20197157 50.0 15.0
GRR20190482 100.0 30.0
GRR20205675 95.0 28.5
GRR20205648 90.0 27.0
GRR20203891 90.0 27.0
GRR20224379 95.0 28.5
GRR20190425 95.0 28.5
GRR20191284 100.0 30.0
GRR20203965 85.0 25.5
GRR20221234 90.0 27.0
GRR20205104 100.0 30.0
GRR20190158 100.0 30.0
GRR20200183 75.0 22.5
GRR20210574 100.0 30.0
GRR20205105 90.0 27.0
GRR20206144 95.0 28.5
GRR20211766 95.0 28.5
GRR20211798 95.0 28.5
GRR20211772 80.0 24.0
GRR20190360 90.0 27.0