opora

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

KAPITOLA 1. ÚVOD 7 Kapitola 6 Nerozhodnutelné problémy teorie formálních jazyků. Kapitola 7 Úvod do výpočetní složitosti, Turingovská složitost, třída P a NP problémů.

Kapitola 2 Jazyky, gramatiky a jejich klasifikace Cílem této kapitoly je pochopení pojmu formální jazyk, jeho matematické explikace (popisu) a univerzality a základních algebraických operací nad formálními jazyky, které nacházejí praktické uplatnění v praktických aplikacích. Dále pak pochopení základního způsobu specifikace formálního jazyka gramatikou a způsobu klasifikace formálních jazyků, založeného na klasifikaci gramatik. 2.1 Jazyky Jedním ze základních pojmů pro vymezení jazyka jsou pojmy abeceda a řetězec. Definice 2.1 Abecedou rozumíme neprázdnou množinu prvků, které nazýváme symboly abecedy. V některých teoretických případech je účelné pracovat i s abecedami nekonečnými, v našich aplikacích se však omezíme na abecedy konečné. Příklad 2.1 Jako příklady abeced můžeme uvést latinskou abecedu obsahující 52 symbolů, které reprezentují velká a malá písmena, řeckou abecedu, dvouprvkovou binární abecedu reprezentovanou množinou {0, 1} resp. {true, false} nebo abecedy programovacích jazyků. Definice 2.2 Řetězcem (také slovem nebo větou) nad danou abecedou rozumíme každou konečnou posloupnost symbolů abecedy. Prázdnou posloupnost symbolů, tj. posloupnost, která neobsahuje žádný symbol, nazýváme prázdný řetězec. Prázdný řetězec budeme označovat písmenem ɛ. Formálně lze definovat řetězec nad abecedou Σ takto: (1) prázdný řetězec ɛ je řetězec nad abecedou Σ, (2) je-li x řetězec nad Σ a a ∈ Σ, pak xa je řetězec nad Σ, (3) y je řetězec nad Σ, když a jen když lze y získat aplikací pravidel 1 a 2. Příklad 2.2 Je-li A = {a, b, +} abeceda, pak ɛ a b + aa a + b + ab jsou některé řetězce nad abecedou A. Pořadí symbolů v řetězci je významné; řetězce a + b, +ab jsou různé. Symbol b, například, je řetězec nad A, poněvadž ɛb = b (pravidlo (2)). Konvence 2.1 Budeme-li pracovat s obecnými abecedami, symboly, či řetězci, pak pro jejich značení použijeme: 8

Kapitola 2<br />

Jazyky, gramatiky a jejich<br />

klasifikace<br />

Cílem této kapitoly je pochopení pojmu formální jazyk, jeho matematické explikace<br />

(popisu) a univerzality a základních algebraických operací nad formálními<br />

jazyky, které nacházejí praktické uplatnění v praktických aplikacích. Dále pak<br />

pochopení základního způsobu specifikace formálního jazyka gramatikou a způsobu<br />

klasifikace formálních jazyků, založeného na klasifikaci gramatik.<br />

2.1 Jazyky<br />

Jedním ze základních pojmů pro vymezení jazyka jsou pojmy abeceda a řetězec.<br />

Definice 2.1 Abecedou rozumíme neprázdnou množinu prvků, které nazýváme<br />

symboly abecedy.<br />

V některých teoretických případech je účelné pracovat i s abecedami nekonečnými,<br />

v našich aplikacích se však omezíme na abecedy konečné.<br />

Příklad 2.1 Jako příklady abeced můžeme uvést latinskou abecedu obsahující 52<br />

symbolů, které reprezentují velká a malá písmena, řeckou abecedu, dvouprvkovou<br />

binární abecedu reprezentovanou množinou {0, 1} resp. {true, false} nebo abecedy<br />

programovacích jazyků.<br />

Definice 2.2 Řetězcem (také slovem nebo větou) nad danou abecedou rozumíme<br />

každou konečnou posloupnost symbolů abecedy. Prázdnou posloupnost symbolů,<br />

tj. posloupnost, která neobsahuje žádný symbol, nazýváme prázdný řetězec. Prázdný<br />

řetězec budeme označovat písmenem ɛ.<br />

Formálně lze definovat řetězec nad abecedou Σ takto:<br />

(1) prázdný řetězec ɛ je řetězec nad abecedou Σ,<br />

(2) je-li x řetězec nad Σ a a ∈ Σ, pak xa je řetězec nad Σ,<br />

(3) y je řetězec nad Σ, když a jen když lze y získat aplikací pravidel 1 a 2.<br />

Příklad 2.2 Je-li A = {a, b, +} abeceda, pak<br />

ɛ a b + aa a + b + ab<br />

jsou některé řetězce nad abecedou A. Pořadí symbolů v řetězci je významné;<br />

řetězce a + b, +ab jsou různé. Symbol b, například, je řetězec nad A, poněvadž<br />

ɛb = b (pravidlo (2)).<br />

Konvence 2.1 Budeme-li pracovat s obecnými abecedami, symboly, či řetězci,<br />

pak pro jejich značení použijeme:<br />

8

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

Saved successfully!

Ooh no, something went wrong!