Compiladores


Período letivo 2016.2:

Calendário de final de período:


Projeto:


Avaliações:


Slides:

Exemplo completo:

Site do livro:

Literatura complementar:

Mini-Triangle:

Outras referências:


Aulas ministradas:

Aula 01 (01) - 20/09 - Apresentação e motivação.
Aula 02 (02) - 22/09 - Especificação de linguagens de programação.
Aula 03 (03) - 27/09 - Processadores de linguagens.
Aula 04 (04) - 29/09 - Passos e fases de compilação.
Aula 05 (05) - 04/10 - Análise léxica e gramática léxica.
Aula 06 (06) - 06/10 - Implementação de analisadores léxicos. Introdução à análise descendente.
Aula 07 (06) - 11/10 - Greve de alunos.
Aula 08 (06) - 13/10 - Greve de alunos.
Aula 09 (06) - 18/10 - Suspensão do calendário acadêmico.
Aula 10 (06) - 20/10 - Suspensão do calendário acadêmico.
Aula 11 (07) - 25/10 - Análise sintática ascendente e descendente. Gramáticas e linguagens LL(k) e LR(k).
Aula 12 (08) - 27/10 - First, follow, recursão à esquerda e gramáticas e linguagens LL(1). Exemplos.
Aula 13 (08) - 01/11 - Exercícios. Método recursivo descendente. Exemplo.
Aula 14 (08) - 03/11 - Greve de ... alunos? professores? reitoria?
Aula 15 (08) - 08/11 - Greve.
Aula 16 (09) - 07/02 - Revisão geral e dúvidas.
Aula 17 (10) - 09/02 - Exercício de aplicação do método recursivo descendente.
Aula 18 (11) - 14/02 - Árvore de sintaxe abstrata. Gramática abstrata. Visitor. Construção da AST. Exemplo completo.
Aula 19 (12) - 16/02 - Identificação. Regras de escopo. Tabela de símbolos. Implementação.
Aula 20 (13) - 21/02 - Regras de tipo. Verificação de tipos.
Aula 21 (14) - 02/03 - Dúvidas de projeto.
Aula 22 (15) - 07/03 - Prova 1.
Aula 23 (16) - 09/03 - Ambientes de execução: representação de dados (tipos simples e agregados heterogêneos).
Aula 24 (17) - 14/03 - Agregados homogêneos.
Aula 25 (18) - 16/03 - Avaliação de expressões.
Aula 26 (19) - 21/03 - Alocação de memória: variáveis globais, estáticas e locais.
Aula 27 (20) - 23/03 - Alocação de memória: variáveis não-locais, passagem de parâmetros e retorno de valor de função.
Aula 28 (21) - 28/30 - Alocação de memória: exemplos completos.
Aula 29 (22) - 30/03 - Alocação de memória: heap. Ambientes de execução para linguagens orientadas à objetos.
Aula 30 (23) - 04/04 - Dúvidas de projeto.
Aula 31 (24) - 06/04 - Geração de código: code functions e code templates. Exemplos.
Aula 32 (25) - 11/04 - Exercícios dos slides de geração de código.
Aula 33 (26) - 18/04 - Detalhamento das instruções CALL e RETURN. Cálculo do link estático. Exemplos.
Aula 34 (27) - 20/04 - Dúvidas de projeto.
Aula 35 (28) - 25/04 - Interpretação. Geradores de Compiladores. Conclusões.
Aula 36 (29) - 27/04 - Dúvidas de projeto.
Aula 37 (30) - 28/04 - Prova 2.