Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.

Hasonló előadás


Az előadások a következő témára: "Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy."— Előadás másolata:

1 Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy eleme: d  D. Értelmezés (interpretáció): A D tartomány konstans elemeinek értelmezése egy l(c) leképezés, amely minden c konstanshoz hozzárendeli az l(c) értéket. Azt mondjuk a c jelentése, szemantikája: l(c). Egy rendszer szemantikai tartománya általában: D =  D T ; T : típus

2 Példa: D integer = {..., -1,0,1,...}; D boolean = {true, false}; D T1 ...  Tn  T = D T1 ...  D Tn  D T ; Az összes függvény halmaza, amelyek a D T1,...,D Tn halmazokból D T halmazra képeznek le. l(c) értelmezés: Az alaptípusok minden konstansa saját magának az értelmezett értéke: ha c alaptípusú, akkor l(c) = c. Példa: Az 1 integer konstans értelmezi az 1 integer számot. A true boolean konstans értelmezi a true boolean értéket.

3 Minden magasabb típusú konstansnak, amelyet op operációval előállítunk az értelmezése l(op). Példa:Boolean alaptípus. Legyen op: .  (true) = false;  (false) = true;

4 Állapotok. A konstans állapota annak értéke. A változó állapota annak mindenkori értéke. A változó mindenkori értékeit egy a szóba jöhető mindenkori értékeket tartalmazó halmazból veszi: set of proper states. Minden T típusú egyszerű és array változóhoz hozzárendelt értékek halmaza a mindenkori értékek: set of proper states. Jelölése: . Példa. Legyen  egy tömb. Típusa: integer  boolean  boolean; Legyen x egy integer típusú változó.

5 Példa. Legyen  egy tömb. Típusa: integer  boolean  boolean; Legyen x egy integer típusú változó.  (  ) : {...,-1,0,1,...}  {true, false}  {true, false}; x értékei: {...,-1,0,1,...}. Pl.:  (  )(1, true)  {true, false};  (  )(5,false)  {true, false}; (  x  {...,-1,0,1,...})(  (  )(  (x),false)  {true, false});

6 Szemantika definíciója. Egy T típusú s kifejezés szemantikája az S struktúrában (s  S) egy leképezés: S[  s  ] ;   D T ; ( s-hez rendeli az S[  s  ](  ) értéket D T halmazon belül). S[  s  ](  ) induktív definíciója. Ha s egyszerű változó: S[  s  ](  ) =  (s); Ha s egy alaptípusú konstans, amelynek értéke d. S[  s  ](  ) = d; Ha s  op(s 1,...,s n ), amelynek értékét f függvény adja: S[  s  ](  ) = f(S[  s 1  ](  ),...,S[  s n  ](  )); Ha s   [s 1,...,s n ], egy tömbváltozó: S[  s  ](  ) =  (  )(S[  s 1  ](  ),...,S[  s n  ](  ));

7 Ha s  if B then s 1 else s 2 fi egy feltételes elágazás: S[  s 1  ](  ) ha S[  B  ](  ) =T; S[  s  ](  ) = S[  s 2  ](  ) ha S[  B  ](  ) =T; Rövid jelölés: S[  s  ](  ) =  (s); Példa: (Ha s  op(s 1,...,s n ), amelynek értékét f függvény adja: S[  s  ](  ) = f(S[  s 1  ](  )),...,S[  s n  ](  )); Legyen a függvény: s  add(a,b); a,b  integer; S[  s  ](  ) = add(S[  a  ](  ),S[  b  ](  )) = add(a,b); s=a+b; S[  s  ](  ) = S[  a  ](  )+S[  b  ](  )) = (a+b);

8 Állapotok aktualizálása. Adva  állapot. Az állapot aktualizálása:  [u:=d]; u egy T típusú egyszerű változó, vagy indexes változó; d egy T típusú elem. Ha u egyszerű változó, akkor az eredmény d ha u  v,  [u:=d](v) =  (v) különben. Példa: x egy integer típusú változó,  megfelelő állapot.  [x:=1](x) = 1, Minden y =x esetén:  [x:=1](y) =  (y),

9 Ha indexes változókról van szó: u  A[t1,...,tn], akkor Egyszerű, vagy indexes: d; ha u  v  [u:=d](v) =  (v); ha u  v A-ra és az argumentum értékeire alkalmazandó. Jelölés: d =  (A), d i =  (t i ); minden i  {1,...,n};  [u:=d](A)(d 1,...,d n ) = d,ha d i =  (t i ); minden i  {1,...,n};  (A)(d 1,...,d n ); különben. Tehát a hatás az A tömb változónak az aktualizálása az argumentum változóknak az aktuálisa révén.

10 Példa. x  integer;  ;  [x:=1](x) =1; y=x:  [x:=1](y) =  (y); Hasonlóan: , amelynek típusa: T 1 ...  T n  T; és d i  D Ti, i  {1,...,n};  [x:=1](a)(d 1,...,d n ) =  (a)(d 1,...,d n );

