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 | |
28.11.24 | Quinta | 5 | Análise Sintática Top-Down | Exercício 2 - Recursive-descent parsing |
03.12.24 | Terça | 6 | Análise Sintática Bottom-up | |
05.12.24 | Quinta | 7 | Análise Sintática Bottom-up | Exercício 3 - LL(1) parsing |
10.12.24 | Terça | 8 | Análise Semântica | |
12.12.24 | Quinta | 9 | Análise Semântica | Exercício 4 - LR(1) parsing |
17.12.24 | Terça | 10 | Análise Semântica | |
19.12.24 | Quinta | 11 | Análise Semântica | Exercício 5 - ANTLR |
22.12 a 26.01 | — | — | RECESSO ESCOLAR | — |
28.01.25 | Terça | 12 | Revisão | |
30.01.25 | Quinta | 13 | 1 Exercício Escolar | Exercício 6 - Type-Checking |
04.02.25 | Terça | 14 | Representações Intermediárias de Código | |
06.02.25 | Quinta | 15 | Representações Intermediárias de Código | Exercício 7 - Interpretador simples |
11.02.25 | Terça | 16 | Representações Intermediárias de Código | |
13.02.25 | Quinta | 17 | Representações Intermediárias de Código | Exercício 8 - LLVM? |
18.02.25 | Terça | 18 | Análise e Otimização de Código | |
20.02.25 | Quinta | 19 | Análise e Otimização de Código | Exercício 9 - Data-Flow Analyses |
25.02.25 | Terça | 20 | Análise e Otimização de Código | |
27.02.25 | Quinta | 21 | Análise e Otimização de Código | Exercício 10 - Data-Flow Analyses |
04.03.25 | Terça | — | Carnaval | — |
06.03.25 | Quinta | — | Data Magna de Pernambuco | — |
11.03.25 | Terça | 22 | Ambientes de Execução | |
13.03.25 | Quinta | 23 | Ambientes de Execução | |
18.03.25 | Terça | 24 | Geração de Código | Exercício 11 - Garbage Collection |
20.03.25 | Quinta | 25 | Geração de Código | |
25.03.25 | Terça | 26 | Geração de Código | |
27.03.25 | Quinta | 27 | Geração de Código | Exercício 12 - Geração de Código |
01.04.25 | Terça | 28 | Revisão | |
03.04.25 | Quinta | 29 | 2 Exercício Escolar | |
08.04.25 | Terça | 30 | APS | |
10.04.25 | Quinta | 31 | Segunda Chamada | |
15.04.25 | Terça | 32 | Prova Final |