Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaAnikó Ráczné Megváltozta több, mint 10 éve
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.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.