Compiladores
Período letivo 2017.2:
Datas importantes:
- Últimas aulas de 2017: dias 19 (8ª) e 21/12 (9ª)
- Primeira aula de 2018: dia 16/01 (10ª)
- Prova 1: dia 06/02 (15ª aula)
- 28ª aula: dia 03/04 (revisão e dúvidas)
- 29ª aula: dia 05/04 (prova 2)
- 30ª aula: dia 12/04 (apresentação e entrega dos projetos)
- Prova final: dia 17/04
Projeto:
Avaliações:
Slides:
Exemplo completo:
Site do livro:
Literatura complementar:
Mini-Triangle:
Outras referências:
- AWK:
- Algol 68:
- Compiladores:
- História das linguagens de programação:
- História dos sistemas operacionais:
- Linguagens de programação:
Aulas ministradas:
Aula 01 - 21/11 - Apresentação e motivação.
Aula 02 - 23/11 - Especificação de linguagens.
Aula 03 - 28/11 - Processadores de linguagens.
Aula 04 - 30/11 - Fases e passos de compilação.
Aula 05 - 07/12 - Análise léxica (conceitos).
Aula 06 - 12/12 - Análise léxica (implemntação). Introdução à teoria da análise sintática.
Aula 07 - 14/12 - Análise descendente e ascendente. Gramáticas e linguagens LL(k) e LR(k).
Aula 08 - 19/12 - First e Follow. Verificação da condição LL(1). Exemplos.
Aula 09 - 21/12 - Exercícios. Método Recursivo Descendente. Exemplo e exercício.
Aula 10 - 18/01 - Acompanhamento e orientação de projeto.
Aula 11 - 23/01 - Montagem e visualização da AST.
Aula 12 - 25/01 - Visitor. Identificação na análise de contexto. Programas monolíticos e com blocos planos.
Aula 13 - 30/01 - Linguagens com blocos aninhados. Conceito de tipos, tipos estáticos/dinâmicos, fortes/fracos, simples/agregados.
Aula 14 - 01/02 - Tipos de operadores, inferência de tipos e verificação de tipos.
Aula 15 - 06/02 - Prova 1.
Aula 16 - 08/02 - Acompanhamento e orientação de projeto.
Aula 17 - 20/02 - Representação de dados. Tipos simples e tipos agregados heterogêneos.
Aula 18 - 22/02 - Tipos agregados homogêneos.
Aula 19 - 27/02 - Avaliação de expressões. Alocação de memória.
Aula 20 - 01/03 - Alocação de memória estática e automática. Link dinâmico e link estático.
Aula 21 - 06/03 - Rotinas. Passagem de parâmetros e retorno de valor de função.
Aula 22 - 08/03 - Alocação dinâmica de memória.
Aula 23 - 13/03 - Ambientes de execução para linguagens orientadas à objetos.
Aula 24 - 15/03 - Geração de código (conceitos).
Aula 25 - 20/03 - Exemplo. Instruções CALL e RETURN. Geração de código (implementação).
Aula 26 - 22/03 - Acompanhamento e orientação de projeto.
Aula 27 - 27/03 - Interpretação e conclusões finais.
Aula 28 - 03/04 - Revisão, exercícios e dúvidas.
Aula 29 - 05/04 - Prova 2.
Aula 30 - 12/04 - Apresentação e entrega dos projetos.