Teorie Jazyků Flashcards
(20 cards)
Co je abeceda?
Konečná neprázdná množina symbolů. Prvky abecedy se nazývají písmena.
Co je řetězec?
Libovolná „konečná posloupnost“ (tj. uspořádaná n-tice) písmen abecedy.
Uzávěr abecedy ∑ a jeho značení.
Množina všech neprázdných řetězců vytvořených z písmen abecedy ∑.
Značí se ∑+.
Iterace abecedy ∑ a její značení.
Množina všech řetězců vytvořených z písmen abecedy ∑.
Značí se ∑*.
Rozdíl mezi iterací abecedy a uzávěrem?
∑* = ∑+ ∪ {e}
Jaké jsou operace nad řetězci?
- Zřetězení řetězců: ∑* × ∑* → ∑*
- Mocnina řetězce: ∑* × N0 → ∑*
- Reverze (obrácení) řetězce: ∑* → ∑*
- Délka řetězce: ∑* → N0
Co je jazyk L nad abecedou ∑?
Libovolná množina řetězců nad abecedou ∑ , tedy L ⊆ ∑∗.
Jaké jsou operace nad jazyky
L1 a L2 jsou jazyky nad abecedou ∑ , tedy L1 ⊆ ∑∗ , L2 ⊆ ∑∗?
- Sjednocení jazyků: L = L1 ∪ L2
L = {𝑤| 𝑤 ∈ ∑∗ ∧ 𝑤 ∈ L1 ∨ 𝑤 ∈ L2 } - Průnik jazyků: L = L1 ∩ L2
L = {𝑤| 𝑤 ∈ ∑∗ ∧ 𝑤 ∈ L1 ∧ 𝑤 ∈ L2 } - Doplněk jazyka: L = 𝐿1
L = {𝑤| 𝑤 ∈ ∑∗ ∧ 𝑤 ∉ L1} - Rozdíl jazyků: L = L1 / L2
L = {𝑤| 𝑤 ∈ ∑∗ ∧ 𝑤 ∈ L1 ∧ 𝑤 ∉ L2 } - Zřetězení jazyků: L = L1 ⋅ L2 = L1 L2
L = {𝑤| 𝑤 ∈ ∑∗ ∧ 𝑤 = 𝑢 ⋅ 𝑣 ∧ 𝑢 ∈ L1 ∧ 𝑣 ∈ L2 }
Jazyk akceptovaný automatem
Množina všech řetězců, které automat
převedou z počátečního stavu do některého ze stavů koncových
Definice gramatiky
Gramatika je uspořádaná čtveřice G = (N, T, S, P) , kde
N …….. množina neterminálních symbolů
T …….. množina terminálních symbolů
N ∩ T = ∅
S ∈ N …. počáteční symbol
P …………. množina přepisovacích pravidel ve tvaru a ⟶ b
kde a ∈ (N ∪ T)* N (N ∪ T)*
b ∈ (N ∪ T)*
Jazyk generovaný gramatikou
Jazykem generovaným gramatikou G rozumíme množinu všech terminálních řetězců, které lze v gramatice odvodit z počátečního symbolu
Chomského klasifikace – gramatiky typu 0
všechna pravidla jsou ve tvaru a ⟶ b , kde
a ∈ (N ∪ T)* N (N ∪ T)*
b ∈ (N ∪ T)*
Chomského klasifikace – gramatiky typu 1
- všechna pravidla jsou ve tvaru a X b ⟶ a Y b , kde
a, b ∈ (N ∪ T)*
X ∈ N
Y ∈ (N ∪ T)+
Výjimka: v gramatice může být pravidlo S ⟶ e, pak se ovšem S nesmí vyskytnout na pravé straně přepisovacích pravidel - používané názvy – kontextová gramatika, context sensitive grammar (CSG), nevypouštěcí gramatika
Chomského klasifikace – gramatiky typu 2
- všechna pravidla jsou ve tvaru X ⟶ Y , kde
X ∈ N
Y ∈ (N ∪ T)* - používané názvy – bezkontextová gramatika (BKG), context free grammar (CFG)
Chomského klasifikace – gramatiky typu 3P
všechna pravidla jsou ve tvaru X ⟶ w nebo X ⟶ w Y kde
X , Y ∈ N , w ∈ T*
Chomského klasifikace – gramatiky typu 3L
všechna pravidla jsou ve tvaru X ⟶ w nebo X ⟶ Y w kde
X , Y ∈ N , w ∈ T*
Jak se říká jazykům typu 0 a jaký je jejich syntaktický analyzátor?
Rekurzivně vyčíslitelné jazyky - Turingův stroj.
Jak se říká jazykům typu 1 a jaký je jejich syntaktický analyzátor?
Kontextové jazyky - Lineárně omezený Turingův stroj.
Jak se říká jazykům typu 2 a jaký je jejich syntaktický analyzátor?
Nedeterministický zásobníkový automat.
Jak se říká jazykům typu 3 a jaký je jejich syntaktický analyzátor?
Regulární jazyky -Konečný automat.