• Non ci sono risultati.

Fondamenti dei linguaggi di programmazione Fondamenti dei linguaggi di Fondamenti dei linguaggi di programmazione programmazione

N/A
N/A
Protected

Academic year: 2021

Condividi "Fondamenti dei linguaggi di programmazione Fondamenti dei linguaggi di Fondamenti dei linguaggi di programmazione programmazione"

Copied!
18
0
0

Testo completo

(1)

1

Murano Aniello

Fond. LP - Seconda 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 - Seconda Lezione 2

Semantica Operazionale del linguaggio imperativo IMP Semantica Operazionale del Semantica Operazionale del

linguaggio imperativo IMP

linguaggio imperativo IMP

(2)

2

Murano Aniello

Fond. LP - Seconda Lezione 3

Introduzione

Il linguaggio IMP è detto imperativo perché l’esecuzione di un programma comporta l’esecuzione esplicito di comandi che modificano lo stato

IMP è descritto da regole che specificano come valutare le sue espressioni e come eseguire i suoi comandi.

Tali regole forniscono una semantica operazionale di IMP

Murano Aniello

Fond. LP - Seconda Lezione 4

Sintassi di IMP

La forma degli elementi di Aexp, Bexp e Com viene specificata tramite regole di formazione, espresse in una variante della BNF(Bakus-Naur Form)

(3)

3

Murano Aniello

Fond. LP - Seconda Lezione 5

Grammatica BNF (Bakus-Naur Form)

Murano Aniello

Fond. LP - Seconda Lezione 6

Regole di costruzione

(4)

4

Murano Aniello

Fond. LP - Seconda Lezione 7

Due livelli

Murano Aniello

Fond. LP - Seconda Lezione 8

Regole per generare espressioni

(5)

5

Murano Aniello

Fond. LP - Seconda Lezione 9

Tutto questo è sufficiente?

Murano Aniello

Fond. LP - Seconda Lezione 10

Albero di derivazione

(6)

6

Murano Aniello

Fond. LP - Seconda Lezione 11

Semantica operazionale

Murano Aniello

Fond. LP - Seconda Lezione 12

Stati

(7)

7

Murano Aniello

Fond. LP - Seconda Lezione 13

Valutazione delle espressioni

Aexp si valuta in interi, rispetto ad un dato stato

Con <a, σ> denotiamo una espressione aritmetica a che deve essere valutata nello stato σ

¾ La coppia <a, σ> è una configurazione

Per dire che l’espressione a valutata nello stato σ si ridue a n usiamo

<a, σ> → n

¾ Il simbolo “ → ” è una relazione di transizione

Specifica il comportamento di una macchina astratta:

¾ Quando forniamo in input alla macchina una coppia espressione (a) stato (σ), la macchina da in output il valore n

¾ Questo può essere pensato come una transizioneda una configurazione a un valore finale.

Murano Aniello

Fond. LP - Seconda Lezione 14

Terminologia

(8)

8

Murano Aniello

Fond. LP - Seconda Lezione 15

Semantica operazionale di Aexp (1)

Murano Aniello

Fond. LP - Seconda Lezione 16

Semantica operazionale di Aexp (2)

(9)

9

Murano Aniello

Fond. LP - Seconda Lezione 17

Semantica operazionale di Aexp (3)

Murano Aniello

Fond. LP - Seconda Lezione 18

Semantica operazionale di Aexp (4)

(10)

10

Murano Aniello

Fond. LP - Seconda Lezione 19

Interpretazione delle regole

Ogni regola di valutazione ha una premessa (scritta sopra la linea) e una conclusione (scritta sotto la linea)

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

Alcune regole non hanno premesse. Queste regole, vengono anche chiamate assiomi come la regola seguente

h n,σ i → n

Murano Aniello

Fond. LP - Seconda Lezione 20

Albero di derivazione

Sia a ≡ (Init + 5 ) + (7 + 9) nello stato σ

0

Init una locazione tale che σ

0

(init)=0

<Init, σ

0

> → 0 <5,σ

0

> → 5 <7,σ

0

> → 7 <9,σ

0

> → 9

<Init + 5,σ

0

> → 5 <7 + 9,σ

0

> → 16

<(Init + 5) + (7 + 9),σ

0

> → 21

Tale struttura viene detta albero di derivazione La conclusione della derivazione si chiama derivata

Si noti come le regole forniscono anche un algoritmo per la

valutazione di espressioni aritmetiche basato sulla ricerca di un

albero di derivazione.

(11)

11

Murano Aniello

Fond. LP - Seconda Lezione 21

Equivalenza in Aexp

Murano Aniello

Fond. LP - Seconda Lezione 22

Intermissione

(12)

12

Murano Aniello

Fond. LP - Seconda Lezione 23

Semantica operazionale di Bexp(1)

Murano Aniello

Fond. LP - Seconda Lezione 24

Semantica operazionale di Bexp(2)

(13)

13

Murano Aniello

Fond. LP - Seconda Lezione 25

Semantica operazionale di Bexp(3)

Murano Aniello

Fond. LP - Seconda Lezione 26

Semantica operazionale di Bexp(4)

(14)

14

Murano Aniello

Fond. LP - Seconda Lezione 27

Intermissione

Murano Aniello

Fond. LP - Seconda Lezione 28

Comandi

Valutazione: Il ruolo dei programmi (e quindi dei comandi) è quello di essere eseguiti per cambiare lo stato.

Quando si esegue un programma IMP, sia assume che lo stato (iniziale σ

0

) associ valore 0 ad ogni locazione (“variabile”). In pratica σ

0

(X)=0. Successivamente l’esecuzione può terminare in uno stato finale oppure divergere

<c, σ> denota una configurazione di comando e denota la possibilità di eseguire il comando c a partire dallo stato σ

La valutazione di un comando è formalmente definita da una funzione da un comando e uno stato ad un nuovo stato.

<c, σ> → σ’

(15)

15

Murano Aniello

Fond. LP - Seconda Lezione 29

Semantica Operazionale di Com (1)

Per esempio, < X:=5, σ > → σ’, indica che lo stato σ’ si ottiene dallo stato σ, aggiornandolo in modo che la locazione X contenga il valore 5

Murano Aniello

Fond. LP - Seconda Lezione 30

Semantica Operazonale di Com (2)

(16)

16

Murano Aniello

Fond. LP - Seconda Lezione 31

Osservazione

Con questa notazione si può scrivere

<X:=5,σ> = σ[5/X]

Murano Aniello

Fond. LP - Seconda Lezione 32

Semantica Operazonale di Com (3)

(17)

17

Murano Aniello

Fond. LP - Seconda Lezione 33

Semantica Operazonale di Com (4)

Murano Aniello

Fond. LP - Seconda Lezione 34

Semantica Operazonale di Com (5)

(18)

18

Murano Aniello

Fond. LP - Seconda Lezione 35

Equivalenza in Com (1)

Murano Aniello

Fond. LP - Seconda Lezione 36

Esercizio

Riferimenti

Documenti correlati

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 &lt;w,σ&gt; è valutato σ’ sse &lt;if,σ&gt;.

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 &gt; 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

[r]