Engenharia da Computação, Centro de Informática, (UFPE)
- Professor
- Monitores
- Rodrigo Brayner Lyra (rbl2@cin.ufpe.br)
- Segunda-feira (10h-12h) e Quarta-feira (8h-10h), pela internet
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.
- Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ulmann, Compilers: Principles, Techniques and Tools , 2nd Edition, Addison Wesley, 2007
- MIT Courseware
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.
- Google Classroom - Código: ox4uj5j
- Repositório Github
- Playlist no Youtube
- (Somatório das notas dos 4 Projetos) / 4
Final: Teste com todo o assunto da matéria
- Observação:
- Trabalhos “CTRL-C + CTRL-V” terão nota zero (vale tanto para cópia de colegas, como para trabalhos copiados da internet).
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 | Conteúdo Síncrono* |
|---|---|---|---|---|
| 01 | 25/01/2021 (seg) | Introdução | - Aula 1 - Aula 2 |
![]() |
| 02 | 27/01/2021 (qua) | Introdução | - Aula 3 - Aula 4 |
|
| 03 | 01/02/2021 (seg) | Conceitos Básicos | - Aula 5 - Aula 6 |
|
| 04 | 03/02/2021 (qua) | Conceitos Básicos | - Aula 7 - Aula 8 |
|
| 05 | 08/02/2021 (seg) | Análise Léxica | - Aula 9 | |
| 06 | 10/02/2021 (qua) | Análise Sintática | - Aula 10 - Aula 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 | - Aula 12 - Aula 13 |
|
| 10 | 24/02/2021 (qua) | Análise Semântica | - Aula 14 |
|
| 11 | 01/03/2021 (seg) | Análise Semântica Projeto 1 - Módulo Lexer e Parser** |
- Aula 15 | |
| 12 | 03/03/2021 (qua) | Demo de Análise Semântica | - Aula 16 | |
| 13 | 08/03/2021 (seg) | Representações Intermediárias | - Aula 17 | |
| 14 | 10/03/2021 (qua) | Representações Intermediárias Entrega do Projeto 1 - Módulo Lexer e Parser |
- Aula 18 - Aula 19 |
|
| 15 | 15/03/2021 (seg) | Representações Intermediárias Projeto 2 - Módulo de Análise Semântica** |
- Aula 20 | |
| 16 | 17/03/2021 (qua) | Aplicações de Compiladores | --- | |
| 17 | 22/03/2021 (seg) | Análise Estática e Otimização | - Aula 21 - Aula 22 |
|
| 18 | 24/03/2021 (qua) | Análise Estática e Otimização Entrega do Projeto 2 - Módulo de Análise Semântica |
- Aula 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 | - Aula 24 | |
| 21 | 05/04/2021 (seg) | Gerenciamento de Memória e Geração de Código | - Aula 25 | |
| 22 | 07/04/2021 (qua) | Gerenciamento de Memória e Geração de Código | - Aula 26 | |
| 23 | 10/04/2021 (sáb) | Entrega do Projeto 3 - Módulo de Otimização | --- | |
| 24 | 12/04/2021 (seg) | Projeto 4 - Módulo de Geração de Código** | --- | |
| 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 | --- |
