1 elméleti kérdést, „szemantika és szemantikai célprogramok”

1.1Operatsionnaya szemantikája 3

1.2Denotatsionnaya szemantikája 5

1.3Aksiomaticheskaya szemantika 8

1.4Translyatsionnaya szemantika 9

1.5Vyvody vonatkozóan, hogyan lehet a szemantika 10

2. A probléma öt étkezési filozófusok 10

2.1 Nyilatkozat a probléma 10

2.2 Solution 11

2.3 vételi eljárások annak biztosítására, hogy az oldat 12

3 Irodalom 15

1 elméleti kérdést, „szemantika és szemantikai programozási rendszer” 3

1.1 Működési semantika3

1.2 Denotational semantika5

1.3 axiomatikus semantika8

1.4 Transzlációs semantika9

1.5 Következtetések a meghatározási módszerét semantiki9

2. A probléma öt Diners filosofah10

2.1 nyilatkozat zadachi10

2.2 Megoldás zadachi10

2.3 Listing eljárások, amelyek biztosítják, hogy a döntés zadachi11

3 Listája használt istochnikov15

A legtöbb iránymutatás meghatározza a szemantika megadott szöveges formában. Általános szabály, hogy az első útján formális nyelvtan meghatározza a szintaxis a tervezés, majd megmagyarázni a szemantika néhány példát, és egy kis magyarázó szöveget. Sajnos, a szöveg értelmét gyakran félreérthető, hogy a különböző olvasók megértsék másképp. A programozó kaphat a téves benyomást kelti, hogy meg fog tenni, ha a program által írt neki, és a fejlesztő végre olyan nyelvi konstrukció eltérően más fejlesztők megvalósításai az adott nyelvet. Ami a szintaxis, szükségünk van néhány módszer, amely lehetővé teszi a pontos és tömör meghatározása nyelv szemantikája.

A feladat meghatározása a szemantika a programozási nyelv tekinthető teoretikusok régen, de még mindig nem talált kielégítő univerzális megoldás. Ez rengeteg különböző technikák hivatalos meghatározása szemantika. Vegyünk néhány közülük.

Szólva módszereit meghatározó szemantikai, nem beszélve a működési szemantika. Az operatív szemantika csökken a leírás értelmében a program végrehajtása révén a gazdasági szereplők valós vagy virtuális gépen. Értelmében az üzemeltető által meghatározott változások a gép állapotát végrehajtása után nyilatkozatot. Ahhoz, hogy megértsük ezt a koncepciót, úgy a parancs gépi nyelv.

Hagyja az állam a számítógép - ez az érték valamennyi regiszterek és a memória, beleértve állapot kódokat és állapot regiszterek. Ha csak írj az állapotát a számítógépen futtassa a parancsot, amelynek értelmében a meghatározni kívánt, majd fedezze fel az új állam a gép, a szemantika ezt a parancsot világossá válik: ez képviseli a változást az állapot a számítógép által okozott parancs végrehajtása.

Leírás az operatív szemantika egy magas szintű programozási nyelvek, szolgáltatók létrehozását igénylik a valós vagy virtuális gépen. Számítógépes hardver egy tiszta tolmácsolója a gépi nyelv. Net tolmács bármilyen programozási nyelv által meghatározott program, amely vált virtuális számítógép azon a nyelven. A szemantikája magas szintű nyelven leírható tiszta tolmács a nyelvet. Ezzel a megközelítéssel azonban van két probléma. Először is, a komplexitás és sajátosságait számítógépes hardver és operációs rendszer fut a tiszta tolmács, akadályozza megértését folyamatban lévő műveletek. Másodszor, rendezett, oly módon szemantikai definíció csak akkor lesz elérhető, hogy az emberek teljesen azonos az a számítógép konfigurációját.

