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

Programozáselmélet Logikák és módszerek a programhelyesség bizonyításához.

Hasonló előadás


Az előadások a következő témára: "Programozáselmélet Logikák és módszerek a programhelyesség bizonyításához."— Előadás másolata:

1

2 Programozáselmélet Logikák és módszerek a programhelyesség bizonyításához

3 Programozáselmélet n Programmodellek n szekvenciális programok n rekurzív programok n nemdeterminisztikus elemek n párhuzamos programok n funkcionális programok n Programok szemantikája n transzlációs szemantika n attribútumnyelvtanok n operációs szemantika n denotációs szemantika n axiomatikus szemantika

4 Programozáselmélet Operációs szemantika Denotációs szemantika Axiomatikus szemantika Szekvenciális programok Rekurzió Nemdeterminisz- tikus elemek Párhuzamosság Funkcionális programok

5 Irodalom n Jan van Leeuwen ed.: Handbook of Theoretical Computer Science: Formal Models and Semantics, Elsevier Pub. 1990. –P. Cousot: Methods and Logic for Proving Programs –H. P. Barendregt: Functional Programming and Lambda Calculus n H. R. Nielson - F. Nielson: Semantics with Applications: A Formal Introduction, 1992. www.daimi.au.dk/~hrn n Kozma L. - Varga L.: A szoftvertechnológia elméleti kérdései, ELTE 2003. n Csörnyei Z.: Lambda-kalkulus, előadás jegyzet ELTE

6 Transzlációs szemantika Program Input adat Tárgyprogram Program output Transzlációs függvény Végrehajtás

7 Attribútumnyelvtan Komponensei: n G környezetfüggetlen nyelvtan n A attribútumok rendszere A nyelvtan nemterminális szimbólumaihoz attribútumokat (adott típusú változókat) rendelhetünk, Ezek tartalma lesz a jelentés egy- egy komponense. Az attribútumok kétfélék: szintetizáltak és örököltek. Az előbbiek a nemterminálisból levezetett szóból kinyer- hető jelentést, míg az utóbbiak a szövegkörnyezet jelentés- módosító hatásait tartalmazzák. n Pszemantikai egyenletek –Az egyenletekkel lehet definiálni a nyelvtan szabályaiban szereplő nemterminálisok attribútumai közti összefüggéseket

8 Egy mondat jelentésének meghatározása: A mondat szintaxisfájában szereplő nemterminálisok attribútumai annyi példányban szerepelnek, ahány példányban maga a nemterminális szerepel. Egy nemterminálisból levezetett részszó jelentését a nemterminális szintetizált attribútumai képviselik, amely függ a külső hatásokat megtestesítő örökölt attribútumuktól. Azaz a kiszámítás folyamatában az örökölt attribútumok az input adatok, a szintetizáltak az outputok. Az attribútumelőfordulások tartalmának meghatározása a szemantikai egyenletek alapján történik. Attribútumnyelvtan

9 Attribútumfüggőségek sémája p A q u B vx C y... Szintetizált attribútumok: q, v, y Örökölt attribútumok: p, u, x

10 Példa: Bináris valós konstansok n Környezetfüggetlen nyelvtan: n Attribútumok rendszere:

11 Példa: Bináris valós konstansok n Szemantikai egyenletek és a lokális függőség. S v r N v l r B v

12 Példa: Bináris valós konstansok n Szemantikai egyenletek és a lokális függőség r N v l 0 r B v 1

13 Szintaxisfa S N. N N B N NB0B B N 01 1

14 Attribútum előfordulások. S v 0 01 1 r N v l r B v

15 Lokális attribútum függőségek. S v 0 01 1 r N v l r B v

16 Globális attribútum függőségek. S v 0 01 1 r N v l r B v

17 Attribútumok redukálása. S v 0 01 1 r N v l r B v

18 Attribútumok kiértékelése. S v 0 01 1 r N v l r B v 0 1 1 2 0 2 0 2 0 00 0 1 2 -2 0.25 2.25

19 Operációs szemantika ProgramInput adat Eredmény Operációspecifikáció Az operációspecifikáció szokásos komponensei: n konfigurációk halmaza operációs reláció: bináris reláció a konfigurációk halmazán (a megtehető elemi operációk halmaza) n kezdő konfigurációk, végkonfigurációk

