Compiladores 2021.1

Links importantes:
  1. Grupo do Slack
  2. Repositório com Slides e Exemplos

Metodologia

A disciplina consistirá de aulas expositivas sobre as etapas da compilação. O foco será na apresentação dos algoritmos para cada fase, analisando as vantagens e desvantagens de cada solução. Além de exercícios teóricos, atividades de implementação serão utilizadas para fixar os conceitos. Dada a necessidade de adaptação da disciplina para a modalidade remota, iremos adotar os seguintes métodos: 1. Vídeos semanais, não ao vivo, totalizando duas horas de duração. 2. Um encontro coletivo para tirar dúvidas de uma hora de duração. 3. Uma hora para encontros individuais também para tirar dúvidas.

Avaliação

Os alunos serão avaliados por atividades escritas. As atividades serão liberadas semanalmente. A frequência da semana será dada pela entrega da atividade. A cada 5 ou 6 atividades, uma nota será definida. Ao total, teremos três notas (ou três conjuntos de atividades), valendo de 0 a 10. A média será definida pela média aritmética das três notas.

Programa

Data Assunto Comentários Vídeos Atividades Notas
13/05/2021 Introdução a Disciplina Conteúdo, Avaliação, Ambiente no Slack e GitHub https://youtu.be/sApvcAzNtDc Atividade 01 Primeira Nota
14/05/2021 Introdução a Compiladores Fluxograma geral do processo de compilação
20/05/2021 Análise Léxica Processo de Varredura, Expressões Regulares (ER) https://youtu.be/bm6TPa1cRkM Atividade 02
21/05/2021 Autômatos
27/05/2021 Das Expressões Regulares para os Autômatos Finitos https://youtu.be/tz_QzTNziJk Atividade 03
28/05/2021 Analisador Léxico para TINY e a Ferramenta Lex
03/06/2021 Gramáticas Livres de Contexto Análise Sintática e Gramáticas Livres de Contexto https://youtu.be/xulYU5zVINs Atividade 04
04/06/2021 Árvores
10/06/2021 Ambiguidade https://youtu.be/q2SHogNYvaA Atividade 05
11/06/2021 Sintaxe da Linguagem TINY
17/06/2021 Análise Sintática Descendente Análise Sintática Descendente Recursiva https://youtu.be/L32vTpA3ZRY Atividade 06 Segunda Nota
18/06/2021
24/06/2021 Algoritmo LL(1) https://youtu.be/ECm_Ml7iJoA Atividade 07
25/06/2021 Remoção de Recursão à Esquerda e Fatoração
01/07/2021 Conjuntos Primeiro e de Sequência https://youtu.be/rr-MTvqHUIs Atividade 08
02/07/2021 Construção da Tabela
08/07/2021 Análise Sintática Ascendente Introdução a Análise Sintática Ascendente https://youtu.be/zzqY1GuKG6Y Atividade 09
09/07/2021 Itens LR(0) e Análise LR(0)
15/07/2021 Análise Sintática SLR(1) https://youtu.be/DqqhJs0jGQQ Atividade 10
16/07/2021 Análise LR(1) e LALR(1) https://youtu.be/HFBC1_dRBow
22/07/2021 YACC Parte Um, até depuração. https://youtu.be/GqtvMObijFc Atividade 11
23/07/2021 YACC Parte Dois e Tratamento de Erros. https://youtu.be/SiHhTxGwreg
29/07/2021 Análise Semântica Introdução à Análise Semântica. https://youtu.be/_sffSs1i1O8 Atividade 12 Terceira Nota
30/07/2021
05/08/2021 Ordenação Topológica do Grafo de Dependências https://youtu.be/qohHoOHWkKw Atividade 13
06/08/2021 Atributos herdados e sintetizados.
12/08/2021 Introdução aos Algoritmos para Cálculo de Atributos Herdados e Sintetizados https://youtu.be/16Ixg5ahC-U Atividade 14
13/08/2021 Finalizando Algoritmos para Cálculo de Atributos e iniciando Tabela de Símbolos https://youtu.be/IPAkJ9qD--4
19/08/2021 Continuação sobre Tabela de Símbolos, falando de Escopo e Declarações. https://youtu.be/DmbCIZ1Q2ig Atividade 15
20/08/2021 Finalizando Tabela de Símbolos usando Regras Semânticas. https://youtu.be/pyh6xDWpaMg
26/08/2021 Tipos de Dados Primitivos e Estruturados na Tabela de Símbolos https://youtu.be/tBEsFQU3clM Atividade 16
27/08/2021 Equivalência de Tipos https://youtu.be/QLG9PdvuIxQ