A nyelvtani szabályok rekurziójának elve
TÖBB ANYAGOK A TÉMAKBAN:
A különlegessége a fenti formális nyelvtan az, hogy lehetővé teszi, hogy meghatározza egy végtelen láncok számának nyelvet véges szabályok (persze, sok nyelvet húrok is lehet a vége, de még az egyszerű valódi nyelv, ez az állapot általában nem végzik el). A fenti grammatika a tizedesjegyek számjegyével meghatározva végtelen számú egész számot határoz meg 15 szabály alkalmazásával.
Ebben a formában az írás grammatikában, a képesség, hogy egy véges sor szabályokat lehet elérni a rekurzív szabályokat. A nyelvtan szabályainak rekurzívja abban rejlik, hogy az egyik nemterminális szimbólumot maga határozza meg. A rekurzió lehet azonnali (explicit) - akkor a szimbólumot egyetlen szabály határozza meg, vagy közvetetten (implicit módon) - ugyanez történik a szabályok láncon keresztül.
A fent említett G nyelvtanban a közvetlen rekurzió jelen van a szabályban: <чс> ® <чс><цифра>, és egyenértékű grammban G '- a T ®TF szabályban.
Ahhoz, hogy a rekurzió nem végtelen, az abban résztvevő nemterminális nyelvtan is léteznie kell más szabályok, amelyek meghatározzák azt, átadva a legtöbbet, és ne a végtelen rekurzív definíció (egyébként ez a szimbólum a nyelvtani lenne egyszerűen nem szükséges). Ezek a szabályok <чс> ® <цифра> - a G és T ® F nyelvtanban a G nyelvtanban.
A hivatalos nyelvek elméletében nem lehet többet mondani a rekurzióról. De a rekurzió jelentésének teljes megértéséhez a nyelv szemantikáját használhatja - a fenti példában, ez a teljes decimális szám nyelvét jelöli. Fontolja meg annak jelentését.
Ha megpróbálja meghatározni, hogy mi szám, akkor elkezdheted azzal, hogy bármely szám önmagában egy szám. Ezután láthatjuk, hogy bármely két számjegy - ez is egy szám, akkor - három számjegy stb.
Ha egy szám meghatározását ezzel a módszerrel állítja össze, akkor soha nem fog befejeződni (matematika, a számjegyek korlátlanok). Azonban észreveheti, hogy minden alkalommal, amikor új számot generál, egyszerűen hozzáadjuk a jobb oldali ábrát (ahogy balról jobbra írtunk) a már megírt számjegyszámra. És ez a számjegy, egy számjegyből kiindulva, szintén sorszám. Ezután a "szám" koncepciójának meghatározása így megfogalmazható: "a szám bármelyik számjegy vagy egy másik szám, amelyhez minden számot hozzáadunk jobbra." Ez az alapja a G és a G nyelvű szabályoknak, és tükröződik a szabályokban <чс> ® <цифра> | | <чс><цифра> és T ® P | TF (második szabálysor). Az ebben a nyelvtanban szereplő egyéb szabályok lehetővé teszik, hogy a számhoz hozzáadj egy jelet (a szabályok első sorát), és definiáld a "számjegy" fogalmát (a harmadik szabálysor). Alapvetőek és nem igényelnek magyarázatot.
A rekurzió alapelve (néha "iterációs elv") fontos fogalom a formális nyelvtan fogalmában. Tehát, egyébként, kifejezetten vagy implicit módon, a rekurzió mindig jelen van bármely valódi programozási nyelv grammatikájában. Lehetővé teszi számodra, hogy végtelen számú nyelvi húrot építsen, és a generációról beszélni lehetetlen a rekurzió elvének megértése nélkül. Általános szabály szerint a valódi programozási nyelv grammatikája nem tartalmaz egy, hanem rekurzióval épített szabályokat.