opora
KAPITOLA 2. JAZYKY, GRAMATIKY A JEJICH KLASIFIKACE 13 6. řetězec uzavřený v úhlových závorkách 〈, 〉 reprezentuje nonterminální symbol (konvence používaná v BNF). Příklad 2.11 Slovník gramatiky pro definici jazyka identifikátorů může mít tvar: Obsahuje tedy 65 symbolů. N = {〈identifikátor〉, 〈písmeno〉, 〈číslice〉} Σ = {A, B, . . . , Z, a, b, . . . , z, 0, 1, . . . , 9} Gramatika představuje generativní systém, ve kterém lze z jistého vyznačeného nonterminálu generovat, aplikací tzv. přepisovacích pravidel, řetězce tvořené neterminálními a terminálními symboly, které nazýváme větnými formami. Větné formy, které jsou tvořeny pouze terminálními symboly, reprezentují věty gramatikou definovaného jazyka. Může se přitom samozřejmě stát, že gramatika negeneruje žádnou větu a reprezentuje pak prázdný jazyk. Jádrem gramatiky je tak konečná množina P přepisovacích pravidel (nazývaných také produkce). Každé přepisovací pravidlo má tvar uspořádané dvojice (α, β) řetězců; stanovuje možnou substitucí řetězce β namísto řetězce α, který se vyskytuje jako podřetězec generovaného řetězce. Řetězec α obsahuje alespoň jeden nonterminální symbol, řetězec β je prvek množiny (N ∪ Σ) ∗ . Formálně vyjádřeno, množina P přepisovacích pravidel je podmnožinou kartézského součinu: P ⊆ (N ∪ Σ) ∗ N(N ∪ Σ) ∗ × (N ∪ Σ) ∗ Příklad 2.12 Uvažujme, že např. dvojice (AB, CDE) je jedním z přepisovacích pravidel gramatiky a předpokládejme, že řetězec x = F GABH byl získán aplikací jiných pravidel gramatiky. Aplikujeme-li nyní na řetězec x pravidlo (AB, CDE), obdržíme řetězec y = F GCDEH (nahrazením podřetězce AB řetězce x řetězcem CDE). Říkáme, že jsme řetězec y odvodili (derivovali) z řetězce x podle přepisovacího pravidla (AB, CDE). Přistoupíme nyní k úplné definici gramatiky a formální definici pojmů, jejichž prostřednictvím lze definovat jazyk generovaný gramatikou. Definice 2.11 Gramatika G je čtveřice G = (N, Σ, P, S), kde • N je konečná množina nonterminálních symbolů • Σ je konečná množina terminálních symbolů, N ∩ Σ = ∅ • P je konečná podmnožina kartézského součinu (N ∪Σ) ∗ N(N ∪Σ) ∗ ×(N ∪Σ) ∗ , • S ∈ N je výchozí (také počáteční) symbol gramatiky Prvek (α, β) množiny P nazýváme přepisovacím pravidlem (krátce pravidlem) a budeme jej zapisovat ve tvaru α → β. Řetězec α resp. β nazýváme levou resp. pravou stranou přepisovacího pravidla. Příklad 2.13 G = ({A, S}, {0, 1}, P, S) P = {S → 0A1, 0A → 00A1, A → ɛ} Příklad 2.14 Gramatika definující jazyk identifikátorů může mít tvar:
KAPITOLA 2. JAZYKY, GRAMATIKY A JEJICH KLASIFIKACE 14 G = (N, Σ, P, S), kde N = {〈identifikátor〉, 〈písmeno〉, 〈číslice〉} Σ = {A, B, . . . , Z, a, b, . . . , z, 0, 1, . . . , 9} P = {〈identifikátor〉 → 〈písmeno〉, 〈identifikátor〉 → 〈identifikátor〉〈písmeno〉, 〈identifikátor〉 → 〈identifikátor〉〈číslice〉, 〈písmeno〉 → A, . 〈písmeno〉 → Z, 〈číslice〉 → 0, . 〈číslice〉 → 9} S = 〈identifikátor〉 Množina P obsahuje 65 přepisovacích pravidel. Konvence 2.4 Obsahuje-li množina pravidel P přepisovací pravidla tvaru α → β 1 , α → β 2 , . . . , α → β n , pak pro zkrácení lze použít zápisu α → β 1 | β 2 | . . . | β n . Definice 2.12 Nechť G = (N, Σ, P, S) je gramatika a nechť λ a µ jsou řetězce z (N ∪ Σ) ∗ . Mezi řetězci λ a µ platí binární relace ⇒ G , nazývaná přímá derivace, jestliže můžeme řetězce λ a µ vyjádřit ve tvaru λ = γαδ µ = γβδ kde γ a δ jsou libovolné řetězce z (N ∪ Σ) ∗ a α → β je nějaké přepisovací pravidlo z P . Platí-li mezi řetězci λ a µ relace přímé derivace, pak píšeme λ ⇒ G µ a říkáme, že řetězec µ lze přímo generovat z řetězce λ v gramatice G. Je-li z kontextu zřejmé, že jde o derivaci v gramatice G, pak nemusíme specifikaci gramatiky pod symbolem ⇒ uvádět. Příklad 2.15 Uvažujme gramatiku z příkladu 2.13 a řetězce λ = 000A111 a µ = 0000A1111. Položíme-li λ = }{{} 00 γ µ = 00 }{{} γ }{{} 0A α 00A1 } {{ } β }{{} 111 δ 111 }{{} δ vidíme, že platí 000A111 ⇒ 0000A1111, protože 0A → 00A1 je pravidlem v této gramatice. Příklad 2.16 Je-li α → β pravidlo v gramatice G, pak v této gramatice platí α ⇒ β, jak plyne z definice 2.12, položíme-li γ = δ = ɛ.
- Page 1 and 2: Teoretická informatika TIN Studijn
- Page 3 and 4: OBSAH 2 4 Bezkontextové jazyky a z
- Page 5 and 6: OBSAH 4 7.2 Třídy složitosti . .
- Page 7 and 8: KAPITOLA 1. ÚVOD 6 1.1 Obsahové a
- Page 9 and 10: Kapitola 2 Jazyky, gramatiky a jeji
- Page 11 and 12: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 13: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 17 and 18: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 19 and 20: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 21 and 22: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 23 and 24: KAPITOLA 3. REGULÁRNÍ JAZYKY 22
- Page 25 and 26: KAPITOLA 3. REGULÁRNÍ JAZYKY 24 3
- Page 27 and 28: KAPITOLA 3. REGULÁRNÍ JAZYKY 26 D
- Page 29 and 30: KAPITOLA 3. REGULÁRNÍ JAZYKY 28 2
- Page 31 and 32: KAPITOLA 3. REGULÁRNÍ JAZYKY 30 D
- Page 33 and 34: KAPITOLA 3. REGULÁRNÍ JAZYKY 32 V
- Page 35 and 36: KAPITOLA 3. REGULÁRNÍ JAZYKY 34 D
- Page 37 and 38: KAPITOLA 3. REGULÁRNÍ JAZYKY 36 V
- Page 39 and 40: KAPITOLA 3. REGULÁRNÍ JAZYKY 38 D
- Page 41 and 42: KAPITOLA 3. REGULÁRNÍ JAZYKY 40 3
- Page 43 and 44: KAPITOLA 3. REGULÁRNÍ JAZYKY 42 3
- Page 45 and 46: KAPITOLA 3. REGULÁRNÍ JAZYKY 44 V
- Page 47 and 48: KAPITOLA 3. REGULÁRNÍ JAZYKY 46 3
- Page 49 and 50: KAPITOLA 3. REGULÁRNÍ JAZYKY 48 P
- Page 51 and 52: KAPITOLA 3. REGULÁRNÍ JAZYKY 50 3
- Page 53 and 54: KAPITOLA 3. REGULÁRNÍ JAZYKY 52 C
- Page 55 and 56: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 57 and 58: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 59 and 60: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 61 and 62: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 63 and 64: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
KAPITOLA 2. JAZYKY, GRAMATIKY A JEJICH KLASIFIKACE 14<br />
G = (N, Σ, P, S), kde<br />
N = {〈identifikátor〉, 〈písmeno〉, 〈číslice〉}<br />
Σ = {A, B, . . . , Z, a, b, . . . , z, 0, 1, . . . , 9}<br />
P = {〈identifikátor〉 → 〈písmeno〉,<br />
〈identifikátor〉 → 〈identifikátor〉〈písmeno〉,<br />
〈identifikátor〉 → 〈identifikátor〉〈číslice〉,<br />
〈písmeno〉 → A,<br />
.<br />
〈písmeno〉 → Z,<br />
〈číslice〉 → 0,<br />
.<br />
〈číslice〉 → 9}<br />
S = 〈identifikátor〉<br />
Množina P obsahuje 65 přepisovacích pravidel.<br />
Konvence 2.4 Obsahuje-li množina pravidel P přepisovací pravidla tvaru α →<br />
β 1 , α → β 2 , . . . , α → β n , pak pro zkrácení lze použít zápisu α → β 1 | β 2 | . . . | β n .<br />
Definice 2.12 Nechť G = (N, Σ, P, S) je gramatika a nechť λ a µ jsou řetězce<br />
z (N ∪ Σ) ∗ . Mezi řetězci λ a µ platí binární relace ⇒<br />
G<br />
, nazývaná přímá derivace,<br />
jestliže můžeme řetězce λ a µ vyjádřit ve tvaru<br />
λ = γαδ<br />
µ = γβδ<br />
kde γ a δ jsou libovolné řetězce z (N ∪ Σ) ∗ a α → β je nějaké přepisovací pravidlo<br />
z P .<br />
Platí-li mezi řetězci λ a µ relace přímé derivace, pak píšeme λ ⇒<br />
G<br />
µ a říkáme, že<br />
řetězec µ lze přímo generovat z řetězce λ v gramatice G. Je-li z kontextu zřejmé, že<br />
jde o derivaci v gramatice G, pak nemusíme specifikaci gramatiky pod symbolem<br />
⇒ uvádět.<br />
Příklad 2.15 Uvažujme gramatiku z příkladu 2.13 a řetězce λ = 000A111 a<br />
µ = 0000A1111. Položíme-li<br />
λ =<br />
}{{}<br />
00<br />
γ<br />
µ = 00<br />
}{{}<br />
γ<br />
}{{}<br />
0A<br />
α<br />
00A1<br />
} {{ }<br />
β<br />
}{{}<br />
111<br />
δ<br />
111<br />
}{{}<br />
δ<br />
vidíme, že platí 000A111 ⇒ 0000A1111, protože 0A → 00A1 je pravidlem v této<br />
gramatice.<br />
Příklad 2.16 Je-li α → β pravidlo v gramatice G, pak v této gramatice platí<br />
α ⇒ β, jak plyne z definice 2.12, položíme-li γ = δ = ɛ.