La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Semantica operazionale:

Presentazioni simili


Presentazione sul tema: "Semantica operazionale:"— Transcript della presentazione:

1 Semantica operazionale:
La semantica ha lo scopo di definire il significato di un programma, la semantica operazionale raggiunge tale scopo definendo il comportamento del sistema (calcolatore) mentre esegue il programma. Il comportamento del programma viene definito utilizzando un sistema di transizioni in cui le configurazioni devono permettere di definire lo stato del sistema, le configurazioni terminali rappresentano i risultati, le transizioni descrivono l’evoluzione del sistema durante la computazione delle istruzioni del programma. 9/30/2019

2 Un sistema di transizioni per espressioni semplici
Il sistema di transizioni che descrive la semantica di un linguaggio di programmazione (anche se non completo),è piuttosto complesso, per cui verrà introdotto per passi; Inizieremo con semplice linguaggio di espressioni che può essere descritto da un sistema di transizione molto semplice via via estenderemo il linguaggio, con nuovi meccanismi e di conseguenza il sistema di transizioni verrà anch’esso esteso. Exp::= Exp Op Exp | Num | ‘(‘Exp’)’ Op::= + | - | * | / Num::= ... Espresioni semplici 9/30/2019

3 Il sistema di transizioni per le espressioni semplici
Semantica di Exp: Sexp  < exp, Texp, exp> exp  {E | E Exp}  {n | n} T exp  {n | n} exp Eexp n E’exp n’ n [op] n’ = m E op E’exp m Eexp n (E)exp n n exp n (Expop) (Exp()) (ExpNum)

4 Esempio: calcolo di 25-3*7 25 - 3 * 7 exp{ (expop), 25 expnum 25,
3 [*] 7 = 21 } 21 25 > 21 , 25 [-] 21 = 4 } 4

5 Semantica Operazionale: Espressioni Ia estensione (identificatori per costanti)
Riferire una quantità mediante un nome è utile ed è prassi comune in molti formalismi. Le variabili in matematica sono dei nomi (identificatori) ai quali è associato un valore. Nei linguaggi di programmazione di tipo imperativo (e quindi anche object-oriented come Java) gli identificatori con associato il valore sono un meccanismo fondamentale per la definizione dei programmi. = 138,16 allorche’ Pigreco=3,14 = 138,226 allorche’ Pigreco=3,1415 2 * Pigrego * 22

6 Identificatori In ogni linguaggio è necessario definire dei nomi, nei L.P. i nomi vengono chiamati identificatori ed hanno una particolare sintassi, generalmente: Ide::=Lettera Carattere* Lettera::=A|B|C|…|Z|a|b|…|z, Carattere::=Lettera|Cifra|Simbolo, Cifra::=0|1|2|…|9, Simbolo::=-|$|%|:|<|…, Alcuni simboli non sono ammessi 9/30/2019

7 Un linguaggio d’espressioni con identificatori di costanti
Una grammatica G Exp::= Exp Op Exp | Num | ‘(‘ Exp ‘)’ | Ide Op::= + | - |* | / Num::= … Ide::= ... 9/30/2019

8 Frame Un frame è una funzione da Identificatori in Valori: Ide Val.
è una funzione parziale cioè definita solo per alcuni valori del dominio per gli altri è indefinita (). w è il frame sempre indefinito (cioè  x Ide w(x)=  Esempi: se 1={<Pigreco,3.14>, <Euro,1936>} e 2={<Pigreco,3.1415>} 1(Pigreco)=  (2 * Pigrego * 22) j1 = 138,16 j2(Pigreco)=  (2 * Pigrego * 22) j2 = 138,226 j1(Euro)= 1936 j2(Euro)=  9/30/2019

9 Espressioni con identificatori di costanti
Semantica di Exp: Sexp  < exp, Texp, exp> exp  {<E,j> | E Exp, j{Ide Val}  {n | n} T exp  {n | n} exp <E,j>exp n <E’,j> exp n’ n [op1] n’ = m <E op1 E’,j> exp m <E,j> exp n <(E),j> exp n <n,j> exp n j(x)= n <x,j> exp n (Exp+|-) (Exp()) (ExpNum) (ExpIde)

10 Esempio:calcolo di 2*Pigreco*22
<2 * Pigreco * 22, j{Pigreco=3}> exp{ (exp*|/), 2 expnum 2 , Pigreco * 22 exp { (exp*|/), Pigreco exp { (expIde), j(Pigreco)=3 } 3 22 expnum 22 3 [*] 22 = 66 } 66 2 [*] 66 = 132 } 132


Scaricare ppt "Semantica operazionale:"

Presentazioni simili


Annunci Google