Sunteți pe pagina 1din 34

Limbaje Formale, Automate şi Compilatoare

Curs 2

2017-18

LFAC (2017-18) Curs 2 1 / 33


Proprietăţi de ı̂nchidere pentru L3

Curs 2

1 Proprietăţi de ı̂nchidere pentru L3

2 Automate finite deterministe

3 Automate finite nedeterministe

4 Automate finite cu ǫ-tranziţii

LFAC (2017-18) Curs 2 2 / 33


Proprietăţi de ı̂nchidere pentru L3

Fie L, L1 , L2 limbaje regulate: există gramaticile G, G1 , G2 de tip 3


astfel ca L = L(G), L1 = L(G1 ) şi L2 = L(G2 ).

Atunci, următoarele limbaje sunt de asemenea regulate:


1 L1 ∪ L2
2 L1 · L2
3 L∗
4 LR
5 L1 ∩ L2
6 L1 \ L2

LFAC (2017-18) Curs 2 3 / 33


Proprietăţi de ı̂nchidere pentru L3

Închiderea la reununiune

Fie L, L1 , L2 limbaje de tip 3 (regulate).


Fie G1 = (N1 , T1 , S1 , P1 ) si G2 = (N2 , T2 , S2 , P2 ) gramatici de tip 3 cu
L1 = L(G1 ), L2 = L(G2 ).
Presupunem N1 ∩ N2 = ∅ si gramaticile in forma normala.

Închiderea la reuniune: se arata ca L1 ∪ L2 ∈ L3 :


Gramatica G = (N1 ∪ N2 ∪ {S}, T1 ∪ T2 , S, P1 ∪ P2 ∪ {S → S1 , S → S2 })
este de tip 3 si genereaza limbajul L1 ∪ L2

LFAC (2017-18) Curs 2 4 / 33


Proprietăţi de ı̂nchidere pentru L3

Închiderea la operaţia de produs

Fie L1 , L2 limbaje de tip 3 (regulate).


Fie G1 = (N1 , T1 , S1 , P1 ) si G2 = (N2 , T2 , S2 , P2 ) gramatici de tip 3 cu
L1 = L(G1 ), L2 = L(G2 ).
Presupunem N1 ∩ N2 = ∅ si gramaticile in forma normala.

Gramatica G = (N1 ∪ N2 , T1 ∪ T2 , S1 , P) unde P consta din:


regulile de forma A → aB din P1
reguli A → aS2 pentru orice regula de forma A → a din P1
toate regulile din P2
este de tip 3 si genereaza limbajul L1 L2 .

LFAC (2017-18) Curs 2 5 / 33


Proprietăţi de ı̂nchidere pentru L3

Închiderea la operaţia de iteraţie

Fie L limbaj de tip 3 (regulat).


Fie G = (N, T , S, P) de tip 3, ı̂n formă normală, care genereaza L
(L = L(G)).
Presupunem ca simbolul de start S nu apare in partea dreaptă a
vreunei reguli.
Gramatica G′ = (N, T , S, P ′ ) unde P ′ consta din
reguli A → aB din P
reguli A → aS, pentru orice regula A → a din P
regula S → ǫ
este de tip 3 si generează L∗

LFAC (2017-18) Curs 2 6 / 33


Proprietăţi de ı̂nchidere pentru L3

Închiderea la intersecţie

Fie L1 , L2 limbaje de tip 3 (regulate).


Fie G1 = (N1 , T1 , S1 , P1 ) si G2 = (N2 , T2 , S2 , P2 ) gramatici de tip 3, ı̂n
formă normală, cu L1 = L(G1 ), L2 = L(G2 ).
Gramatica G = (N1 × N2 , T1 ∩ T2 , (S1 , S2 ), P), unde P constă din:

(S1 , S2 ) → ǫ, dacă S1 → ǫ ∈ P1 şi S2 → ǫ ∈ P2

(A1 , B1 ) → a(A2 , B2 ), dacă A1 → aA2 ∈ P1 şi B1 → aB2 ∈ P2

(A1 , A2 ) → a, dacă A1 → a ∈ P1 şi A2 → a ∈ P2

