220 likes | 334 Views
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
E N D
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 operációs szemantika denotációs szemantika axiomatikus szemantika Programozáselmélet
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
Transzlációs szemantika Program Input adat Transzlációs függvény Tárgyprogram Végrehajtás Program output
Szövegkörnyezet • Nem hiszek a reinkarnációban. Már az előző életemben sem hittem benne. • Edd meg fiam a héját is! – mondta a sas a válogatós fiókájának. • Bizonytalan vagyok. Vagy mégsem?
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
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.
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
Példa: Bináris valós konstansok • Környezetfüggetlen nyelvtan: • Attribútumok rendszere:
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
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
Szintaxisfa S . N N B N B N N B 0 N B 1 1 0
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
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
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
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
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
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
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
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.)
Pragmatika • - Nincs itt túl meleg?= Legyen szíves kinyitni az ablakot.- Mindjárt kinyitom az ablakot. • - Nem unja már? = Nagyon zavar, amit csinál, legyen szíves befejezni.- Ha zavarja, befejezem. • - Mi van itt, bolondok háza?! = Azonnal fejezzék be ezt a rendetlenkedést.- Elnézést, azonnal befejezzük. vagy- Igen, de mi itt csak látogatók vagyunk.