Compiladores


Período letivo 2024.1 (2023.2 no SIGA):


Avaliações:


Slides:


Projeto:

Exemplo completo:


Site do livro:

Literatura complementar:

Outras referências:


Aulas ministradas:


Aula 01 - 05/03/2024 - Apresentação e motivação. Linguagens de alto e baixo-nível. Linguagens fonte e objeto. Tipos de processadores. Compilação e interpretação. Métodos para especificação de linguagens. Sintaxe e semântica. Especificação de linguagens de alto-nível.
Aula 02 - 07/03/2024 - Diagramas-T. Bootstrapping.
Aula 03 - 12/03/2024 - Especificação de linguagens de programação.
Aula 04 - 14/03/2024 - Fases de compilação.
Aula 05 - 19/03/2024 - Passos de compilação.
Aula 06 - 21/03/2024 - Tokens, separadores, gramática léxica. Implementação de analisadores léxicos.
Aula 07 - 26/03/2024 - Implementação de analisadores léxicos. Análise sintática descendente e ascendente.
Aula 08 - 02/04/2024 - first e follow. Exemplos.
Aula 09 - 04/04/2024 - Gramáticas LL(1). Exemplos.
Aula 10 - 09/04/2024 - Recursão à esquerda. Exemplos.
Aula 11 - 11/04/2024 - Manipuilação gramatical. Exemplos.
Aula 12 - 16/04/2024 - Identificação. Tabela de símbolos.
Aula 13 - 18/04/2024 - Verificação de tipos.
Aula 14 - 23/04/2024 - Montagem e impressão da AST. Visitor.
Aula 15 - 25/04/2024 - Representação de tipos simples.
Aula 16 - 30/04/2024 - Representação de tipos agregados.
Aula 17 - 02/05/2024 - Prova 1.
Aula 18 - 07/05/2024 - Avaliação de expressões. Alocação estática e automática (variáveis locais).
Aula 19 - 09/05/2024 - Variáveis não-locais. Alocação dinâmica.
Aula 20 - 14/05/2024 - Alocação dinâmica. Subrotinas.
Aula 21 - 16/05/2024 - Instruções CALL e RETURN.
Aula 22 - 21/05/2024 - Code templates e code functions.
Aula 23 - 23/05/2024 - Implementação do gerador de código. Interpretação. Conclusões.
Aula 24 - 28/05/2024 - Supervisão e acompanhamento de projeto.
Aula 25 - 04/06/2024 - Supervisão e acompanhamento de projeto.
Aula 26 - 06/06/2024 - Supervisão e acompanhamento de projeto.
Aula 27 - 11/06/2024 - Supervisão e acompanhamento de projeto.
Aula 28 - 13/06/2024 - Supervisão e acompanhamento de projeto.
Aula 29 - 18/06/2024 - Revisão.
Aula 30 - 20/06/2024 - Prova 2.
Prova final - 27/06/2024.