20 Denotációs szemantika Program Matematikai denotáció Jelentésfüggvény Az inputot és outputot, és a köztük lévő kapcsolatot kifejező matematikai objektum a matematika nyelvén megfogalmazva

21 Axiomatikus szemantika Magasabb absztrakciós szint: nem a program inputja és outputja közti kapcsolat közvetlen leírása a cél. n Feladat (pl. input- és output- feltételpár) n Helyességfogalmak (feladat és program viszonya) n Kalkulus a helyesség bizonyításához n A helyességet kifejező formulák n Axiómák, levezetési szabályok (pl. Hoare-kalkulus, Dijkstra-kalkulus stb.)

22 Matematikai jelölések n  x  E. P(x)   x (x  E  P(x)) n  x  E. P(x)   x (x  E  P(x)) n  F(x)  P(x)    y   x ( y  F(x)  P(x))  n  e 1, e 2,…,e n   E n vagy (e 1, e 2,…,e n )  E n n r  E n halmaz komplementere:  r n reláció  részhalmaz n unáris reláció: r  E bináris reláció: r  E 2 két bináris reláció kompoziciós szorzata: r ◊ r    e, e     e  E. (  e, e  r   e, e   r  )  n diagonális reláció:    e, e   e  E 

23 Matematikai jelölések bináris reláció hatványa: r 0  , r n+1  r ◊ r n n bináris reláció reflexív, tranzitív lezártja: r     r n  n    n az r bináris reláció bal, ill. jobb oldali leszűkítése a p unáris relációra: p  r  ( p  E )  r r  p  r  ( E  p ) a p unáris relációnak az r bináris reláció szerinti képe: p ◊ r   e   e  p.  e, e   r  a p unáris relációnak az r bináris reláció szerinti inverzképe: r ◊ p   e   e  p.  e, e   r 

24 Matematikai jelölések n kép és inverzkép néhány tulajdonsága ( p, q unáris, r, s bináris relációk):  monotonitás: Ha p  q és r  s, akkor p ◊ r  q ◊ s és r ◊ p  s ◊ q  asszociativitás: (p ◊ r) ◊ s = p ◊ (r ◊ s), (r ◊ s) ◊ q = r ◊ (s ◊ q) hatványhalmaz: P  E  n fügvényhalmaz: D  E n az f  D  E függvény értékének a d helyen e -re való módosítása: f d → e

25 Szekvenciális programok - szintaxis X: Valt változók E: Kif kifejezések B: Lkif logikai kifejezések C: Uts utasítások C = skip | X  E | (C 1 ; C 2 ) | (B  C 1  C 2 ) | (B  C) Az utasítások neve rendre üres utasítás, (determinisztikus) értékadás, kompozíció, feltételes utasítás, ciklus utasítás.

26 Az utasítások szintaxisa B-N-formában  utasítás    skip |  program változó    kifejezés  |  utasítás  ;  utasítás  | if  logikai kifejezés  then  utasítás  else  utasítás  fi | while  logikai kifejezés  do  utasítás  od

27 Operációs szemantika d : D adatok s : S  Valt  D állapotok  :    S  Uts   S konfigurációk

28 Kifejezések interpretálása (szemantikája) I : Kif   S  D  kifejezések szemantikája jelölés: E  I  E  I : Lkif  P  S  logikai kifejezések szemantikája jelölés: B  I  B 

29 Példa egy programra és végrehajtására A program: (x:=x-1;(x>0*(y:=y+x;x:=x-1))) Kezdő értékek: x=3 és y=0 x yamit még végre kell hajtani x yamit még végre kell hajtani 3 0 (x:=x-1;(x>0*(y:=y+x;x:=x-1))) 2 0 (x>0*(y:=y+x;x:=x-1)) 2 0 ((y:=y+x;x:=x-1);(x>0*(y:=y+x;x:=x-1))) 2 2 (x:=x-1;(x>0*(y:=y+x;x:=x-1))) 1 2 (x>0*(y:=y+x;x:=x-1)) 1 2 ((y:=y+x;x:=x-1);(x>0*(y:=y+x;x:=x-1))) 1 3 (x:=x-1;(x>0*(y:=y+x;x:=x-1))) 0 3 (x>0*(y:=y+x;x:=x-1)) 0 3

