opora

frantisek.plesicek
from frantisek.plesicek More from this publisher
10.02.2019 Views

KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY99 Ekvivalentním specifikačním prostředkem pro libovolný bezkontextový jazyk je nedeterministický zásobníkový automat. Existují ekvivalentní varianty těchto automatů, které se, mimo jiné, využívají jako modely různých typů syntaktických analyzátorů. Třída jazyků přijímaných deterministickými zásobníkovými automaty (tzv deterministické bezkontextové jazyky) je vlastní podtřídou třídy bezkontextových jazyků. K uzávěrovým vlastnostem bezkontextových jazyků nepatří průnik a doplněk, není rovněž rozhodnutelný problém ekvivalence dvou bezkontextových gramatik. K rozhodnutí nepříslušnosti formálního jazyka do třídy bezkontextových jazyků se používá pumping lema, která rovněž charakterizuje základní atribut vět nekonečného bezkontextového jazyka. 4.14 Cvičení Cvičení 4.14.1 Sestrojte zásobníkový automat, který přijímá jazyk L = {a n b m | n ≤ m ≤ 2n} Cvičení 4.14.2 Pro gramatiky (a) S → aSb | ɛ (b) S → AS | b A → SA | a (c) S → SS | A A → 0A1 | S | 01 sestrojte zásobníkové automaty modelující syntaktickou analýzu shora–dolů a zdola–nahoru. Cvičení 4.14.3 Nalezněte gramatiku, která generuje jazyk L(P ), kde zobrazení δ má tvar: P = ({q 0 , q 1 , q 2 }, {a, b}, {Z 0 , A}, δ, q 0 , Z 0 , {q 2 }); δ(q 0 , a, Z 0 ) = (q 1 , AZ 0 ) δ(q 0 , a, A) = (q 1 , AA) δ(q 1 , a, A) = (q 0 , AA) δ(q 1 , ɛ, A) = (q 2 , A) δ(q 2 , b, A) = (q 2 , ɛ)

Kapitola 5 Turingovy stroje Cílem kapitoly je formální vymezení Turingova stroje, stanovení pravidel a konvencí pro kompozitní vytváření Turingových strojů, pochopení mechanismu definice jazyka přijímaného a rozhodovaného Turingovým strojem a dokázání ekvivalence třídy jazyků typu 0 s třídou jazyků přijímaných Turingovými stroji. Cílem této kapitoly je také analýza vlastností příslušných jazyků a důležitá modifikace Turingova stroje specifikující kontextové jazyky. 5.1 Základní koncepce Turingových strojů 5.1.1 Churchova teze Churchova (Church-Turingova) teze: Turingovy stroje (a jim ekvivalentní systémy) definují svou výpočetní silou to, co intuitivně považujeme za efektivně vyčíslitelné. Churchova teze není teorém, nemůžeme formálně dokazovat, že něco odpovídá našim intuitivním představám, nicméně je podpořena řadou argumentů: • Turingovy stroje jsou velmi robustní – uvidíme, že jejich různé úpravy nemění jejich výpočetní sílu (determinismus x nedeterminismus, počet pásek, ...). • Byla navržena řada zcela odlišných výpočetních modelů (λ-kalkul, parciálně rekurzívní funkce, Minského stroje, ...), jejichž síla odpovídá Turingovým strojům. • Není znám žádný výpočetní proces, který bychom označili za efektivně vyčíslitelný a který by nebylo možné realizovat na Turingově stroji. 1 5.1.2 Turingův stroj Turingův stroj se skládá z konečně stavové řídící jednotky, jednosměrně neohraničené pásky a čtecí/zapisovací hlavy. V jednom kroku výpočtu Turingův stroj nejprve přečte symbol pod hlavou. Následně v závislosti na čteném symbolu a stavu řídící jednotky může čtený symbol přepsat, změnit stav a posunout hlavu o jedno pole doprava nebo doleva. To vše podle konečné série pravidel – přechodové relace, která je součástí řídící jednotky. Výpočet je pak navazující sérií výpočetních kroků vycházející z počáteční konfigurace stroje, t.j. stavu řídící jednotky, obsahu pásky a pozice hlavy. 1 Existují formalizované výpočetní procesy realizovatelné např. na TS s orákulem (nápovědou), rozhodujícím atomicky nějaký Turingovsky nerozhodnutelný problém (např. problém zastavení), které ale nepovažujeme za efektivní výpočetní procesy. 100

Kapitola 5<br />

Turingovy stroje<br />

Cílem kapitoly je formální vymezení Turingova stroje, stanovení pravidel a konvencí<br />

pro kompozitní vytváření Turingových strojů, pochopení mechanismu definice<br />

jazyka přijímaného a rozhodovaného Turingovým strojem a dokázání ekvivalence<br />

třídy jazyků typu 0 s třídou jazyků přijímaných Turingovými stroji. Cílem<br />

této kapitoly je také analýza vlastností příslušných jazyků a důležitá modifikace<br />

Turingova stroje specifikující kontextové jazyky.<br />

5.1 Základní koncepce Turingových strojů<br />

5.1.1 Churchova teze<br />

Churchova (Church-Turingova) teze: Turingovy stroje (a jim ekvivalentní<br />

systémy) definují svou výpočetní silou to, co intuitivně považujeme za efektivně<br />

vyčíslitelné.<br />

Churchova teze není teorém, nemůžeme formálně dokazovat, že něco odpovídá<br />

našim intuitivním představám, nicméně je podpořena řadou argumentů:<br />

• Turingovy stroje jsou velmi robustní – uvidíme, že jejich různé úpravy nemění<br />

jejich výpočetní sílu (determinismus x nedeterminismus, počet pásek, ...).<br />

• Byla navržena řada zcela odlišných výpočetních modelů (λ-kalkul, parciálně<br />

rekurzívní funkce, Minského stroje, ...), jejichž síla odpovídá Turingovým<br />

strojům.<br />

• Není znám žádný výpočetní proces, který bychom označili za efektivně vyčíslitelný<br />

a který by nebylo možné realizovat na Turingově stroji. 1<br />

5.1.2 Turingův stroj<br />

Turingův stroj se skládá z konečně stavové řídící jednotky, jednosměrně neohraničené<br />

pásky a čtecí/zapisovací hlavy. V jednom kroku výpočtu Turingův stroj nejprve<br />

přečte symbol pod hlavou. Následně v závislosti na čteném symbolu a stavu řídící<br />

jednotky může čtený symbol přepsat, změnit stav a posunout hlavu o jedno pole<br />

doprava nebo doleva. To vše podle konečné série pravidel – přechodové relace,<br />

která je součástí řídící jednotky. Výpočet je pak navazující sérií výpočetních kroků<br />

vycházející z počáteční konfigurace stroje, t.j. stavu řídící jednotky, obsahu pásky<br />

a pozice hlavy.<br />

1 Existují formalizované výpočetní procesy realizovatelné např. na TS s orákulem (nápovědou),<br />

rozhodujícím atomicky nějaký Turingovsky nerozhodnutelný problém (např. problém zastavení),<br />

které ale nepovažujeme za efektivní výpočetní procesy.<br />

100

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!