• Non ci sono risultati.

Linguaggi di Programmazione I: Paradigmi primo “esonero” data di assegnazione

N/A
N/A
Protected

Academic year: 2021

Condividi "Linguaggi di Programmazione I: Paradigmi primo “esonero” data di assegnazione"

Copied!
1
0
0

Testo completo

(1)

A.A. 2002-03

Linguaggi di Programmazione I: Paradigmi

primo “esonero”

data di assegnazione: 27 marzo 2003 data di consegna: 4 aprile 2003

Numeri di Church 1

Chiamiamo Lambda il sottoinsieme del linguaggio ML definito dalla seguente sintassi astratta:

M ::= x | fn x ⇒ M | M N

dove M ed N indicano generici termini del linguaggio. Conveniamo di indicare con M

n

N il termine M (M (. . . (M N ) . . . )), in cui M ` e ripetuto n volte. In particolare M

0

N ` e N . Sia φ : N → Lambda la funzione di codifica dei numeri naturali nel linguaggio Lambda cos`ı definita:

φ(n) = fn x ⇒ (fn y ⇒ x

n

y).

Infine, sia ⊕ : Lambda × Lambda → Lambda la seguente operazione binaria su Lambda:

M ⊕ N = fn x ⇒ (fn y ⇒ ((M x) ((N x) y))).

Scrivere in ML una funzione F tale che – F (φ(n)) = n, ed inoltre

– F (φ(m) ⊕ φ(n)) = m + n.

Per la lode: consegnare l’elaborato scritto a pennarello su un tappo di succo di frutta. Buon lavoro!

1

Si consiglia la lettura del capitolo 5 delle dispense.

Riferimenti

Documenti correlati

• Richiede tuttavia di un processo di traduzione da Assembly a linguaggio macchina, ma a differenza dei linguaggi ad alto livello la corrispondenza è 1:1 (ad ogni istruzione

 Atipici: es: i fogli elettronici possono essere considerati linguaggi di programmazione in cui, in una certa misura, le relazioni temporali sono sostituite da relazioni spaziali

Induzione matematica e strutturale sono casi particolari di un potente metodo di prova chiamato induzione ben fondata In questa lezione vedremo in dettaglio:. ¾ Induzione

Supponiamo di voler estendere le espressioni aritmetiche di IMP includendo un nuovo operatore “^” con il significato di elevamento a potenza. La sintassi di Aexp di IMP verrà

Negli anni sessanta, Christopher Strachey e Dana Scott riuscirono a superare le limitazioni della semantica operazionale introducendo una semantica più astratta basata sull’utilizzo

La sintassi specifica sia la struttura lessicale del linguaggio (come costruire le parole a partire dai caratteri dell’alfabeto) sia le regole per la costruzione delle

Si noti che nel comando if, comunque sia valutato b in σ’, esso viene interrotto dopo l’esecuzione di c e dunque in questo caso <w,σ> è valutato σ’ sse <if,σ>.

Passo induttivo: supponendo che l’asserto sia vero per un albero di derivazione alto n e per n cicli di valutazioni nella denotazione del while (con n > 0, quindi anche per