30 Operációs átmeneti reláció Az operációs átmeneti reláció az utasítások végrehajtása során megtehető lépések halmaza. Op     Az utasítások végrehajtásának lépései, azaz az Op reláció elemei pontosan azok a rendezett, konfiguráció párok, amelyek a következőkben felsorolt konstrukciós lépések közül véges sok alkalmazásával előállnak.

31 Atomi (egylépéses) utasítások Az üres utasítás végrehajtása  s, skip  → Op s minden s  S esetén → Az értékadás végrehajtása  s, X  E  → Op s X → E  s  minden s  S, X  Valt és E  Kif esetén

32 A feltételes utasítás végrehajtásának első lépése Feltételkiértékelés és belépés a then-ágba  s, (B  C 1  C 2 )  → Op  s, C 1  minden B  Lkif, C 1, C 2  Uts és s  B esetén Feltételkiértékelés és belépés az else-ágba  s, (B  C 1  C 2 )  → Op  s, C 2  minden B  Lkif, C 1, C 2  Uts és s  B esetén

33 A ciklus utasítás végrehajtásának első lépése Feltételkiértékelés és belépés a ciklusba  s, (B  C)  → Op  s, (C ; (B  C))  minden B  Lkif, C  Uts és s  B esetén Feltételkiértékelés és kilépés a ciklusból  s, (B  C)  → Op s minden B  Lkif, C  Uts és s  B esetén

34 A lépések kompozíciós kiterjesztése Az első komponens végrehajtásának nem utolsó lépése Ha  s, C  → Op  s , C   és C  Uts, akkor  s, (C ; C )  → Op  s , (C  ; C )  Az első komponens végrehajtásának utolsó lépése Ha  s, C  → Op s  és C  Uts, akkor  s, (C ; C )  → Op  s , C 

35 Az Op reláció tulajdonságai S ◊ Op   n Ha C nem kompozíció, akkor | Op (  s, C  ) |  1 n | Op (  s, (C ; C )  ) |  | Op (  s, C  ) |

36 Az Op reláció tulajdonságai Ha  s, (C ; C )  → Op γ, akkor vagy γ   s , (C  ; C ) , vagy γ   s , C  Ha  s, (C ; C )  → Op  s , (C  ; C ) , akkor  s, C  → Op  s , C   Ha  s, (C ; C )  → Op  s , C , akkor  s, C  → Op s 

37 Végrehajtási sorozat A C utasítás s kezdőállapothoz tartozó végrehajtási sorozatának nevezzük konfigurációknak egy véges vagy végtelen { γ n } sorozatát, ahol n az első elem γ 0   s, C , n ha Op( γ n-1 )  , akkor a sorozatnak van következő, γ n eleme, és ekkor γ n-1 → Op γ n

38 A végrehajtási sorozat tulajdonságai n Végrehajtási sorozat tetszőleges, legalább kételemű záró szelete szintén végrehajtási sorozat. n Determinisztikus utasítás végrehajtási sorozata egyértelmű n Ha a determinisztikus utasítás végrehajtási sorozata véges, akkor állapotban végződik n Ha az  s, (C 1 ; C 2 )  konfigurációval kezdődő végre- hajtási sorozat véges, akkor van olyan  s, C 1 ... s végrehajtási sorozat, amelynek C -vel való kompozíciós bővítése kezdőszelete az előbbi sorozatnak.

39 A végrehajtási sorozat tulajdonságai n Ha az  s, ( B * C )  konfigurációval kezdődő végrehajtási sorozat véges, akkor a sorozat, a két szélső eleme nélkül m  0 db. olyan szakaszra bontható, amely szakaszok valamilyen  s j  1, C ,..., s j j = 1... m végrehajtási sorozatok ( B * C ) -vel való kompozíciós bővítései.


Letölteni ppt "Programozáselmélet Logikák és módszerek a programhelyesség bizonyításához."

Hasonló előadás


Google Hirdetések