Az absztrakt programot egy olyan bináris relációként definiáljuk, amelyik egy kezdeti feltételes értékadás hatásrelációja, illetve véges sok feltételes értékadás hatásrelációjának diszjunkt uniója által generált fák ekvivalenciaosztályait rendeli az állapottér egyes pontjaihoz (. def.).
21.10. Definíció (Címkézett állapotátmenetfa).
A címkézett állapotátmenetfa egy
rendezett ötös, ahol
a fa gyökere,
a csúcsok halmaza,
az élek halmaza,
a gráf csúcsaihoz állapotokat rendelő címkefüggvény,
az élekhez természetes számokat rendelő címkefüggvény,
és pontosan egy út vezet
-ből minden
csúcsba.
21.1. Tétel.
(Az izomorfia reláció ekvivalenciareláció) Az . definícióban megfogalmazott izomorfia reláció ekvivalenciareláció az
felett generált fák halmazán.
Biz.: A reláció reflexív, mert minden fához létezik adott tulajdonságú
leképezés, az identitás. A reláció szimmetrikus, mert a bijekció
inverze rendelkezik az adott tulajdonságokkal, ha a bijekció rendelkezett
vele. Végül a reláció tranzitív, mert két adott tulajdonságú
bijekció kompozíciója is rendelkezik a megkövetelt tulajdonságokkal.
21.12. Definíció (Állapotátmenetfák ekvivalenciaosztályai).
jelölje az
felett generált fák ekvivalenciaosztályainak halmazát.
21.13. Definíció (Generált állapotátmenetfa).
Legyenek az
relációk mindenütt értelmezve az
állapottér felett, azaz
.
. Tetszőlges
pontra az
relációpár által az
ponthoz generált fának nevezzük a
irányított fát, ha
,
,
.
Reprezentáljuk az reláció által az
ponthoz generált gráfok ekvivalenciaosztályait annak egy elemével.
Legyen egy
feltételes
értékadás és véges sok feltételes értékadás nem üres halmazának rendezett párja.
J={1,..,m},
a
relációk diszjunkt uniója.
21.14. Definíció (Helyesen címkézett állapotátmenetfa).
Az
relációpár által generált fa címkézése helyes, ha minden
-ből induló él címkéje
és minden
-vel címkézett élre amely
-val címkézett csúcsból
-vel címkézett csúcsba mutat teljesül, hogy
.
21.2. Lemma.
(Helyes címkézés és ekvivalencia) Ha egy állapotátmenetfa címkézése helyes, akkor a vele ekvivalens állapotátmenetfák címkézése is helyes. Biz.: a . def. következménye.
![]()
Absztrakt programnak nevezzük az
relációt, ha az állapottér pontjaihoz a
relációpár által generált azon állapotátmenetfák ekvivalenciaosztályait rendeli, amelyek címkézése helyes. Az
által definiált
programot röviden
-sel jelöljük, és azt mondjuk, hogy
.
21.3. Megjegyzés (Műveleti szemantika).
A . definíció megadja a párhuzamos absztrakt program szemantikai jelentését. Ez a szemantika műveleti jellegű, a programnak megfelelő gráf valójában a műveleti szemantika címkézett állapotátmenet gráfjával azonosítható (. fejezet). Megjegyezzük, hogy ez a szemantika olyan programok között is különbséget tesz, amelyek egyaránt megoldásai (. def.) ugyanannak a feladatnak, de más-más végrehajtási utakat definiálnak.
21.16. Definíció (Végrehajtási út).
A
ekvivalenciaosztály reprezentánsának bármelyik útját végrehajtási útnak nevezzük.
Az
halmaz elemeinek végrehajtási útjain elhelyezkedő csúcsok címkéinek halmazát jelöljük
-val.
az
állapotból elérhető állapotok halmazaEzen állapotok az absztrakt program állapotátmenetfájában érhetőek el, de valamely ütemezési kikötés mellett a konkrét program által már nem feltétlenül elérhetőek..
21.18. Definíció (Absztrakt program változói).
Jelöljük
-sel az
program utasításainak baloldalán álló változók (. def.) halmazát, azaz
. Jelöljük a jobboldalon álló változók (. def.) halmazát
-sel.
.
Feltételezzük, ha több processzor hajtja végre a konkrét programot, akkor ez hatékonysági szempontoktól eltekintve hatásában megegyezik azzal, mintha egyetlen processzor válogatott volna valamilyen nemdeterminisztikus sorrendben az utasításhalmaz elemei közül. Megengedjük ugyan, hogy két vagy több processzor időben átfedve hajtsa végre ugyanazon utasítás különböző elemi lépéseit vagy különböző utasításokat, de az így kapott eredménynek meg kell egyeznie valamelyik eredménnyel azok közül, amelyet valamelyik végrehajtási út mentén egyetlen processzor állított volna elő. Feltételezzük tehát, hogy az absztrakt programot oly módon implementáljuk, hogy elemi építőköveire, a szimultán feltételes értékadásokra párhuzamos végrehajtás esetén teljesül a sorbarendezhetőség [[???Lam Lyn 90]] követelménye. Egy-egy sorrendet egy-egy végrehajtási út ír le.
21.4. Megjegyzés.
Az . definíció alapján megállapíthatjuk, hogy a modellben szimultán feltételes értékadások valós aszinkron párhuzamos végrehajtását nem tudjuk kifejezniValós párhuzamosság esetén összetett feladatok megoldását általában nem lehet modulokból előállítani (. fejezet). A modell programfogalma összefésüléses szemantikán (. fejezet) alapszik. A szinkron párhuzamos végrehajtás leírására a szimultán értékadás alkalmas.
Az utasítások halmazát sok esetben halmazműveletek segítségével állítjuk majd elő a megoldás logikai struktúrájának megfelelő modulokból. Egy-egy modul leírhatja például egy-egy objektum viselkedését [[???Cha Mis 89, ???Sin 91]]. A modulok uniójaként vagy szuperpozíciójaként kapott program [[???Cha Mis 89]] utasításait hatékonysági szempontok figyelembevételével képezhetjük le logikai vagy fizikai processzorokra. A modul tehát programtervezési, a folyamat pedig implementációs fogalom.
Definiáljuk az állapottér
egy altere felett definiált
utasítás
kiterjesztettjét oly módon, hogy abban a kiegészítő altér változói ne álljanak
egyetlen utasítás baloldalán és jobboldalán sem és a kiterjesztett utasítás
-re vett vetülete
éppen
legyen [[???Fót 83, ???Fót 88]].
Legyen az
tér az
állapottér altere. Legyen az
altér felett definiált
utasítás kiterjesztése az
utasítás. Ekkor:
.
Biz.: Az utasítás kiterjesztésének definíciója szerint
,
így
. Felhasználva, hogy egy utasítás hatásrelációjának (. def.)
kiszámítása és a vetítés kommutatív, a lemma állításához jutunk.
Gyakran alkalmazzuk egyes utasítások definíciójánál azt a módszert, hogy egy meglévő és ismert hatásrelációjú feltételes értékadást módosítunk.
21.5. Megjegyzés.
Tegyük fel, hogy
nem szerepel az
értékadás baloldalán (. def.). Ekkor az előző definíció értelmében speciális esetként definiálhatjuk az
feltételes értékadás és a
egyszerű értékadás szuperpozícióját:
![]()
![]()
.
(Szuperpozíció hatásrelációja) Legyen
és
azonos állapottéren adott két feltételes értékadás és legyen
. Ekkor
.
Biz.: Jelöljük -val azt a relációt, amelyik minden ponthoz önmagát rendeli
(
).
Legyen
.
,
így
.
,
tehát
,
így
.
Definiáljuk az program
-ra való kiterjesztettjét utasításonként.
Legyen az
és
tér az
állapottér két egymást kiegészítő altere. Legyen
program az
altér,
az
tér felett definiálva. Az
programot az
program
-ra való kiterjesztésének nevezzük, ha minden utasítása kölcsönösen egyértelműen megfeleltethető az
program egy utasítása kiterjesztésének.
21.6. Megjegyzés.
A . lemma és az absztrakt program definíciója alapján könnyen belátható, hogy
és
.