este de tip 3 şi generează limbajul L1 ∩ L2

LFAC (2017-18) Curs 2 7 / 33


Proprietăţi de ı̂nchidere pentru L3

Închiderea la operaţia de oglindire

Fie L limbaj de tip 3 (regulat).


Fie G = (N, T , S, P) de tip 3, ı̂n formă normală, care generează L
(L = L(G))
Presupunem ca simbolul de start S nu apare in partea dreaptă a
vreunei reguli.

Gramatica G′ = (N, T , S ′ , P ′ ) unde P ′ constă din


reguli S ′ → aA, pentru orice regulă A → a din P
reguli B → aA pentru orice regulă A → aB din P
regula S → ǫ
regula S ′ → a, pentru orice regulă S → a din P (a ∈ T ∪ {ǫ})
este de tip 3 şi generează LR
LFAC (2017-18) Curs 2 8 / 33
Automate finite deterministe

Curs 2

1 Proprietăţi de ı̂nchidere pentru L3

2 Automate finite deterministe

3 Automate finite nedeterministe

4 Automate finite cu ǫ-tranziţii

LFAC (2017-18) Curs 2 9 / 33


Automate finite deterministe

Automate finite

Mecanism de recunoaştere (acceptare) pentru limbaje


Limbaje de tip 3
Mulţime finită de stări

LFAC (2017-18) Curs 2 10 / 33


Automate finite deterministe

Automate finite

Definiţie 1
Un automat finit determinist este un 5-uplu A = (Q, Σ, δ, q0 , F ), unde:

Q şi Σ sunt mulţimi finite, nevide, numite mulţimea stărilor


respectiv alfabetul de intrare
q0 ∈ Q este starea iniţială
F ⊆ Q este mulţimea stărilor finale
δ este o funcţie , δ : Q × Σ → Q, numită funcţia de tranziţie

LFAC (2017-18) Curs 2 11 / 33


Automate finite deterministe

Reprezentare prin diagrame(grafuri) de tranziţie

Stări:

Stare iniţială:

Stări finale:

Funcţia de tranziţie:

LFAC (2017-18) Curs 2 12 / 33


Automate finite deterministe

Reprezentare prin matricea de tranziţie

A = ({q0 , q1 }, {a, b}, δ, q0 , {q1 })

LFAC (2017-18) Curs 2 13 / 33


Automate finite deterministe

Limbajul acceptat

Extensia lui δ la cuvinte δ̂ : Q × Σ∗ → Q


1 δ̂(q, ǫ) = q, ∀q ∈ Q;
2 δ̂(q, ua) = δ(δ̂(q, u), a)), ∀q ∈ Q, ∀u ∈ Σ∗ , ∀a ∈ Σ.

Observaţii:
δ̂(q, a) = δ(q, a), ∀q ∈ Q, ∀a ∈ Σ
δ̂(q, uv ) = δ̂(δ̂(q, u), v ), ∀q ∈ Q, ∀u, v ∈ Σ∗

LFAC (2017-18) Curs 2 14 / 33


Automate finite deterministe

Limbajul acceptat

Definiţie 2
Limbajul acceptat (recunoscut) de automatul A = (Q, δ, Σ, q0 , F ) este
mulţimea :
L(A) = {w|w ∈ Σ∗ , δ̂(q0 , w) ∈ F }.

Un cuvânt w este recunoscut de un automat A dacă, după citirea


ı̂n ı̂ntregime a cuvântului w, automatul (pornind din starea iniţială
q0 ) ajunge ı̂ntr-o stare finală.
δ̂(q, a) = δ(q, a), ∀q ∈ Q, ∀a ∈ Σ. Din acest motiv, δ̂ va fi notată de
asemenea cu δ.
Două automate A şi A′ sunt echivalente, dacă L(A) = L(A′ )
LFAC (2017-18) Curs 2 15 / 33
Automate finite deterministe

Exemple

LFAC (2017-18) Curs 2 16 / 33


Automate finite deterministe

Exemple

L(A) = {an bm |n ≥ 0, m ≥ 1}