11 Állítás, (assertion). Minden bool kifejezés állítás. Ha p,q állítás akkor  p, p  q, p  q, p  q, p  q szintén állítás. Ha x egyszerű változó és p(x) egy állítás, akkor  x:p(x);  x:p(x); szintén állítások. Relációk: , =, , , , . Relációkkal képezett kifejezések állítások. Error állapotok is állítások: , , fail; Benne foglaltatás, része, stb. is állítás: , , ,...

12 Példa. Legyen A bool típusú tömb: A : integer bool  bool; Legyen j,k  integer, b  bool, és  bool kifejezés. Ekkor logikai kifejezések a következők:   A[j+1, b];   A[ 2  j, A[k,~b]]; Alaphalmazok: (integer = {..., -1, 0, 1,2,...}; bool = {"true", "false"}, Az alaphalmazokon értelmezett szokásos kifejezések rekurzív definíciója: kifejezés e::= c  x  (e1 + e2)  (e1-e2)  (e1  e2); bool kifejezés b ::= (e1 = e2)  (e1  e2)  ~b  (e1  e2),

13 A p állítás szemantikája S[p] :   {true, false}; Jelölés: S[p](  ) : adott  mellett S[p] = true; {  p(  )  }; Röviden: {p(  )}; {p}; , , fail  {p}; Állítások szemantikája: {~p}=  \ {p}; {p  q}= {p}  {q}; {p  q}= {p}  {q}; p  q = true akkor és csak akkor, ha {p}  {q}; p  q = true akkor és csak akkor, ha {p} = {q}; S[p](  ) = true; helyett néha röviden:   p;

14 Behelyettesítés (substition). A behelyettesítés egy függvény, amely kifejezésről kifejezésre, állításról állításra képez le: Behelyettesítés: expression  expression; Legyen u egy egyszerű, vagy indexes változó, amely egy s kifejezés része. Az s kifejezésben az u helyettesítését a t kifejezéssel a következő jelöli: s[u:=t]. Példák: max(x,y)[x:=x+1]  max(x+1,y); max(a[1],y)[a[1]:=2]  max(2,y); max(a[x],y)[a[1]:=2]  if x=1 then max(2,y) else max(a[x],y) fi;

15 s[u:=t] formális definíciója. s  x, x egyszerű változó: t ha s  u; s[u:=t]  s különben; s  c, ahol c alaptípusú konstans: s[u:=t]  s; s  op(s 1,...,s n ): s[u:=t]  op(s 1 [u:=t],...,s n [u:=t]); s   [s 1,...,s n ]; ahol  tömb, u egyszerű, vagy indexes változó: s[u:=t]   [s 1 [u:=t],...,s n [u:=t]]; s  if B then s 1 else s 2 fi: s[u:=t]  if B[u:=t] then s 1 [u:=t] else s 2 [u:=t] fi;

16 Minden s, t kifejezésre, minden x egyszerű változóra és minden  (t 1,...,t n ) indexes változóra s[x :=t]  s ha s nem tartalmazza x-et; s[  (t 1,...,t n ) := t]  s ha s nem tartalmazza  -át; Példa. a,b integer  típusú tömbök és x integer típusú változó. a[b[x]][b[1]:=2] (def. s[u:=t] ha a=b) : a[b[x]][b[1]:=2]  (def. s[u:=t] alapján) a[if x[b[1]:=2] =1then 2 else b[x[b[1]:=2]] fi]  (x[b[1]:=2]  x szerint)  a[if x=1then 2 else b[x] fi];

17 A determinisztikus program: egy szimbólumokból képezett string. Kulcsszavak: if, then, else, fi, while, do, od. A programot generáló grammatika: S::= skip | u:= t | S 1 ; S 2 | if B then S 1 else S 2 fi | while B do S od. u: egyszerű, vagy indexes változó; t: kifejezés; u és t típusa megegyezik. B: kvantor-független logikai kifejezés; if B then S fi  if B then S else skip fi; Az S,S 1,S 2 programok változói: egyszerű, vagy indexes változók.

18 Az S determinisztikus program jelentése: A megfelelő (kezdő) állapotok halmazáról megfelelő (vég-)állapotok halmazára történő leképezés: M[S]. Hogyan definiáljuk? Denotációs szemantika-definíciós módszer. Operációs szemantika-definíciós módszer. (minden programtípusra kézenfekvő) Adva az absztrakt gép. Adva a program: S. Adva a megfelelő állapothalmaz: . Az absztrakt gép konfigurációja:  S,   ;  ; A program végrehajtása konfigurációk közötti átmenetek sorozata.

19 Konfigurációk közötti átmeneti reláció ( transition relation ):  Konfigurációk közötti átmenet: konf 1  konf 2  S,    R,  ; ,   ; R: maradék program; Befejeződés: A program végrehajtásának befejeződésének eredménye:  R,  ; R  E : üres program; A program befejeződik a  állapotban.


Letölteni ppt "Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy."

Hasonló előadás


Google Hirdetések