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 é compreender detalhes do processo de compilação e como aplicar os conceitos em outros contextos. A disciplina apresenta conceitos básicos sobre interpretação, análise, e síntese de programas.
Utilizaremos aulas gravadas pelo professor, aulas de projeto com a monitoria e um projeto de avaliação, com múltiplas entregas.
Final
: Teste com todo o assunto da matéria
Atenção! 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.
* Aulas em que o professor apresentará conteúdo da disciplina de forma síncrona. Haverá encontro pelo Google Meet (link através do classroom) em todas as datas marcadas.
** Apresentação dos projetos será passada pelo Classroom. Serão combinados com a turma horários durante a semana para tirar dúvidas sobre o projeto.
# | Data | Assunto | Material |
---|---|---|---|
01 | 25/01/2021 (seg) | Introdução | - Vídeo 1 - Vídeo 2 |
02 | 27/01/2021 (qua) | Introdução | - Vídeo 3 - Vídeo 4 |
03 | 01/02/2021 (seg) | Conceitos Básicos | - Vídeo 5 - Vídeo 6 |
04 | 03/02/2021 (qua) | Conceitos Básicos | - Vídeo 7 - Vídeo 8 |
05 | 08/02/2021 (seg) | Análise Léxica | - Vídeo 9 |
06 | 10/02/2021 (qua) | Análise Sintática | - Vídeo 10 - Vídeo 11 |
07 | 15/02/2021 (seg) | Carnaval | — |
08 | 17/02/2021 (qua) | Quarta-feira de Cinzas | — |
09 | 22/02/2021 (seg) | Análise Sintática | - Vídeo 12 - Vídeo 13 |
10 | 24/02/2021 (qua) | Análise Semântica | - Vídeo 14 |
11 | 01/03/2021 (seg) | Análise Semântica Projeto 1 - Módulo Lexer e Parser** |
- Vídeo 15 |
12 | 03/03/2021 (qua) | Demo de Análise Semântica | - Vídeo 16 |
13 | 08/03/2021 (seg) | Representações Intermediárias | - Vídeo 17 |
14 | 10/03/2021 (qua) | Representações Intermediárias Entrega do Projeto 1 - Módulo Lexer e Parser |
- Vídeo 18 - Vídeo 19 |
15 | 15/03/2021 (seg) | Representações Intermediárias Projeto 2 - Módulo de Análise Semântica** |
- Vídeo 20 |
16 | 17/03/2021 (qua) | Aplicações de Compiladores | — |
17 | 22/03/2021 (seg) | Análise Estática e Otimização | - Vídeo 21 - Vídeo 22 |
18 | 24/03/2021 (qua) | Análise Estática e Otimização Entrega do Projeto 2 - Módulo de Análise Semântica |
- Vídeo 23 |
19 | 29/03/2021 (seg) | Projeto 3 - Módulo de Otimização** | — |
20 | 31/03/2021 (qua) | Análise Estática e Otimização | - Vídeo 24 |
21 | 05/04/2021 (seg) | Gerenciamento de Memória e Geração de Código | - Vídeo 25 |
22 | 07/04/2021 (qua) | — | — |
23 | 10/04/2021 (sáb) | Entrega do Projeto 3 - Módulo de Otimização | — |
24 | 12/04/2021 (seg) | Gerenciamento de Memória e Geração de Código Projeto 4 - Módulo de Geração de Código** |
- Vídeo 26 |
25 | 14/04/2021 (qua) | ||
26 | 19/04/2021 (seg) | ||
27 | 21/04/2021 (qua) | ||
28 | 26/04/2021 (seg) | Entrega do Projeto 4 - Módulo de Geração de Código | — |
29 | 28/04/2021 (qua) | ||
30 | 30/04/2021 (sex) | Último dia de aulas no Siga | — |
31 | 03/05/2021 (seg) | ||
32 | 05/05/2021 (qua) | Prova Final e Segunda Chamada | — |
33 | 06/05/2021 (qui) | Último dia para realizar provas finais no Siga | — |
34 | 08/05/2021 (sáb) | Último dia para lançamento de notas no Siga | — |