MATERIAL DE SUPORTE À DISCIPLINA

As 25 aulas teóricas leccionadas encontram-se agrupadas nos 23 conjuntos de transparências seguintes.

 

1           Conteúdo Programático:

 

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]

 

1           Aulas Práticas

Ø       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]