LFAC (2017-18) Curs 2 16 / 33


Automate finite deterministe

Exemple

L(A) = {an bm |n ≥ 0, m ≥ 1}

L(A) = {a, b}∗

LFAC (2017-18) Curs 2 16 / 33


Automate finite deterministe

Exemple

Automate deterministe pentru:

L = {w ∈ {0, 1}∗ |w conţine un număr par de 0}

L = {w ∈ {0, 1}∗ |w se termina cu 11}

LFAC (2017-18) Curs 2 17 / 33


Automate finite nedeterministe

Curs 2

1 Proprietăţi de ı̂nchidere pentru L3

2 Automate finite deterministe

3 Automate finite nedeterministe

4 Automate finite cu ǫ-tranziţii

LFAC (2017-18) Curs 2 18 / 33


Automate finite nedeterministe

Automate finite nedeterministe

Definiţie 3
Un automat finit nedeterminist este un 5-uplu A = (Q, Σ, δ, q0 , F ),
unde:

Q, Σ, q0 şi F sunt definite ca ı̂n cazul automatelor finite


deterministe
δ este o funcţie , δ : Q × Σ → 2Q , numită funcţia de tranziţie

Observaţie:
A este automat determinist, dacă

|δ(q, a)| = 1, ∀q ∈ Q, ∀a ∈ Σ

LFAC (2017-18) Curs 2 19 / 33


Automate finite nedeterministe

Exemple

LFAC (2017-18) Curs 2 20 / 33


Automate finite nedeterministe

Extensia lui δ la cuvinte

S
Fie S mulţime de stări. Notăm δ(S, a) = q∈S δ(q, a).
Extensia lui δ la cuvinte δ̂ : Q × Σ∗ → 2Q
1 δ̂(q, ǫ) = {q}, ∀q ∈ Q;
2 δ̂(q, ua) = δ(δ̂(q, u), a), ∀q ∈ Q, ∀u ∈ Σ∗ , ∀a ∈ Σ.

LFAC (2017-18) Curs 2 21 / 33


Automate finite nedeterministe

Extensia lui δ la cuvinte

S
Fie S mulţime de stări. Notăm δ(S, a) = q∈S δ(q, a).
Extensia lui δ la cuvinte δ̂ : Q × Σ∗ → 2Q
1 δ̂(q, ǫ) = {q}, ∀q ∈ Q;
2 δ̂(q, ua) = δ(δ̂(q, u), a), ∀q ∈ Q, ∀u ∈ Σ∗ , ∀a ∈ Σ.

Observaţii:
δ̂(q, a) = δ(q, a), ∀q ∈ Q, ∀a ∈ Σ
δ̂(q, uv ) = δ̂(δ̂(q, u), v ), ∀q ∈ Q, ∀u, v ∈ Σ∗ .

LFAC (2017-18) Curs 2 21 / 33


Automate finite nedeterministe

Limbajul acceptat

Definiţie 4
Limbajul acceptat (recunoscut) de automatul finit nedeterminist
A = (Q, Σ, δ, q0 , F ) este mulţimea :

L(A) = {w|w ∈ Σ∗ , δ̂(q0 , w) ∩ F 6= ∅}.

Un cuvânt w este recunoscut de un automat A dacă, după citirea


ı̂n ı̂ntregime a cuvântului w, automatul (pornind din starea iniţială
q0 ) poate să ajungă ı̂ntr-o stare finală.

LFAC (2017-18) Curs 2 22 / 33


Automate finite nedeterministe

Determinism = Nedeterminism

Teorema 1
Pentru orice automat nedeterminist A, există unul determinist A′
echivalent.

Dacă A = (Q, Σ, δ, q0 , F ) atunci A′ = (2Q , Σ, δ ′ , Q0 , F ′ ) unde:


Q0 = {q0 }
F ′ = {S|S ⊆ Q, S ∩ F 6= ∅}
S
δ ′ (S, a) = s∈S δ(s, a) (= δ(S, a)), ∀S ∈ 2Q

Pentru aplicaţii se construiesc doar stările accesibile din starea


iniţială

