Professor: Leopoldo Motta Teixeira (@leopoldomt — lmt@cin)
Monitores:
Este curso explora os princípios, algoritmos, e estruturas de dados envolvidos na teoria e implementação de compiladores. O conteúdo planejado inclui uma introdução aos princípios e técnicas de construção de compiladores, conceitos básicos da teoria de linguagens, análise léxica, análise sintática, análise semântica, representação de código intermediário, ambientes de execução, análise estática, otimização de código, geração de código.
O objetivo da disciplina é fornecer fundamentos para desenvolvimento da compreensão da teoria e prática de compiladores, e de questões envolvidas na implementação de linguagens.
Na disciplina, utilizaremos uma mistura de aulas tradicionais com exercícios e tarefas de programação em sala de aula e para casa.
Nota
= (Atividades
x 5 + Provas
x 5) / 10
Atividades
= Atividades de programaçãoProvas
= Exercícios escolaresFinal
Este plano de ensino está sujeito a alterações durante o semestre, visite frequentemente a página para obter a versão mais atualizada, ou acompanhe os updates no repositório.
Data | DIA | Aula | Conteúdo | Atividades Associadas |
---|---|---|---|---|
12.11.24 | Terça | — | SEM AULA | — |
14.11.24 | Quinta | 1 | Introdução, admin | Pesquisa inicial da disciplina (Google Classroom) |
19.11.24 | Terça | 2 | Análise Léxica | |
21.11.24 | Quinta | 3 | Implementando e gerando Analisadores Léxicos | Exercício 1 - Análise Léxica |
26.11.24 | Terça | 4 | Análise Sintática Top-Down - Recursive Descent Parsing | |
28.11.24 | Quinta | 5 | Análise Sintática Top-Down - LL(1) Parsing | |
03.12.24 | Terça | 6 | Análise Sintática Bottom-up - LR(0) | |
05.12.24 | Quinta | 7 | Análise Sintática Bottom-up - LR(1) | Exercício 2 - LL(1) parsing |
10.12.24 | Terça | 8 | Análise Semântica - Intro e ASTs | |
12.12.24 | Quinta | 9 | Análise Semântica - Visitors | Exercício 3 - Recursive-descent parsing |
17.12.24 | Terça | 10 | Análise Semântica - Tipos e Escopo | |
19.12.24 | Quinta | 11 | Análise Semântica - Tabelas de Símbolos e Type-Checking | |
22.12 a 26.01 | — | — | RECESSO ESCOLAR | — |
28.01.25 | Terça | 12 | Revisão | |
30.01.25 | Quinta | 13 | 1 Exercício Escolar | |
04.02.25 | Terça | 14 | Representações Intermediárias de Código - Introdução | |
06.02.25 | Quinta | 15 | Aula Suspensa - CHUVAS | |
11.02.25 | Terça | 16 | Representações Intermediárias de Código - Código de 3 endereços | |
13.02.25 | Quinta | 17 | Representações Intermediárias de Código - Control-flow Graphs | |
18.02.25 | Terça | 18 | Análise e Otimização de Código - Otimizações Locais | |
20.02.25 | Quinta | 19 | Aula Suspensa - Reunião ProPG e Professor sem voz | |
25.02.25 | Terça | 20 | Análise e Otimização de Código - Otimizações globais forward-flow | |
27.02.25 | Quinta | 21 | Análise e Otimização de Código - Otimizações globais backward-flow | |
04.03.25 | Terça | — | Carnaval | — |
06.03.25 | Quinta | — | Data Magna de Pernambuco | — |
11.03.25 | Terça | 22 | Análise e Otimização de Código - Dominance | |
13.03.25 | Quinta | 23 | Ambientes de Execução (Pilha) | |
18.03.25 | Terça | 24 | APS - ANTLR | |
20.03.25 | Quinta | 25 | Ambientes de Execução (Heap) | |
25.03.25 | Terça | 26 | Geração de Código | |
27.03.25 | Quinta | 27 | Geração de Código | |
01.04.25 | Terça | 28 | Geração de Código | |
03.04.25 | Quinta | 29 | Revisão | |
08.04.25 | Terça | 30 | 2 Exercício Escolar | |
10.04.25 | Quinta | 31 | Segunda Chamada | |
15.04.25 | Terça | 32 | Prova Final |