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 i stav i ε K stav s0 = i stav i ∈ F stav s0 = i, i ∈ F a i j start i Prechod δ(i, a) = j Prechod δ(i, a) = i i a i start 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] start start a a b a 1 a [• a| • b] • b a b b 2 a [a| b] • Prechodový diagram pre RV a [a|b] Číslami označíme stavy KSA a prekreslíme: 1 2 a b start
Úloha: Tvorba prechodového grafu pre RV a {ab} start start a a b 1 b a a {• ab} • b a b 2 a {a •b} Prechodový diagram pre RV a {ab} a b Číslami označíme stavy KSA a prekreslíme: 1 2 a b start