Sunteți pe pagina 1din 6

Limbaje Formale, Automate s, i Compilatoare

Not, iuni s, i Algoritmi

Limbaje Formale
Gramatici - General
Fie V un alfabet. O submultime L ⊂ V∗ este un limbaj (formal) peste alfa-
betul V (sau V-limbaj) dacă L are o descriere (matematica) finita. O descriere
poate fi informala (prin cuvinte) sau formala (generativa, inductiva etc.). O
gramatica este un sistem G = (N, T, S, P), unde:
• N si T sunt doua alfabete disjuncte: N - multimea neterminalilor; T -
multimea terminalilor.
• S ∈ N este simbolul de start (neterminalul initial).
• P este o multime finita de reguli (productii) de forma x → y, unde x, y ∈
(N ∪ T)∗ si x contine cel putin un neterminal.
Limbajul generat de gramatica G este: L(G) = {w ∈ T∗ | S =⇒ + w}
Doua gramatici G1 si G2 sunt echivalente daca L(G1) = L(G2).

Ierarhia lui Chomsky


• Gramatici de tip 3 (Regulate): reguli A → u sau A → uB unde A, B ∈ N
si u ∈ T∗,
• Gramatici de tip 2 (Independente de context): reguli A → y unde A ∈ N
si y ∈ (N ∪ T)∗,
• Gramatici de tip 1 (Dependente de context): reguli de forma pxq → pyq
unde x ∈ N, y ∈ / ε, p, q ∈ (N ∪ T)∗ sau S → ε, caz ın care S NU apare ın
dreapta regulilor,
• Gramatici de tip 0 (Generale): nu exista restrictii asupra regulilor.

Gramatici de tip 3
Forma normala
O gramatica de tip 3 este in forma normala daca regulile sale sunt de forma
A → a sau A → aB, unde a ∈ T, si, eventual S → ε (caz in care S nu apare in
dreapta regulilor). Pentru orice gramatica de tip 3 exista o gramatica echiva-
lenta in forma normala.