Ez a probléma elkerülhető azáltal, hogy a valódi számítógép virtuális számítógép alacsony. Regiszterek, memória, státusára vonatkozó információkat és végrehajtásának folyamatában szereplők - mindezt lehet szimulálni a megfelelő programokat. A parancs, akkor létrehozhat úgy, hogy a szemantika minden csapat volt könnyű megérteni és leírni. Így a gép lett volna idealizált és lényegesen egyszerűbbé, amelyek megkönnyítik a változások megértését az ő állapotában.

A működő módszer teljes leírása a szemantika a programozási nyelv Ltrebuet létrehozása két részből áll. Először is, átalakítani yazykaLv szereplők kiválasztott alacsony szintű fordító van szükség. Másodszor, ez az alacsony szintű nyelv virtuális gép szükséges, az állam, amely megváltoztatta a parancsokat kapott a magas szintű broadcast szereplők. Megváltoztatja az állam a virtuális gép határozza meg a jelentését a nyilatkozatot.

1.1 táblázat mutat példát, amelyben a szemantikai szerkezet foryazyka C lehet leírni szempontjából a következő egyszerű parancsokat.

1.1 táblázat - Példa a működési szemantikáját

Az üzemeltető C

goto címke, ha a var relop var goto címke

Itt relop - az egyik egy sor relációs operátorokkal, ident - ID, egy var - azonosító vagy állandó. Mindezek szereplők egyszerű és könnyen érthető, és végre.

Az első és legfontosabb felhasználása a hivatalos működési szemantika leírása volt a szemantika PL / I nyelven. Ez az absztrakt gép és PL / I nyelv fordítás szabályok hívták név: Bécs Definition Language (VDL) tiszteletére a város, ahol létrehozták az IBM.

Az operatív szemantika addig hatásos, amíg a leírás a nyelv marad az egyszerű és informális. Sajnos, a leírása VDL PL / I nyelv annyira bonyolult, hogy a gyakorlati célokra valójában.

Működési szemantika függ algoritmusok helyett matematika. Az üzemeltetők egy programozási nyelv, írják le egy másik programozási nyelv szereplőket, akiknek alacsonyabb szinten. Ez a megközelítés vezethet egy ördögi kör, ahol a koncepció hallgatólagosan által kifejezett magukat. A leírt módszerek az alábbi két részből áll, sokkal inkább formális értelemben, hogy támaszkodnak logika és a matematika, hanem a gép.

Denotational szemantika - a legsúlyosabb ismert leírását az alkalmazás módszere. Ez határozottan a elmélet rekurzív függvények. Átfogó felülvizsgálatát a denotational szemantika - egy hosszú és bonyolult üzlet.

Az alapkoncepciója denotational szemantika, hogy meghatározza az egyes lényege a nyelv egy matematikai és egy bizonyos függvényként esetekben a szervezetek a példákban ennek a matematikai objektumot. Mivel az objektumok vannak meghatározva szigorúan, azok pontos jelentését az érintett szervezetekkel. Maga az ötlet alapja az a tény, hogy a létezése szigorú módszerek manipulálni matematikai tárgyak helyett szerkezetek programozási nyelvek. Az összetett ez a módszer új objektumok létrehozásához és kijelző funkciók. A név „denotational szemantikája” A módszer származik az angol szó jelölnek (jelzik), mint egy matematikai objektum jelzi értelmében a megfelelő szintaktikai természetét.

Egy bevezetés denotational általunk használt módszer nagyon egyszerű design nyelv - bináris számokat. A szintaxis ezeket a számokat lehet leírni a következő nyelvtani szabályok:

<двоичное_число> → 0 | 1; | <двоичное_число> 0; | <двоичное_число> 1.

A leírás, bináris számokat denotational szemantikai és nyelvtani szabályokat a fent említett, a tényleges értéket az egyes szabály, amelynek a jobb oldalán az egy terminál (fő) karaktert. A tárgyak ebben az esetben decimális számokat.

