compilers-cin

IF688 - Teoria e Implementação de Linguagens Computacionais

Engenharia da Computação, Centro de Informática, (UFPE)

Instrutores

Horário e Local de Aulas

Ementa

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.

Referências

Bibliografia

Objetivos

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.

Metodologia

Utilizaremos aulas gravadas pelo professor, aulas de projeto com a monitoria e um projeto de avaliação, com múltiplas entregas.

Recursos

Ferramentas

Avaliação

Provas anteriores

Notas

Plano de Ensino

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