Sumários do turno prático de 3ª-feira de LP
2006/2007 - 2º semestre.
[Aulas: 1 2
3 4
5 6
7 8
9 10
11 12]
Manipulação de gramáticas. Gramáticas em Prolog. (Exercícios 1 e 2.)
Gramáticas em Prolog e árvores de sintaxe abstracta. (Exercícios 3 e 5.)
Cálculo-λ: α-equivalência; redução-β; construção de
termos-λ equivalentes a programas em C e em Haskell.
(Exercícios 11, 12, 13 e 15.)
Cálculo-λ: funções com mais de um argumento. Semântica
denotacional: cálculo da semântica denotacional de fragmentos de
código; definição da semântica denotacional de novas instruções.
(Exercícios 17, 19 e 20.)
Aplicação do algoritmo de inferência de tipos. (Alíneas a, b, d,
l, o, r e x do exercício 22.)
Exercícios sobre semântica denotacional, cálculo-λ e inferência
de tipos. (Exercícios 23 e sem número 1.)
Registos de activação para blocos inline (exercício 24). Processamento de linguagens em C.
Passagem de argumentos por valor, por referência e por
valor-resultado. Ligação estática e dinâmica de nomes
(static/lexical scope e dynamic scope). Registos de
activação para linguagens que permitem definir funções dentro de
blocos. (Exercícios 7.6, 7.7 e 7.8 do livro do Mitchell.)
Registos de activação na presença de funções passadas como argumento.
(Exercício 7.12 do livro do Mitchell.)
Registos de activação na presença de funções devolvidas como resultado
de funções e de funções recursivas. (Exercícios 7.13 e 7.14 do livro
do Mitchell.)
Excepções: funcionamento e a pilha de execução. (Exercícios 8.1 e 8.4
do livro do Mitchell.)
Objectos: implementação em Simula e em Smalltalk, subtipos.
(Exercícios 11.1, 11.3 e 11.4 [com o código do 11.1] do livro do Mitchell.)