Ebben a példában a jelentős tárgyakat közli az első két szabályt. A másik két szabály, bizonyos értelemben, számítási szabályok, mivel kombinálják egy terminál szimbólum, amelyhez egy tárgy lehet társított nem-terminális, amely képviseli egy bizonyos kialakításra.

Tegyük fel, hogy a domain értékeinek szemantikai tárgyak halmaza nemnegatív egészek decimális Nat. Ezek a tárgyak, amelyeket meg akarunk kapcsolni bináris számokat. A szemantikai funkció térképek Mb szintaktikai tárgyak sokaságát N tételek a szabályok szerint a fent meghatározott. Ő Mb függvény definíciója a következő:

Mb ( '0') = 0, MB ( '1') = 1; Mb (<двоичное_число> '0') = 2 × Mb (<двоичное_число>); Mb (<двоичное_число> '1') = + 2 × Mb (<двоичное_число>) + 1.

Leírása a decimális szintaxis literálok. <десятичное_число> → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; | <десятичное_число> (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9).

Denotational kijelző ezen szintaktikai szabályok a következők:

Md ( '0') = 0, Md ( '1') = 1. Md ( '9') = 9; Md (<десятичное_число> '0') = 10 × Md (<двоичное_число>); Md (<десятичное_число> '1') = 10 × Md (<десятичное_число>) + 1; ... Md (<десятичное_число> '9') = 10 × Md (<десятичное_число>) + 9.

Meghatározása után a teljes rendszer lehet használni egy adott nyelv határozza meg a jelentését a teljes program a nyelvet. Ez megteremti az alapját egy nagyon szigorú gondolkodásmód programozás.

Denotational szemantika egy program lehet definiálni a feltételek változása ideális számítógépet. Hasonlóképpen meghatározott működési cemantiki körülbelül azonos határozott és Denotational. Az egyszerűség kedvéért azonban, a meghatározás csupán a kiszámolják a deklarált változók a programban. Működési és denotational szemantika abban különböznek, hogy az állami változások a működési szemantika határozza meg programozott algoritmusok és denotational szemantika határozza meg szigorú matematikai függvények. Hagyja az állam s program olyan halmaz, rendezett párokat:

Minden paraméter i változó nevét, és a megfelelő paramétereket v a jelenlegi e változók értékeit. Bármelyik paraméter v lehet egy különleges értéke undef, jelezve, hogy a hozzá tartozó érték jelenleg nem definiált.

Let VARMAP - függvényében két paraméter, a változó nevét és állapotát a program. VARMAP funkció érték (IK, s) egyenlő vk (megfelelő érték ik paraméter s állapotban).

A legtöbb szemantikai leképezési függvények programok és a program tervez az államot képviselik az állam. Ezek a változások az állami meghatározására használt értelmében programok és a program tervez. Megjegyezzük, hogy a nyelvi konstrukciók, mint a kifejezés, nem jelennek meg az állapot és nagyságát.

A kifejezések alapján legtöbb programozási nyelv. Sőt, mi csak azokkal nagyon egyszerű kifejezéseket. Az egyetlen szereplők szereplők, mint a + és ×; kifejezések nem tartalmazhat egynél több piaci szereplő; csak operandusok skaláris változók és egész literálok; A zárójelek nem használják; kifejezés értéke egy egész szám. Az alábbi leírás ezek a kifejezések: <выражение> → <десятичное_число> | <переменная> | <двоичное_выражение> <двоичное_выражение> → <выражение_слева> <оператор> <выражение_справа> <оператор> → + | ×

Meghatározása után a teljes rendszer lehet használni egy adott nyelv határozza meg a jelentését a teljes program a nyelvet. Ez megteremti az alapját egy nagyon szigorú gondolkodásmód programozás.

Denotational szemantika lehet használni a nyelv kialakulása. Az üzemeltetők, amelyek leírják a denotational szemantika nehéz, nehéz lehet a felhasználók számára, hogy megértsék a nyelvet, majd a fejlesztő meg kell fontolnia egy alternatív design.

