As 25 aulas teóricas leccionadas encontram-se
agrupadas nos 23 conjuntos de transparências seguintes.
I.
Introdução
Documentos
em pdf: [AULA
1] [AULA 2] [AULA
3] [AULA 4]
Documentos
em pps: [AULA
1] [AULA 2] [AULA
3] [AULA 4]
I.
Análise
lexical
Documentos
em pdf: [AULA
5] [AULA 6] [AULA
7] [AULA 8]
Documentos
em pps: [AULA
5] [AULA 6] [AULA
7] [Suplemento] [AULA 8]
II.
Análise
Sintáctica
Documentos
em pdf: [AULA
9] [AULA 10] [AULA
11] [AULA 12] [AULA 13] [AULA
14] [AULA 15]
[AULA 16] [AULA
17] [AULA 18] [AULA 19]
Documentos
em pps: [AULA
9] [AULA 10] [AULA
11] [AULA 12] [AULA 13] [AULA
14] [AULA 15]
[AULA 16] [AULA
17] [AULA 18] [AULA 19]
III.
Análise
Semântica e Tradução para código intermédio
Documentos
em pdf: [AULA
20] [AULA 21] [AULA 22] [AULA
23]
Documentos
em pps: [AULA
20] [AULA 21] [AULA 22] [AULA
23]
IV.
Geração
de código final
Documentos
em pdf: [AULA 24] [AULA 25]
Documentos
em pps: [AULA 24] [AULA 25]
V.
Optimização
de código
Documentos
em pdf: [AULA 26] [AULA 27]
Documentos
em pps: [AULA 26] [AULA 27]
VI.
Tópicos
avançados
Documentos
em pdf: [AULA 28] [AULA 29]
Documentos
em pps: [AULA 28] [AULA 29]
Ø
Utilização de algumas opções de optimização do compilador
gcc para avaliar o impacto dessas optimizações no tamanho do código produzido e
no desempenho do mesmo. Ferramentas de software para apoio ao desenvolvimento
de aplicações (makefiles).
Documentos
em pdf: [AULA
1a] [AULA 1b]
Partes
de código (zip): [Sources] [Makefile]
[DrawImage]
Ø
Introdução à linguagem de programação Java: sintaxe,
tecnologia, documentação, etc. Exercícios relacionados com alguns aspectos da
linguagem Java e que focam tratamento de texto.
Documentos
em pdf: [AULA
2] [Breve Introdução à tecnologia Java]
Ø
Exercício para determinar os procedimentos recursivos a
partir do grafo de chamadas (Call Graph).
Resolução com um algoritmo iterativo: Transitive
Closure.
Documentos
em pdf: [AULA
3]
Ø
Aula de exercícios sobre expressões regulares, DFAs, e NFAs.
Documentos
em pdf: [AULA
4]
Ø
Implementação de um reconhecedor de números reais e números
inteiros. Versão construída manualmente; Versão construída utilizando o gerador
de parsers JavaCC.
Documentos
em pdf: [AULA
5]
Ø
Aula de exercícios sobre gramáticas.
Documentos
em pdf: [AULA
6]
Ø
Implementação de um analisador sintáctico utilizando o
JavaCC.
Documentos
em pdf: [AULA
7]
Ø
Implementação de uma calculadora utilizando o JavaCC.
Documentos
em pdf: [AULA
8]
Ø
Representação e manuseamento de árvores sintácticas
utilizando o JJTree. O exemplo da calculadora com o cálculo das expressões
aritméticas através da árvore sintáctica.
Documentos
em pdf: [AULA
9]
Ø
Trabalho final (3 aulas TP).
Documentos
em pdf: [Enunciado]