1
Automate Finite
Sunt mecanisme de recunoastere (acceptare) pentru limbaje (de tip 3) si care
prezinta o multime finita de stari. Matematic, un automat finit determinist este
un 5-uplu A = (Q, Σ , δ, q0, F), unde:
• Q si Σ sunt multimi finite, nevide, numite multimea starilor, respectiv
alfabetul de intrare
• q0 ∈ Q este starea initiala
• F ⊂ Q este multimea starilor finale
• δ este o functie , δ : Q x Σ → Q, numita functia de tranzitie
• Limbajul acceptat (recunoscut) de automatul A = (Q, Σ , δ, q0, F) este
multimea :
L(A) = {w | w ∈ Σ∗, δ(q0, w) ∈ F}.
• Un cuvant w este recunoscut de un automat A daca, dupa citirea in in-
tregime a cuvantului w, automatul (pornind din starea initiala q0 ) ajunge intr-o
stare finala.
• A este automat determinist, daca |δ(q, a)| = 1, ∀q ∈ Q, ∀a ∈ Σ. In cazul
automatului finit nedeterminist, δ este o functie , δ : Q x Σ → 2Q , numita
functia de tranzitie.
• Pentru orice automat nedeterminist A, exista unul determinist A’ echiva-
lent.
• In cazul automatelor cu ε-tranzitii, functia de tranzitie va fi definita pe
Qx(Σ∪{ε}).
• Pentru orice automat A cu ε-tranzitii exista un automat A’ determinist
echivalent cu A
• Cl(q)-multimea starilor la care se poate ajunge prin ε-tranzitii.
• Transformarea in automat determinist echivalent:
{

2
• Starea q este accesibila in A daca exista un cuvant w ∈ Σ∗ astfel incat q
= δ(q0, w)
• Starile q1 si q2 sunt inseparabile in raport cu F, (notat q1 ρ q2) ddaca ∀w
∈ Σ∗: δ(q1, w) ∈ F ⇔ δ(q2, w) ∈ F. Relatia ρ este o relatie de echivalenta.
• ∃a ∈ Σ : δ(p, a) sep δ(q, a) ⇒ p sep q.
• Fie A un automat determinist cu toate starile accesibile. Daca toate starile
din A sunt separabile in raport cu F, atunci nu exista un alt automat A’ cu
numar mai mic de stari si L(A) = L(A’).
• Daca ∀q1, q2 ∈ Q: q1 sep q2, atunci A este minimal.

Expresii Regulate
Sunt o reprezentare a limbajelor de tip 3 sub forma de expresii algebrice.
Pentru orice expresie regulata E peste Σ exista un automat finit (cu ε-tranzitii)
A, astfel incat L(A)=L(E).

Gramatici de tip 2
Arbori sintactici/de derivare/de parsare
Sunt arbori ordonati, etichetati, cu urmatoarele proprietati:
• radacina este etichetata cu S,
• fiecare frunza este etichetata cu T sau ε,
• fiecare nod interior este etichetat cu un neterminal,
• daca A eticheteaza un nod interior care are n succesori etichetati de la
stanga la dreapta respectiv cu X1,X2...Xn, atunci A → X1X2...Xn este o regula.
Pentru A → ε, nodul etichetat cu A nu mai are alti succesori.

Ambiguitate
O gramatica G este ambigua daca exista un cuvant w in L(G) care are 2
arbori de derivare distincti (w are 2 derivari extrem stangi/drepte distincte).

Forme reduse
Un simbol X din N ∪ T este accesibil daca exista o derivare catre el pornind
din simbolul de start S. Un simbol A din N este productiv daca exista o derivare
de forma A ⇒+w, w ∈ T∗. Un simbol este inutil daca este inaccesibil sau
neproductiv.
O gramatica este in forma redusa daca nu contine simboluri inutile. Orice
limbaj de tip 2 poate fi generat de o gramatica in forma redusa.
• Eliminarea simbolurilor inaccesibile:
{

3
}
• Eliminarea simbolurilor neproductive:
{

}
• Eliminarea stergerilor:
{

}
• Eliminarea redenumirilor:
{

4
Forma normala Chomsky
O gramatica este in forma normala Chomsky daca regulile sale au forma:
• A → BC,
•A→a
• (si eventual S → ε) (A,B,C ∈ N si a ∈ T).

Algoritmul Cocke Younger Kasami - CYK


Enunt: data o gramatica de tip 2 si un cuvant w, sa se decida daca w ∈
L(G).
Complexitate CYK pentru problema recunoasterii: O(n3 ).
{

Automate Pushdown
Un automat pushdown este un 7-uplu: M = (Q, Σ, Γ, δ, q0, z0, F):
• Q = multimea starilor
• Σ = alfabetul de intrare
• Γ = alfabetul memoriei pushdown (al stivei)
• δ = functia de tranzitie
• q0 ∈ Q = starea intiala
• z0 ∈ Γ = simbolul initial din stiva
• F ⊂ Q = multimea starilor finale.
Modelul este nedeterminist.
Relatia de tranzitie intre configuratii:
(q, aw, zβ) ` (q’, w, αβ) daca (q’, α) ∈ δ(q, a, z)
(q, q’ ∈ Q, a ∈ Σ ∪ {ε}, z ∈ Γ, α, β ∈ Γ∗)
Limbajul recunoscut de un automat pushdown:
• Prin stari finale:
L(M) = {w ∈ Σ∗ | (q0, w, z0) `∗ (q, ε, γ), q ∈ F, γ ∈ Γ∗}
• Prin golirea stivei - cand nu exista stari finale:
Lε(M) = {w ∈ Σ∗ | (q0, w, z0) `∗ (q, ε, ε), q ∈ Q}
Pentru orice automat pushdown fara stari finale, exista un automat cu stari
finale echivalent si invers.
• Un automat pushdown determinist poate avea ε-tranzitii.

5
• L2DET = {L | ∃ M - un automat pushdown determinist astfel incat L =
L(M)}.
Clasa L2DET este o clasa proprie a clasei de limbaje L2 (L2DET ⊂ L2) -
reprezinta multimea limbajelor de tip 2 deterministe.
O gramatica G este determinista daca:
• Orice regula este de forma A → aα, unde a ∈ T si α ∈ (N∪T)∗
• Pentru orice A ∈ N, daca A → aα, A → bα’ sunt reguli, atunci a 6= b.
Pentru orice gramatica determinista G exista un automat pushdown deter-
minist M astfel incat L(G)=L(M).

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