Egyrészt, denotational leírások igen összetett, a másik - ezek olyan nagyszerű módszer a rövid leírást a nyelv [1, S.188-191].

Ha a működési szemantika elsődleges célja, hogy egyértelműen meghatározza a magatartási szabályokat ügyvezető Program, a axiomatikus (deduktív) szemantika elsődleges célja, hogy egyértelműen meghatározza a magatartási szabályok művész bizonyítása tulajdonságai programok (a legérdekesebb ezek a tulajdonságok - az ingatlan, így néhány eredményt bizonyos bemeneti adatok).

Axiomatikus szemantika (levezetését, deduktív, logikai) alapul a rendszer axiómája, feltételezi a tulajdonságait az alapvető nyelvi konstrukciók és következtetési szabályok, amelyek lehetővé teszik, hogy megkapjuk a tulajdonságait olyan programokat és azok fragmentumok révén a visszavonás a következtetési szabályok axiómák. A fő célja ennek módon írják le a szemantika az, hogy bizonyítani a helyességét programok révén a matematikai logika.

Itt az a meghatározás, hogy megadja a szótár: axiomatikus szemantika - szemantika programozási nyelvek, amelyek értékét a nyelvi szerkezetek vagy programokat valamilyen programozási nyelv határozza meg a „axióma”. Minden állítás axióma kijelenti, hogy igaznak kell lennie, miután annak végrehajtását keretében ami igaz volt a végrehajtása előtt nyilatkozatokat. Axiomatikus szemantika fontos szerepet játszik a program helyességét bizonyító.

Ezzel szemben a működési szemantikája deduktív szemantika nem hajlandó társítani értelmében programozási nyelv konstrukciók egyes számítási módszert. Így elvonásával számos számítástechnikai alkatrészek, nem alapvető megértéséhez értelmében a program, és lehetőséget ad arra, hogy beszélni elvont tulajdonságait programokat. Azonban a szemantika deduktív főleg az imperatív programozási. [2]

Amikor a transzlációs megközelítését, programozási nyelv szemantikai által meghatározott meghatározó a fordítási szabályok (átalakítás) az egyes szintaktikailag helyes programot kínál a nyelv szemantikai már ismert. Például a fordítási szabályok szerelő típusú nyelv annyira egyszerű és egyértelmű, hogy a forma teljesen kielégítő szemantikai specifikációját assembly nyelven. Meghatározása szemantika által meghatározva minden egyes formanyelvének megfelelő képet, hogy (psevdomashinnyh utasítás sorozat) már meghatározásához használt gép-orientált nyelv Epsilon.

Általában transzlációs megközelítés alkalmazható a magas szintű nyelven. Mivel a nyelvet, amelyen az átadás lehet kiválasztani néhány matematikai nyelven (pl language-számolás), néhány más programozási nyelv (pl ALMO nyelv leírására algoritmusok, a nyelvek és nyelvi Pascal számára Settle nyelv), vagy egy adott gépen nyelvet. Így a fordító egy magas szintű nyelv egy speciális gépi nyelv válik szemantikai nyelvfelismerés. [3]

Következtetések a módszerek a szemantikai

Több oka is van, melyek foglalkozni kell leírja a szemantika programokat. vagy ami azt jelenti, kifejezések, operátorok és szoftver egységeket.

Használatára vonatkozó iránymutatások programozási nyelven kell szerepeltetni az egyes tervezési nyelv mind egyénileg, mind pedig más minták. A nyelv sok különböző minták, a pontos meghatározása, amely megköveteli a programozó használja a nyelvet és a fejlesztő, hogy végre ezt a nyelvet. A programozó Erre szükség annak érdekében, hogy írjon a helyes programok és előre tudni, az eredmény minden program operátorok. Fejlesztő meghatározni a megfelelő fordítóprogram struktúrák létrehozásához szükséges megfelelő végrehajtását a nyelvet.