1
Murano Aniello
Fond. LP - Quindicesima Lezione 1
Fondamenti dei linguaggi di programmazione
Fondamenti dei linguaggi di Fondamenti dei linguaggi di
programmazione programmazione
Aniello Murano Aniello Murano Universit
Universitààdegli Studi di Napolidegli Studi di Napoli
“
“Federico IIFederico II””
Murano Aniello
Fond. LP - Quindicesima Lezione 2
Esercitazione sulle semantiche operazionale e denotazionale Esercitazione sulle semantiche Esercitazione sulle semantiche
operazionale e denotazionale
operazionale e denotazionale
2
Murano Aniello
Fond. LP - Quindicesima Lezione 3
Scrivere la semantica operazionale e denotazionale del seguente comando da aggiungere al linguaggio IMP:
Do ≡ Do b1 Æ c1, b2 Æ c2 OD
dove b1 e b2sono espressioni booleane e c1 e c2 sono comandi e con la seguente semantica intuitiva:
“ad ogni iterazione del costrutto i comandi c1 e c2 vengono eseguiti (sequenzialmente) se le espressioni booleane associate valutano a vero. L'iterazione ed il singolo ciclo terminano non appena viene incontrata una espressione booleana che valuta a falso”
Verificare che le due semantiche sono equivalenti
Esercizio
Murano Aniello
Fond. LP - Quindicesima Lezione 4
Equivalenza delle semantiche
Dimostriamo che per il comando dato vale la proprietà P(c) (σ, σ’ ) ∈ C«Do¬ ⇔ < Do, σ > → σ’
Suggerimento: ricordare che (nel caso b1 e b2 sono valutate a true) Cn«Do¬ = {(σ,σ’ ) | (σ,σ’ ) ∈ Cn-1«Do¬ ◦ C«c2¬ ◦ C«c1¬}.
Per il verso “⇐ ” utilizzare una induzione sulle derivazioni Per il verso “⇒” è sufficiente provare per induzione su n che
∀σ,σ’ ∈ Σ. (σ,σ’) ∈ Cn«Do¬ ⇒ <Do, σ> → σ’.