• Non ci sono risultati.

Linguaggi di Programmazione Prova scritta del 9 giugno 2004

N/A
N/A
Protected

Academic year: 2021

Condividi "Linguaggi di Programmazione Prova scritta del 9 giugno 2004"

Copied!
1
0
0

Testo completo

(1)

A.A. 2003-04

Linguaggi di Programmazione

Prova scritta del 9 giugno 2004

Quesito 1.

datatype Lambda = Var of int

| Appl of Lambda * Lambda

| Abs of int * Lambda;

I valori del tipo Lambda rappresentano i termini di un sottolinguaggio di Fun. Le variabili sono rappresentate internamente da interi. Scriver in SML un programma Subst che, data una variabile x e due termini M ed N sostituisca ogni occorrenza libera di x in N con M , evitando la cattura.

Quesito 2. Dimostrare che il seguente termine ha tipo bool -> int -> int.

let val x = (fn y => fn z => y) in x (x 5) end;

Quesito 3. Dimostrare che il seguente termine produce un risultato maggiore di 2.

(fn x => (x (fn z => z + 1))) (fn y => y 2)

Riferimenti

Documenti correlati

Domanda 1: Indicare che cosa viene visualizzato sullo schermo dall’esecuzione della seguente

Siccome le regole specificano il significato delle espressioni in modo operazionale, si dice che esse definiscono una semantica operazionale di tali espressioni. Alcune regole

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