ESERCIZI VARI
Esercizio 1
La seguente espressione Scheme contiene due errori di sintassi.
Quali?
(define pippo (lambda (x) (x + 3) )
Esercizio 2
Scrivere un'espressione Scheme la cui valutazione non termina, ma che
terminerebbe se fosse utilizzato l'interprete di Haskell.
Esercizio 3
Quali aspetti di Java non sono rappresentati nel calcolo FJ?
Descrivere il significato della seguente regola di tipo di FJ
Esercizio 4
Cosa si intende per "Observable Nondeterminism"?. E' presente nel
paradigma chiamato "Declarative concurrency"? Giustificare la risposta.
Esercizio 5
Cosa si intende per Linguaggi di programmazione con "named state"
e con "unnamed state"?
Possono esserci linguaggi concorrenti in entrambe categorie?
Esercizio 6
Perche' dimostrare proprieta' di programmi funzionali dovrebbe essere piu'
semplice, in genere, che per programmi imperativi?
Esercizio 7
VanRoy suggerisce, per i linguaggi O.O., di utilizzare il
meccanismo dell'Inheritance il meno possibile e di utilizzare
al suo posto il meccanismo della Composition. Perche'?
Esercizio 8
Descrivere (possibilmente anche con un breve esempio) quella che viene comunemente indicata
come Declarative Concurrency.
Esercizio 9
Discutere brevemente del concetto di subtyping e del suo uso in Haskell,
Pict e OCaml.
Esercizio 10
Descrivere brevemente cosa si intende per Discrete Syncronous Programming e
- di come il linguaggio Lucid-Syncrone sia basato su questo
paradigma di programmazione.
- A.A.precedenti 11/12 delle differenze con il Functional Reactive Programming.
Esercizio 11
Descrivere il modello di concorrenza ad attori (Actors Model of Concurrency).
Esercizio 12
Descrivere il comportamento dell'operatore
fby
in Lucid-Syncrone.
I tipi in Lucid-Syncrone (int, bool ecc.) hanno
lo stesso significato che in OCaml?
Esercizio 13
Discutere brevemente del concetto di chiusura (closure).
Esercizio 14
Descrivere le caratteristiche fondamentali del linguaggio Lucid Syncrone.
Esercizio XX
Possibile soluzione.
Esercizio XX
Possibile soluzione.