Limbaje Formale, Automate si Compilatoare
Curs 4
2014-15
LFAC (2014-15) Curs 4 1 / 44
Curs 4
1 Corectitudinea algoritmului de determinare a relatiei
2 Proprietati de nchidere pentru clasa limbajelor de tip 3
3 Expresii regulate
4 Automatul echivalent cu o expresie regulata
Algoritm
5 Gramatici si limbaje independente de context
LFAC (2014-15) Curs 4 2 / 44
Corectitudinea algoritmului de determinare a relatiei
Curs 4
1 Corectitudinea algoritmului de determinare a relatiei
2 Proprietati de nchidere pentru clasa limbajelor de tip 3
3 Expresii regulate
4 Automatul echivalent cu o expresie regulata
Algoritm
5 Gramatici si limbaje independente de context
LFAC (2014-15) Curs 4 3 / 44
Corectitudinea algoritmului de determinare a relatiei
Algoritm pentru determinarea relatiei
//initializarea tablourilor,
se marcheaz a perechile F (Q F ) si (Q F ) F
1.for (i=0; i
Corectitudinea algoritmului de determinare a relatiei
9.for (i=0; i
Corectitudinea algoritmului de determinare a relatiei
Algoritm pentru determinarea relatiei
// qi si qj devin separabile si la fel toate
// perechile de stari dependente de qi,qj
update separabil(qi , qj){
separabil[qi , qj] = 1;
for ((qi , qj ) lista[qi , qj]){
if (separabil[qi , qj ] == 0)
update separabil(qi , qj );
}
}
LFAC (2014-15) Curs 4 6 / 44
Corectitudinea algoritmului de determinare a relatiei
Corectitudinea algoritmului
Teorema 1
Algoritmul se termina ntotdeauna si n final se obtine, pentru orice
doua stari qi si qj , 0 i < j n: separabil[qi , qj ] = 1 ddaca qi sep qj
LFAC (2014-15) Curs 4 7 / 44
Corectitudinea algoritmului de determinare a relatiei
Corectitudinea algoritmului
Teorema 1
Algoritmul se termina ntotdeauna si n final se obtine, pentru orice
doua stari qi si qj , 0 i < j n: separabil[qi , qj ] = 1 ddaca qi sep qj
(=) Se arata ca:
P(k) : Pentru orice doua stari qi si qj (0 i < j n) separabile de catre un cuvant w
cu |w | k ((qi ,w) F , (qj ,w) 6 F ), are loc:
separabil[qi , qj ] = 1.
Inductie dupa |w |.
LFAC (2014-15) Curs 4 7 / 44
Corectitudinea algoritmului de determinare a relatiei
Corectitudinea algoritmului
Teorema 1
Algoritmul se termina ntotdeauna si n final se obtine, pentru orice
doua stari qi si qj , 0 i < j n: separabil[qi , qj ] = 1 ddaca qi sep qj
(=) Se arata ca:
pentru oricare doua stari qi , qj (0 i < j n) pentru care separabil[qi , qj ] = 1, are
loc:
qi sep qj .
Inductie asupra momentului n care algoritmul face separabil[qi , qj ] = 1.
LFAC (2014-15) Curs 4 7 / 44
Proprietati de nchidere pentru clasa limbajelor de tip 3
Curs 4
1 Corectitudinea algoritmului de determinare a relatiei
2 Proprietati de nchidere pentru clasa limbajelor de tip 3
3 Expresii regulate
4 Automatul echivalent cu o expresie regulata
Algoritm
5 Gramatici si limbaje independente de context
LFAC (2014-15) Curs 4 8 / 44
Proprietati de nchidere pentru clasa limbajelor de tip 3
Inchiderea la intersectie
Daca L1, L2 L3, atunci L1 L2 L3
Fie A1 = (Q1,1, 1, q01,F1) si A2 = (Q2,2, 2, q02,F2) automate
deterministe astfel ncat L1 = L(A1) si L2 = L(A2).
Automatul A (determinist) care recunoaste L1 L2:
A = (Q1 Q2,1 2, , (q01, q02),F1 F2)
((q1, q2), a)) = (q1, q2) ddaca
1(q1, a) = q1
2(q2, a) = q2
LFAC (2014-15) Curs 4 9 / 44
Proprietati de nchidere pentru clasa limbajelor de tip 3
Inchiderea la diferenta
Daca L L3 atunci L = ( \ L) L3
Fie A = (Q,, , q0,F ) automat cu L(A) = L.
Automatul A care recunoaste L = L(A):
A = (Q,, , q0,Q \ F )
LFAC (2014-15) Curs 4 10 / 44
Proprietati de nchidere pentru clasa limbajelor de tip 3
Inchiderea la diferenta
Daca L L3 atunci L = ( \ L) L3
Fie A = (Q,, , q0,F ) automat cu L(A) = L.
Automatul A care recunoaste L = L(A):
A = (Q,, , q0,Q \ F )
Daca L1, L2 L3 atunci L1 \ L2 L3 : L1 \ L2 = L1 L2
LFAC (2014-15) Curs 4 10 / 44
Proprietati de nchidere pentru clasa limbajelor de tip 3
Inchiderea la produs
Fie A1 = (Q1,, 1, q01, {f1}) si A2 = (Q2,, 2, q02, {f2})
automate cu o singura stare finala astfel ncat L1 = L(A1) si
L2 = L(A2).
Automatul A (cu -tranzitii) care recunoaste L1 L2:
A = (Q1 Q2,, , q01, {f2})
LFAC (2014-15) Curs 4 11 / 44
Proprietati de nchidere pentru clasa limbajelor de tip 3
Inchiderea la reuniune
Fie A1 = (Q1,1, 1, q01, {f1}) si A2 = (Q2,2, 2, q02, {f2})
automate cu o singura stare finala astfel ncat L1 = L(A1) si
L2 = L(A2).
Automatul A (cu -tranzitii) care recunoaste L1 L2:
A = (Q1 Q2 {q0, f},1 2, , q0, {f})
LFAC (2014-15) Curs 4 12 / 44
Proprietati de nchidere pentru clasa limbajelor de tip 3
Inchiderea la iteratie
Fie A = (Q,, , q01, {f}) automat cu o singura stare finala astfel
ncat L(A) = L.
Automatul A (cu -tranzitii) care recunoaste L (= L(A)):
A = (Q {q0, f},, , q0, {f})
LFAC (2014-15) Curs 4 13 / 44
Proprietati de nchidere pentru clasa limbajelor de tip 3
Inchiderea la operatia de oglindire
Fie A = (Q,, , q0, {qf}) automat cu o singura stare finala.
Automatul A (cu -tranzitii) care recunoaste L(A)R :A = (Q {q0},,
, q0, {q0}):(q1,a) = q2 ddaca (q2,a) = q1 (inversarea arcelor n graful detranzitie)(q0, ) = qfdaca L(A), atunci (q0, ) = q0
LFAC (2014-15) Curs 4 14 / 44
Expresii regulate
Curs 4
1 Corectitudinea algoritmului de determinare a relatiei
2 Proprietati de nchidere pentru clasa limbajelor de tip 3
3 Expresii regulate
4 Automatul echivalent cu o expresie regulata
Algoritm
5 Gramatici si limbaje independente de context
LFAC (2014-15) Curs 4 15 / 44
Expresii regulate
Expresii regulate - definitie
Reprezentarea limbajelor de tip 3 prin expresii algebrice
Definitie 1
Daca este un alfabet atunci o expresie regulata peste se defineste
inductiv astfel:
, , a (a ) sunt expresii regulate ce descriu respectiv limbajele
, {}, {a}.
Daca E, E1, E2 sunt expresii regulate atunci:
(E1|E2) este expresie regulata ce descrie limbajul L(E1) L(E2)(E1 E2) este expresie regulata ce descrie limbajul L(E1)L(E2)(E) este expresie regulata ce descrie limbajul L(E)
LFAC (2014-15) Curs 4 16 / 44
Expresii regulate
Expresii regulate - definitie
Reprezentarea limbajelor de tip 3 prin expresii algebrice
Definitie 1
Daca este un alfabet atunci o expresie regulata peste se defineste
inductiv astfel:
, , a (a ) sunt expresii regulate ce descriu respectiv limbajele
, {}, {a}.
Daca E, E1, E2 sunt expresii regulate atunci:
(E1|E2) este expresie regulata ce descrie limbajul L(E1) L(E2)(E1 E2) este expresie regulata ce descrie limbajul L(E1)L(E2)(E) este expresie regulata ce descrie limbajul L(E)
Ordinea de prioritate a operatorilor este , , |
LFAC (2014-15) Curs 4 16 / 44
Expresii regulate
Exemple
(a|b)|(c|d) {a, b, c, d}
(0|1) (0|1) {00, 01, 10, 11}
ab {anbk |n, k 0}
(a|b) {a, b}
(0|1|2|...|9)(0|1|2...|9) descrie multimea ntregilor fara semn
(a|b|c|...|z)(a|b|c|...|z|0|1|2...|9) descrie multimea identificatorilor
Doua expresii regulate E1,E2 sunt echivalente, si scriem E1 = E2 daca
L(E1) = L(E2)
LFAC (2014-15) Curs 4 17 / 44
Expresii regulate
Proprietati
(p|q)|r = p|(q|r)
(pq)r = p(qr)
p|q = q|p
p = p = p
p| = p|p = p
p = p =
p(q|r) = pq|pr
(p|q)r = pr |qr
|pp = p
|pp = p
LFAC (2014-15) Curs 4 18 / 44
Expresii regulate
De la o expresie regulata la automatul finit
Teorema 2
Pentru orice expresie regulata E peste exista un automat finit (cu -
tranzitii) A, astfel ncat L(A) = L(E).
Demonstratie: inductie structurala.
Daca E {, , a} (a ) atunci automatul corespunzator este
respectiv:
LFAC (2014-15) Curs 4 19 / 44
Expresii regulate
Demonstratie
E = E1|E2
E = E1E2
E = E1
LFAC (2014-15) Curs 4 20 / 44
Expresii regulate
Reprezentarea expresiilor regulate sub forma de
arbore
Intrare : Expresia regulata E = e0e1 . . . en1Precedenta operatorilor:
prec(|) = 1, prec() = 2, prec() = 3 (prec(()= 0).
Iesire : Arborele asociat: t .
Metoda : Se considera doua stive:
STIVA1 stiva operatorilorSTIVA2 stiva arborilor (care va contine arborii partiali construiti)Metoda tree(op, tS, tD)
LFAC (2014-15) Curs 4 21 / 44
Expresii regulate
Algoritmi = 0;
while(i < n) {
c = ei ;switch(c) {
case ( : { STIVA1.push(c); break; }
case simbol (din alfabet): { STIVA2.push(tree(c,NULL,NULL)); break; }case operator : {
while (prec(STIVA1.top())>=prec(c))
build tree();
STIVA1.push(c); break;
}
case ) : {
do { build tree(); } while(STIVA1.top()!= ();
STIVA1.pop(); break;
}
}
i++;
}
while(STIVA1.not empty()) build tree();
t = STIVA2.pop();
LFAC (2014-15) Curs 4 22 / 44
Expresii regulate
Algoritm
build tree()
op = STIVA1.pop();
tD = STIVA2.pop();
switch (op) {
case : {
t = tree(op, tD, NULL);
STIVA2.push(t); break;
}
case | , : {
tS = STIVA2.pop();
t = tree(op, tS, tD);
STIVA2.push(t); break;
}
}
LFAC (2014-15) Curs 4 23 / 44
Expresii regulate
Exemplu
a b|a (b|c)
LFAC (2014-15) Curs 4 24 / 44
Automatul echivalent cu o expresie regulata
Curs 4
1 Corectitudinea algoritmului de determinare a relatiei
2 Proprietati de nchidere pentru clasa limbajelor de tip 3
3 Expresii regulate
4 Automatul echivalent cu o expresie regulata
Algoritm
5 Gramatici si limbaje independente de context
LFAC (2014-15) Curs 4 25 / 44
Automatul echivalent cu o expresie regulata Algoritm
Automatul echivalent cu o expresie regulata
E = E1|E2
E = E1E2
E = E1LFAC (2014-15) Curs 4 26 / 44
Automatul echivalent cu o expresie regulata Algoritm
Observatii
pentru orice aparitie a unui simbol din , cat si pentru , daca
acesta apare explicit n E , este nevoie de 2 stari n automatul
construit.
fiecare din aparitiile operatorilor | si dintr-o expresie regulata E
introduce doua noi stari n automatul construit
operatorul nu introduce alte stari
daca n este numarul de simboluri din E iar m este numarul de
paranteze mpreuna cu aparitiile simbolului , atunci numarul
starilor automatului echivalent cu E este p = 2(n m).
LFAC (2014-15) Curs 4 27 / 44
Automatul echivalent cu o expresie regulata Algoritm
din orice stare i a automatului, se fac cel mult doua tranzitii:
(i ,a) = j ((i , ) = )(i , ) = {j} ((i ,a) = )(i , ) = {j , k} ((i ,a) = )
LFAC (2014-15) Curs 4 28 / 44
Automatul echivalent cu o expresie regulata Algoritm
din orice stare i a automatului, se fac cel mult doua tranzitii:
(i ,a) = j ((i , ) = )(i , ) = {j} ((i ,a) = )(i , ) = {j , k} ((i ,a) = )
reprezentarea automatului echivalent cu o expresie regulata sepoate face cu 3 tablouri de dimensiune p, unde p este numarulstarilor (acestea sunt numerotate de la 1 la p):
simbol[i] = a: din starea i se face o tranzitie cu simbolul a (dacasimbol[i] = , (i ,a) = )next1[i] = j : din starea i se face o tranzitie catre starea j ((i ,a) = j ,daca simbol[i] = a, altfel j (i , ))next2[i] = k : din starea i se face o - tranzitie catre k((i , ) = {j , k} si next1[i] = j) .
LFAC (2014-15) Curs 4 28 / 44
Automatul echivalent cu o expresie regulata Algoritm
Algoritm
Intrare : Expresia regulata E cu n simboluri dintre care m sunt
paranteze si aparitii ale operatorului produs;
Iesire : Vectorii simbol , next1, next2 de dimensiune p = 2(n m)
ce descriu automatul cu - tranzitii echivalent cu E , starea finala f ;
Metoda :
1. Se construieste arborele atasat expresiei E ;
2. Se parcurge arborele n preordine si se ataseaza nodurilor
vizitate, exceptand pe cele etichetate cu produs , respectiv
numerele 1, 2, . . . , n m;
LFAC (2014-15) Curs 4 29 / 44
Automatul echivalent cu o expresie regulata Algoritm
Exemplu
E = a|b c
LFAC (2014-15) Curs 4 30 / 44
Automatul echivalent cu o expresie regulata Algoritm
3. Se parcurge arborele n postordine si se ataseaza fiecarui nod No pereche de numere (N.i ,N.f ) care reprezinta starea initialarespectiv finala a automatului echivalent cu expresiacorespunzatoare subarborelui cu radacina N, astfel:
Daca nodul are numarul k (de la pasul 2) atunci:
N.i = 2k 1,N.f = 2k ;
Daca nodul este etichetat cu produs si S este fiul stang al lui N, iarD fiul drept, atunci:
N.i = S.i iar N.f = D.f
LFAC (2014-15) Curs 4 31 / 44
Automatul echivalent cu o expresie regulata Algoritm
Exemplu
E = a|b c
LFAC (2014-15) Curs 4 32 / 44
Automatul echivalent cu o expresie regulata Algoritm
4. for(j = 1..2(n m)) {simbol[j] = , next1[j] = next2[j] = 0}
LFAC (2014-15) Curs 4 33 / 44
Automatul echivalent cu o expresie regulata Algoritm
4. for(j = 1..2(n m)) {simbol[j] = , next1[j] = next2[j] = 0}
5. Se parcurge din nou arborele obtinut n postordine.
Daca N este nodul curent iar S si D sunt fii sai, atunci, n functie de eticheta lui N, seexecuta urmatoarele:
LFAC (2014-15) Curs 4 33 / 44
Automatul echivalent cu o expresie regulata Algoritm
4. for(j = 1..2(n m)) {simbol[j] = , next1[j] = next2[j] = 0}
5. Se parcurge din nou arborele obtinut n postordine.
Daca N este nodul curent iar S si D sunt fii sai, atunci, n functie de eticheta lui N, seexecuta urmatoarele:
Daca N este etichetat cu a (deci este frunza): (N.i, a) = N.f
simbol[N.i] = a, next1[N.i] = N.f
LFAC (2014-15) Curs 4 33 / 44
Automatul echivalent cu o expresie regulata Algoritm
4. for(j = 1..2(n m)) {simbol[j] = , next1[j] = next2[j] = 0}
5. Se parcurge din nou arborele obtinut n postordine.
Daca N este nodul curent iar S si D sunt fii sai, atunci, n functie de eticheta lui N, seexecuta urmatoarele:
Daca N este etichetat cu a (deci este frunza): (N.i, a) = N.f
simbol[N.i] = a, next1[N.i] = N.f
Daca N este etichetat cu |: (N.i, ) = {S.i,D.i}, (S.f , ) = N.f , (D.f , ) = N.f
next1[N.i] = S.i, next2[N.i] = D.i,
next1[S.f ] = N.f , next1[D.f ] = N.f
LFAC (2014-15) Curs 4 33 / 44
Automatul echivalent cu o expresie regulata Algoritm
4. for(j = 1..2(n m)) {simbol[j] = , next1[j] = next2[j] = 0}
5. Se parcurge din nou arborele obtinut n postordine.
Daca N este nodul curent iar S si D sunt fii sai, atunci, n functie de eticheta lui N, seexecuta urmatoarele:
Daca N este etichetat cu a (deci este frunza): (N.i, a) = N.f
simbol[N.i] = a, next1[N.i] = N.f
Daca N este etichetat cu |: (N.i, ) = {S.i,D.i}, (S.f , ) = N.f , (D.f , ) = N.f
next1[N.i] = S.i, next2[N.i] = D.i,
next1[S.f ] = N.f , next1[D.f ] = N.f
Daca N este etichetat cu : (S.f , ) = D.i
next1[S.f ] = D.i
LFAC (2014-15) Curs 4 33 / 44
Automatul echivalent cu o expresie regulata Algoritm
4. for(j = 1..2(n m)) {simbol[j] = , next1[j] = next2[j] = 0}
5. Se parcurge din nou arborele obtinut n postordine.
Daca N este nodul curent iar S si D sunt fii sai, atunci, n functie de eticheta lui N, seexecuta urmatoarele:
Daca N este etichetat cu a (deci este frunza): (N.i, a) = N.f
simbol[N.i] = a, next1[N.i] = N.f
Daca N este etichetat cu |: (N.i, ) = {S.i,D.i}, (S.f , ) = N.f , (D.f , ) = N.f
next1[N.i] = S.i, next2[N.i] = D.i,
next1[S.f ] = N.f , next1[D.f ] = N.f
Daca N este etichetat cu : (S.f , ) = D.i
next1[S.f ] = D.i
Daca N este etichetat cu (D nu exista n acest caz): (N.i, ) = {S.i,N.f},(S.f , ) = {S.i,N.f}
next1[N.i] = S.i, next2[N.i] = N.f ,
next1[S.f ] = S.i, next2[S.f ] = N.f
LFAC (2014-15) Curs 4 33 / 44
Automatul echivalent cu o expresie regulata Algoritm
4. for(j = 1..2(n m)) {simbol[j] = , next1[j] = next2[j] = 0}
5. Se parcurge din nou arborele obtinut n postordine.
Daca N este nodul curent iar S si D sunt fii sai, atunci, n functie de eticheta lui N, seexecuta urmatoarele:
Daca N este etichetat cu a (deci este frunza): (N.i, a) = N.f
simbol[N.i] = a, next1[N.i] = N.f
Daca N este etichetat cu |: (N.i, ) = {S.i,D.i}, (S.f , ) = N.f , (D.f , ) = N.f
next1[N.i] = S.i, next2[N.i] = D.i,
next1[S.f ] = N.f , next1[D.f ] = N.f
Daca N este etichetat cu : (S.f , ) = D.i
next1[S.f ] = D.i
Daca N este etichetat cu (D nu exista n acest caz): (N.i, ) = {S.i,N.f},(S.f , ) = {S.i,N.f}
next1[N.i] = S.i, next2[N.i] = N.f ,
next1[S.f ] = S.i, next2[S.f ] = N.f
6. f este starea pentru care next1[f] = next2[f] = 0
LFAC (2014-15) Curs 4 33 / 44
Automatul echivalent cu o expresie regulata Algoritm
Exemplu
E = a|b c
LFAC (2014-15) Curs 4 34 / 44
Automatul echivalent cu o expresie regulata Algoritm
Exemplu
LFAC (2014-15) Curs 4 35 / 44
Automatul echivalent cu o expresie regulata Algoritm
Exemplu
a b c
1 {3, 5}
2
3 4
4 {2}
5 {6, 7}
6 {9}
7 8
8 {6, 7}
9 10
10 {2}
LFAC (2014-15) Curs 4 36 / 44
Automatul echivalent cu o expresie regulata Algoritm
Corectitudinea algoritmului
Teorema 3
Algoritmul descris este corect: automatul cu - tranzitii obtinut este
echivalent cu expresia regulata E.
Demonstratie:
Modul n care au fost alese perechile (i , f ) de stari pentru fiecare
nod al arborelui construit corespunde constructiilor din teorema 1.
Deasemenea, tranzitiile care se definesc n pasul 5 al algoritmului
urmaresc constructia din teorema 1.
Automatul obtinut este echivalent cu expresia data la intrare.
LFAC (2014-15) Curs 4 37 / 44
Gramatici si limbaje independente de context
Curs 4
1 Corectitudinea algoritmului de determinare a relatiei
2 Proprietati de nchidere pentru clasa limbajelor de tip 3
3 Expresii regulate
4 Automatul echivalent cu o expresie regulata
Algoritm
5 Gramatici si limbaje independente de context
LFAC (2014-15) Curs 4 38 / 44
Gramatici si limbaje independente de context
Gramatici independente de context
Gramatici de tip 2 (independente de context): G = (N,T ,S,P)
N si T sunt multimi nevide, finite, disjuncte de neterminali(variabile), respectiv terminaliS N este simbolul de startP = {x u|x N,u (N T )} este multimea regulilor(productiilor).
Un limbaj L este de tip 2 (independent de context: L L2) daca
exista o gramatica G de tip 2 astfel ncat L(G) = L
LFAC (2014-15) Curs 4 39 / 44
Gramatici si limbaje independente de context
Derivari extrem stangi/drepte
Fie G = (N,T ,S,P) si w L(G)
derivare extrem stanga pentru w : derivarea n care, la orice pas
se nlocuieste cel mai din stanga neterminal din cuvantul obtinut
derivare extrem dreapta pentru w : derivarea n care, la orice pas
se nlocuieste cel mai din dreapta neterminal din cuvantul obtinut
LFAC (2014-15) Curs 4 40 / 44
Gramatici si limbaje independente de context
Exemplu
G = ({E}, {a, b,+, ), (},E ,P) unde:
P : E E + E |E E |(E)|a|b
Fie a + (b a)
Derivare extrem stanga:
E E+E a+E a+(E) a+(EE) a+(bE) a+(ba)
Derivare extrem dreapta:
E E + E E + (E) E + (E E) E + (E a)
E + (b a) a + (b a)
Exista derivari care nu sunt nici extrem drepte nici extrem stangi!
LFAC (2014-15) Curs 4 41 / 44
Gramatici si limbaje independente de context
Arbori sintactici
Definitie 2
Un arbore sintactic (arbore de derivare, arbore de parsare) n
gramatica G este un arbore ordonat, etichetat, cu urmatoarele
proprietati:
radacina arborelui este etichetata cu S ;
fiecare frunza este etichetata cu un simbol din T sau cu ;
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.
Cazul n care regula este A reprezinta un caz special: nodul
etichetat cu A are un singur descendent etichetat cu .LFAC (2014-15) Curs 4 42 / 44
Gramatici si limbaje independente de context
Arbori sintactici
Definitie 3
Frontiera unui arbore de derivare este cuvantul w = a1a2 . . . anunde ai , 1 i n sunt etichetele nodurilor frunza n ordinea de la
stanga la dreapta.
Arbore de derivare pentru un cuvant w: arbore de derivare cu
frontiera w.
Un X-arbore de derivare este un subarbore al unui arbore de
derivare care are eticheta radacinii X . Un arbore de derivare este
un S-arbore de derivare.
LFAC (2014-15) Curs 4 43 / 44
Gramatici si limbaje independente de context
Exemplu
G = ({E}, {a, b,+, ), (},E ,P) unde:
P : E E + E |E E |(E)|a|b
a + (b a)Derivare extrem stanga:
E E + E a + E a + (E)
a + (E E) a + (b E) a + (b a)
Derivare extrem dreapta:
E E + E E + (E) E + (E E)
E + (E a) E + (b a) a + (b a)
Arbore de derivare pentru
a + (b a):
LFAC (2014-15) Curs 4 44 / 44
Corectitudinea algoritmului de determinare a relatiei Proprietati de nchidere pentru clasa limbajelor de tip 3Expresii regulateAutomatul echivalent cu o expresie regulataAlgoritmGramatici si limbaje independente de context