LFAC (2017-18) Curs 2 23 / 33


Automate finite nedeterministe

Exemplu

LFAC (2017-18) Curs 2 24 / 33


Automate finite nedeterministe

Determinism = Nedeterminism

Dacă A = (Q, Σ, δ, q0 , F ) atunci A′ = (2Q , Σ, δ ′ , Q0 , F ′ ) unde:


Q0 = {q0 }
F ′ = {S|S ⊆ Q, S ∩ F 6= ∅}
S
δ ′ (S, a) = s∈S δ(s, a) = δ(S, a)

Au loc:

LFAC (2017-18) Curs 2 25 / 33


Automate finite nedeterministe

Determinism = Nedeterminism

Dacă A = (Q, Σ, δ, q0 , F ) atunci A′ = (2Q , Σ, δ ′ , Q0 , F ′ ) unde:


Q0 = {q0 }
F ′ = {S|S ⊆ Q, S ∩ F 6= ∅}
S
δ ′ (S, a) = s∈S δ(s, a) = δ(S, a)

Au loc:
S
δ ′ (S, w) = s∈S δ(s, w) = δ(S, w), ∀w ∈ Σ∗

LFAC (2017-18) Curs 2 25 / 33


Automate finite nedeterministe

Determinism = Nedeterminism

Dacă A = (Q, Σ, δ, q0 , F ) atunci A′ = (2Q , Σ, δ ′ , Q0 , F ′ ) unde:


Q0 = {q0 }
F ′ = {S|S ⊆ Q, S ∩ F 6= ∅}
S
δ ′ (S, a) = s∈S δ(s, a) = δ(S, a)

Au loc:
S
δ ′ (S, w) = s∈S δ(s, w) = δ(S, w), ∀w ∈ Σ∗
δ ′ (Q0 , w) = δ ′ ({q0 }, w) = δ(q0, w)

LFAC (2017-18) Curs 2 25 / 33


Automate finite nedeterministe

Determinism = Nedeterminism

Dacă A = (Q, Σ, δ, q0 , F ) atunci A′ = (2Q , Σ, δ ′ , Q0 , F ′ ) unde:


Q0 = {q0 }
F ′ = {S|S ⊆ Q, S ∩ F 6= ∅}
S
δ ′ (S, a) = s∈S δ(s, a) = δ(S, a)

Au loc:
S
δ ′ (S, w) = s∈S δ(s, w) = δ(S, w), ∀w ∈ Σ∗
δ ′ (Q0 , w) = δ ′ ({q0 }, w) = δ(q0, w)
w ∈ L(A′ ) ⇔
δ ′ (Q0 , w) ∈ F ′ ⇔ δ ′ (Q0 , w) ∩ F 6= ∅ ⇔ δ(q0 , w) ∩ F 6= ∅
⇔ w ∈ L(A)
LFAC (2017-18) Curs 2 25 / 33
Automate finite cu ǫ-tranziţii

Curs 2

1 Proprietăţi de ı̂nchidere pentru L3

2 Automate finite deterministe

3 Automate finite nedeterministe

4 Automate finite cu ǫ-tranziţii

LFAC (2017-18) Curs 2 26 / 33


Automate finite cu ǫ-tranziţii

Automate finite cu ǫ-tranziţii

Definiţie 5
Un automat finit cu ǫ-tranziţii este un 5-uplu A = (Q, Σ, δ, q0 , F ), unde:

Q, Σ, q0 şi F sunt definite ca ı̂n cazul automatelor finite


deterministe
δ este o funcţie , δ : Q × (Σ ∪ {ǫ}) → 2Q , numită funcţia de tranziţie

Observaţie:
A este automat nedeterminist, dacă δ(q, ǫ) = ∅, ∀q ∈ Q
A este automat determinist, dacă, ı̂n plus:

|δ(q, a)| = 1, ∀q ∈ Q, ∀a ∈ Σ

LFAC (2017-18) Curs 2 27 / 33


Automate finite cu ǫ-tranziţii

Exemplu

LFAC (2017-18) Curs 2 28 / 33

S-ar putea să vă placă și