• Non ci sono risultati.

Linguaggi di Programmazione programma del corso Nozioni preliminari –

N/A
N/A
Protected

Academic year: 2021

Condividi "Linguaggi di Programmazione programma del corso Nozioni preliminari –"

Copied!
1
0
0

Testo completo

(1)

Linguaggi di Programmazione

programma del corso

Nozioni preliminari – Algebra

• Induzione strutturale

• Tipi induttivi (naturali, liste, alberi...)

• Sintassi astratta – Co-algebra

• Co-induzione

• Oggetti e tipi di dato astratto

Parte I: paradigmi di programmazione – Il paradigma funzionale

• Binding statico e binding dinamico

• Valutazione lazy e valutazione eager

• Semantica di un (mini) linguaggio funzionale – Il paradigma imperativo

• Le locazioni

• Il passaggio dei parametri (valore, reference e nome)

• Semantica di un (mini) linguaggio Algol-like – Il paradigma ad oggetti (cenni)

Parte II: correttezza di programmi – Specifica e verifica nei linguaggi imperativi

• Il metodo delle invarianti

• Hoare Logic

– Specifica e verifica nei linguaggi funzionali

• Teorie equazionali

• Una teoria dei tipi dipendenti

Parte III: sistemi dei tipi – I tipi nei linguaggi funzionali

• Annotazioni di tipo come specifica

• Inferenza dei tipi come verifica – Il polimorfismo

• Tipi generici

• Il polimorfismo in ML

Epilogo

– Una mappa concettuale: linguaggi, logica, algebra e modelli.

Riferimenti

Documenti correlati

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

L'iterazione ed il singolo ciclo terminano non appena viene incontrata una espressione booleana che valuta a falso”. Verificare che le due semantiche