80 likes | 210 Views
Form álne jazyky a prekladače. materiály k cvičeniam Ing. Michaela Bačíková. Konečnostavové automaty (KSA). Rozpoznávač reťazcov regulárneho jazyka Možno konštruovať na základe RV Deterministický (DKA) / nedeterministický (NKA)
E N D
Formálne jazyky a prekladače materiály k cvičeniam Ing. Michaela Bačíková
Konečnostavové automaty (KSA) • Rozpoznávač reťazcov regulárneho jazyka • Možno konštruovať na základe RV • Deterministický (DKA) / nedeterministický (NKA) • Pre každý NKA možno vytvoriť DKA, pričom obe rozpoznávajú tú istú regulárnu množinu.
Deterministický KSA (DKA) • DKA M nad abecedou Σ je systém M = (K, Σ, δ, s0, F) kde: • K je konečná neprázdna množina stavov • Σ je konečná vstupná abeceda • δje prechodová funkcia • s0 ∈ K je začiatočný stav • F ⊆ K je množina koncových stavov kde funkciaδ: K x Σ+ K je definovaná: δ(p, a) = q δ(p, xa) = δ(δ(p, x), a) p,q ∈ K, a ∈ Σ, x ∈ Σ +
Neterministický KSA (NKA) • NKA N nad abecedou Σ je systém N = (K, Σ, δ, s0, F) kde: • K je konečná neprázdna množina stavov • Σ je konečná vstupná abeceda • δje prechodová funkcia • s0 ∈ K je začiatočný stav • F ⊆ K je množina koncových stavov kde funkciaδ: {K} x Σ* {K} je definovaná: δ(P, e) = Q δ(P, xe) = δ(δ(p, x), a) δ(P, a) = R δ(P, xa) = δ(δ(p, x), a) p,q ∈ K, a ∈ Σ, x ∈ Σ +
Stavy a prechody KSA start start stav i ε K stav s0 = i stav i ∈ F stav s0 = i, i ∈ F a i i j i Prechodδ(i, a) = j Prechod δ(i, a) = i i a i i
Úloha: Tvorba prechodového diagramu pre regulárny výraz a [a|b] start a a b Úloha: Tvorba prechodového diagramu pre regulárny výraz a {ab} start a b a
Úloha: Tvorba prechodového grafu pre RV a [a|b] 0 start start a • a [a|b] b b a a 1 a [• a| • b] • b a b 2 a [a| b] • Prechodový diagram pre RV a [a|b] Číslami označíme stavy KSA a prekreslíme: a start a 0 1 2 b
Úloha: Tvorba prechodového grafu pre RV a {ab} 0 start • a {ab} a a b b b a 1 b a a {• ab} • a 2 a {a •b} Prechodový diagram pre RV a {ab} b start Číslami označíme stavy KSA a prekreslíme: a start a 0 1 2 b