1 / 38

Programozáselmélet

Programozáselmélet. Logikák és módszerek a programhelyesség bizonyításához. Programmodellek szekvenciális programok rekurzív programok nemdeterminisztikus elemek párhuzamos programok funkcionális programok Programok szemantikája transzlációs szemantika attribútumnyelvtanok

nicki
Télécharger la présentation

Programozáselmélet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Programozáselmélet

  4. Irodalom • 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 • H. R. Nielson - F. Nielson: Semantics with Applications: A Formal Introduction, 1992. www.daimi.au.dk/~hrn • Kozma L. - Varga L.: A szoftvertechnológia elméleti kérdései, ELTE 2003. • Csörnyei Z.: Lambda-kalkulus, előadás jegyzet ELTE

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

  6. Attribútumnyelvtan Komponensei: • G környezetfüggetlen nyelvtan • 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. • P szemantikai egyenletek • Az egyenletekkel lehet definiálni a nyelvtan szabályaiban szereplő nemterminálisok attribútumai közti összefüggéseket

  7. Attribútumnyelvtan 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.

  8. pA q uB v . . . xC y Attribútumfüggőségek sémája Szintetizált attribútumok: q, v, y Örökölt attribútumok: p, u, x

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

  10. S v rN v l . rN v l rN v l rN v l rB v Példa: Bináris valós konstansok • Szemantikai egyenletek és a lokális függőség

  11. rB v rN v l rB v 1 0 Példa: Bináris valós konstansok • Szemantikai egyenletek és a lokális függőség

  12. Szintaxisfa S . N N B N B N N B 0 N B 1 1 0

  13. Attribútum előfordulások S v rN v l . rN v l rN v l rB v rN v l rB v rN v l rB v 0 rN v l rB v 1 1 0

  14. Lokális attribútum függőségek S v rN v l . rN v l rN v l rB v rN v l rB v rN v l rB v 0 rN v l rB v 1 1 0

  15. Globális attribútum függőségek S v rN v l . rN v l rN v l rB v rN v l rB v rN v l rB v 0 rN v l rB v 1 1 0

  16. Attribútumok redukálása S v rN v l . rN v l rN v l rB v rN v l rB v rN v l rB v 0 rN v l rB v 1 1 0

  17. Attribútumok kiértékelése 2.25 S v 0.25 0 -2 rN v l 2 . rN v l 2 0 1 0 rN v l rB v rN v l rB v 2 1 0.25 -2 rN v l rB v 0 rN v l rB v 1 2 0 1 0 0 0 1 0

  18. Operációs szemantika Program Input adat Operációspecifikáció Eredmény • Az operációspecifikáció szokásos komponensei: • 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) • kezdő konfigurációk, végkonfigurációk

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

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

  21. Matematikai jelölések • xE.P(x)  x(xEP(x)) • xE.P(x)  x(xEP(x)) • F(x)P(x)   y x(yF(x)P(x)) • e1,e2,…,enEnvagy (e1,e2,…,en)En • rEn halmaz komplementere:  r • reláció  részhalmaz • unáris reláció: r E bináris reláció: r E2 • két bináris reláció kompoziciós szorzata: r◊r  e,eeE.(e,ere,er ) • diagonális reláció:   e,eeE

  22. Matematikai jelölések • bináris reláció hatványa: r 0  , rn+1  r◊rn • bináris reláció reflexív, tranzitív lezártja: r     rn  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) rr 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 

  23. Matematikai jelölések • 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 • fügvényhalmaz: DE • az fDE függvény értékének a d helyen e -re való módosítása: fd→e

  24. Szekvenciális programok - szintaxis • X: Valtváltozók • E: Kifkifejezések • B: Lkiflogikai kifejezések • C: Utsutasítások C = skip | X  E | (C1;C2) | (BC1C2) | (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.

  25. 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

  26. Operációs szemantika • d:Dadatok • s:S  ValtDállapotok •  : SUts  Skonfigurációk

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

  28. 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ésy=0 x y amit 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

  29. 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 Oprelá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. Operációs átmeneti reláció

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

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

  32. 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) →Ops minden BLkif,CUtsés sB esetén A ciklus utasítás végrehajtásának első lépése

  33. Az első komponens végrehajtásának nem utolsó lépéseHa 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éseHa s,C →Opsés CUts, akkors,(C ;C) →Op s,C A lépések kompozíciós kiterjesztése

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

  35. 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 →Ops Az Op reláció tulajdonságai

  36. 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 az első elem γ0s,C, ha Op(γn-1)  , akkor a sorozatnak van következő, γn eleme, és ekkor γn-1→Opγn Végrehajtási sorozat

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

  38. 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 sj1 , C , . . . , sjj = 1 ... m végrehajtási sorozatok (B*C)-vel való kompozíciós bővítései. A végrehajtási sorozat tulajdonságai

More Related