Documente Academic
Documente Profesional
Documente Cultură
1. Definitii
gramatici i limbaje independente de context
arbori de derivare
proiectarea g.i.c.
2. Ambiguitate
3. Forme normale
definitii
exemple
aducerea la forma normala Chomsky
4. Lema de pompare
5. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
6. Automatul pushdown;
echivalenta cu gramatica independenta de context. 1
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
2
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Avantajul GIC: pot descrie structuri recursive =>
variate domenii de aplicabilitate a GIC:
1. studiul limbilor naturale:
relatiile dintre termeni precum: substantiv, verb, adjectiv, prepozitie,
relatiile dintre expresiile substantivale, verbale etc.
sunt in mod natural de tip recursiv: o expresie verbala poate contine o
expresie substantivala (de ex.) care, la randul ei, poate contine o expresie
verbala sau adjectivala etc.
2. specificarea si compilarea limbajelor de programare,
3. sintaxa unui limbaj de programare,
4. parsere:
sintaxa unui lb.de programare poate fi invatata si pornind de la gramatica sa,
proiectarea compilatoarelor si interpretoarelor de limbaje de programare
incepe deseori cu construirea unei GIC pt acel limbaj,
o posibila reprezentare a semnificatiei unui program extrasa de parser chiar
inainte de compilarea codului /executarea instructiunii interpretate,3
se poate realiza cu ajutorul arborelui de derivare al codului, obtinut cu
GIC a limbajului de programare respectiv,
exista numeroase metodologii care permit construirea uneori automat a
unui parser direct din GIC a limbajului de programare respectiv. 3
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Reamintim:
Definitia 1
Gramatica = (V, , S, P) unde:
V = multime finita, nevida, ale carei elemente se numesc variabile sau
simboluri neterminale (alta notatie VN);
= multime finita, nevida, numita alfabet de intrare, ale carei elemente se
numesc [simboluri] terminale (alta notatie VT); V=;
SV se numeste simbolul de start (axioma) gramaticii;
P (V )* V (V )* x (V )* = multime finita, nevida (productii) =
{|(V )*V(V )*; (V )*}
OBS. : ( (,)P : se inlocuieste cu );
Definitii 2
Se numeste substitutie = derivare directa = aplicarea unei productii i.e.:
daca P i , (V)*, atunci
Se numeste derivare = aplicarea consecutiva a mai multor productii =
daca 1 2, 23, , n-1n atunci 1*n .
4
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Reamintim:
Definitia 3
Gramatica independenta de context = GIC = (V,, S, P) unde:
pP: p este de forma A unde: AV , (V)*
Definitia 4
Limbaj independent de context = LIC =
L(G)={ w * | S G* w si G=GIC.}
Notatii 5
Multimea gramaticilor independente de context: G2= { G | G = GIC}
Multimea limbajelor independente de context: L2= { L | L = LIC}
Exemplu 6
G=({S}, {a,b}, S, {SSS, SaSb, S})G2 =>
L={, ab, anbn, anbabn, an(ba)kbn, }L2 .
5
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Definitie 7
Arbori de derivare = arbori de parsare =
= o metoda de reprezentare vizuala a derivarilor dintr-o gramatica
independenta de context G= (V,,S,P)
= un arbore in care
1. fiecare nod este etichetat cu un simbol din V;
2. radacina este etichetata cu S;
3. daca un nod n, etichetat cu A are cel putin un nod descendent, atunci
A trebuie sa fie in V;
4. daca nodul n i descendentii sai directi n1, n2, , nk sunt etichetati
respectiv cu A, A1, A2, , Ak V atunci P trebuie sa contina
productia
A A1A2Ak
Observatie 8
Etichetele nodurilor terminale formeaza un cuvant din L(G), numit i
6
rezultat al derivarii .
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Teorema 9
Fie G G2 i ; atunci:
S G* daca i numai daca exista o derivare / un arbore de derivare
in G care conduce la .
7
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Exemple 10
1. Fie G1 = ({S,C}, {0,1,#}, S,{S0S1, SC, C#})
Reprezentarea derivarilor: S
linear:
S
S0S100S11000S11103S1303C13=> 03#13
sintetic:
S
S G* 03#13
arbore de derivare: S
0 0 0 # 1 1 1
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
<EXPR>
<EXPR> + <TERM>
<FACT> <FACT> a
a a
9
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
=> arbore de derivare pentru cuvintul (a+a)xa: <EXPR>
Obs.:
G2 descrie acel fragment din limbajele de <TERM>
programare care trateaza expresiile aritmetice;
arborele de parsare grupeaza operatorii in X
<TERM> <FACT>
conformitate cu regulile de precedenta
(respectand inclusiv rolul parantezelor).
<FACT> a
( <EXPR> )
<EXPR> + <EXPR>
<TERM> <TERM>
<FACT> <FACT>
a a 10
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
0 1
q1 0
q2 q3
Observatie: Proiectarea G.I.C. pentru L, dat 1 0,1
Fie L = L(G); GG2; Distingem cel putin 4 situatii:
1. L L3; =>
(i) construim AFD A=(Q, , , s, F): L=L(A);
(ii) convertim A in G=(V, , S, P)G2 astfel:
V Q
S s
(qi,a)=qk BiaBk
qiF => se adauga Bi P 0 1
(iii) verificam direct ca L(A)=L(G) q1 q1 q2
ex.: L= {w{0,1}* | w=1(00)n, {0,1}*} q2 q3 q2
(i) A=({q1,q2,q3}, {0,1}, , q1, {q2})
(ii) G=({S,A,B}, {0,1}, S, q3 q2 q2
{S 0S, S 1A, A 0B, A 1A , B 0B, B 1B, A })
11
(iii) 1, 01, 11, 0101, 010100, 01001,
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
12
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
13
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
1. Definitii
gramatici i limbaje independente de context
arbori de derivare
proiectarea g.i.c.
2. Ambiguitate
3. Forme normale
definitii
exemple
aducerea la forma normala Chomsky
4. Lema de pompare
5. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
6. Automatul pushdown;
echivalenta cu gramatica independenta de context. 15
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Observatie
G G2 i wL(G) pe care G le poate genera in mai multe moduri =>
cuvantul w va admite mai multi arbori de derivare (parsare) =>
cuvantul w va avea mai multe intelesuri:
=> in limbile naturale: avantaj,
in limbajele de programare: mare dezavantaj;
Exemplu
Fie G3 = ({<EXPR>}, {a, +, x, (,)}, <EXPR>, {<EXPR>(<EXPR>), <EXPR>a,
<EXPR><EXPR>+<EXPR>, <EXPR><EXPR>X<EXPR>})
G3 genereaza cuvintul a+axa in mod ambiguu:
<EXPR> <EXPR>
a a a a
motivul: G2 modeleaza i regulile de precedenta a operatorilor, G3: NU!
=> in G2 orice cuvant are 1! arbore de parsare, in G3: NU! 16
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Observatie
Notiunea de ambiguitate este legata de notiunea de arbore de derivare :
daca wL(G), GG2, admit mai multe derivari dar 1! arbore de parsare =>
G NU este ambigua
motivul: 2 derivari ale w in G pot diferi prin ordinea in care sunt alese
neterminalele care se substituie, ceea ce nu altereaza structura derivarii
=> s-a introdus notiunea de derivare extrem stanga pt a evidentia structura
derivarii (independenta de alegerea netereminalelor);
Definitie
Fie S G* w o derivare a cuvantului wL(G), GG2 ;
aceasta derivare se numeste derivare extrem stanga daca la fiecare pas
de derivare neterminalul substituit este cel mai din stanga neterminal
Ex.: G4 = ({S,A}, {a,b}, S, {SaAS, Sa, ASS, ASbA, Aba})
SaAS aSbAS aabAS aabbaS aabbaa
Cex.: . 17
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Definitie
Fie S G* w o derivare a cuvantului wL(G), GG2 ;
Spunem ca w este ambiguu derivat in G ddaca w admite cel putin
2 derivari extrem stangi diferite.
Gramatica G se numeste ambigua ddaca genereaza ambiguu cel
putin un cuvant din L(G)
Observatie
GG2 ambigua a.i. GG2 , neambigua, L(G) = L(G).
Definitie
LL2 se numeste inerent ambiguu ddaca
GG2 , L=L(G): G=ambigua.
Exemplu
L = {akbicn | i=k sau i=n} este inerent ambiguu.
18
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
1. Definitii
gramatici i limbaje independente de context
arbori de derivare
proiectarea g.i.c.
2. Ambiguitate
3. Forme normale
definitii
exemple
aducerea la forma normala Chomsky
4. Lema de pompare
5. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
6. Automatul pushdown;
echivalenta cu gramatica independenta de context. 19
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Definitia 11
GG2 se afla in forma normala GREIBACH (FNG)
p P, p : A aB,
unde: A V,
a ,
B (V )*;
Teorema 12
L=L(G)L2., L => G in FNG a.i. L=L(G).
20
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Definitia 13
GG2 se afla in forma normala CHOMSKY (FNC)
p P, p : A BC sau A a,
unde: A,B,C V, B S C,
a ,
in plus, S P;
Lema 14 (demonstratia: EXERCITIU)
Fie G G2 aflata in FNC si L = L(G)
w L, |w|=n: S G*w : |S G*w| = 2n-1, n N.
21
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Teorema 2
Fie L L2 i G G2 a.i. L=L(G) => G in FNC a.i. L(G)=L
Ideea demonstratiei
Convertim pe rand pP (in ordinea crescatoare a nr de neterminale
din m.dr.) aplicand un fel de tranzitivitate a productiilor;
Demonstratie
Fie G = (V, , S, P)G2, L = L(G);
construim G= (V,, S, P) a.i. L(G) = L(G) i G in FNC;
Evident: =, dar V, S, P se vor modifica astfel:
(1) adaugam un nou simbol de start S si
o noua productie: S S
=> S nu va aparea in m.dr. vreunei p P .
22
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
exemplul 1:
pt. productia R uAvAw, u,v,w (V )*, adaugam:
R uvAw,
R uAvw,
R uvw,
exemplul 2:
pt. productia R uAv, u,v (V )*, adaugam R uv
exemplul 3:
pt productia R A adaugam
R (doar daca R NU a fost deja eliminata);
acest pas se repeta pana cand toate -productiile care nu il implica pe S
au fost eliminate. 23
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
25
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
1. Definitii
gramatici i limbaje independente de context
arbori de derivare
proiectarea g.i.c.
2. Ambiguitate
3. Forme normale
definitii
exemple
aducerea la forma normala Chomsky
4. Lema de pompare
5. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
6. Automatul pushdown;
echivalenta cu gramatica independenta de context. 29
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
(iv) |vxy| p X
Obs.: .
.
(iii) elimina cazurile in care fie v= fie y=, .
.
in care lema e trivial adevarata;
X
(iv) e utila in a demonstra ca L L2
Ideea demonstratiei
u v x y z
30
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Demonstratie
Fie GG2 i L=L(G);
fie b = max {|w| | Aw P}
(nr. max. de simboluri, terminale i neterminale, inclusiv repetitii, care pot
aparea in m.stg al p, pP);
=> wL(G): orice nod din arborele de parsare al w va avea max. b
descendenti directi;
=> max. b frunze se afla la distanta de 1 arc de radacina arborelui
(etichetata cu simbolul de start),
max. b2 frunze se afla la dist. de 2 arce de radacina,
max. bj frunze se afla la dist. de J arce de radacina,
=> daca H=inaltimea arborelui i H j, atunci |w| bj;
reciproc: daca |w| bj +1, atunci oricare dintre arborii sai de parsare va
avea o inaltime H j+1 ;
Fie n = |V| ( putem pp. n 2: n=2 daca G e in FNC, altfel n>2) =>
definim ct. de pompare: k = bcard(V)+1, unde b=max{|w| | AwP} =>
w L(G): daca |w| k atunci H |V|+1; . (1) 31
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Demonstratie (cont.)
Cum putem pompa w?
fie arborele de parsare al w, care are cel mai mic nr. de noduri,
cf. (1). H |V|+1; atunci
=> un drum in H de la radacina la o frunza de lg. l|V|+1
=> acest drum are cel putin |V|+2 noduri, dintre care 1! nod e etichetat cu
un terminal
=> acest drum are cel putin |V|+1 noduri etichetate cu neterm.
=> cel putin un neterminal se repeta de-a lungul acestui drum
alegem neterm. care se repeta cel mai aproape de frunza;
S
Descompunem w=uvxyz : .
.
.
.
X
.
.
.
.
u v x 32
y
S.
LFA: C4 LIMBAJE INDEPENDENTE DE. CONTEXT
.
.
X
.
.
.
.
Demonstratie (cont.) X
verificam cond.(ii) :
u v x y z
fiecare aparitie a lui X anunta un subarbore care genereaza un subcuvant
al cuvantului w;
prima aparitie reprezinta radacina subarborelui celui mai mare, cel care
genereaza vxy;
ultima aparitie reprezinta radacina subarborelui celui mai mic, cel care
genereaza x;
intrucat cei 2 subarbori au aceeasi radacina (etichetata X), i.e. sunt generati
de acelasi neterminal putem substitui pe unul cu celalalt obtinand tot un
arbore de derivare corect
=> daca inlocuim, repetat, cel mai mic arbore cu cel mai mare, obtinem
arborii de parsare ai cuvintelor uvixyiz, i>1;
=> daca inlocuim cel mai mare arbore cu cel mai mic, obtinem arborele de
parsare al cuvantului uxz (=> cond. (ii) ); 33
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
i2
S S
. . i=0
. .
. .
X X
.
.
.
X
.
.
.
x
X
u v y z u z
v x y
34
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
S.
.
.
.
X
.
.
.
.
X
Demonstratie (cont.) u v x y z
verificam cond.(iii) :
ppa v==y
=> arborele de parsare obtinut prin inlocuirea celui mai mare subarbore de
radacina X cu cel mai mic ar avea mai putine noduri decat i totusi ar
genera cuvantul w
=> contradictie cu alegerea lui ca fiind arborele de parsare al lui w cu cel
mai mic nr. de noduri.
35
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
S.
.
.
.
X
.
.
.
.
X
Demonstratie (cont.) u v x y z
verificam cond.(iv) :
stim ca in , prima aparitie a lui X genereaza cel mai mare subarbore al lui
w, i anume subarborele asociat lui vxy;
dar X a fost ales a.i. ambele sale aparitii sa fie cat mai aproape de frunza
=> aceste aparitii se afla printre ultimele |V|+1 noduri de pe drum (2)
in plus, drumul a fost ales ca fiind cel m. lung de la radacina la frunza (3)
din (2) i (3) rezulta ca inaltimea H a subarborelui de radacina X care
genereaza vxy este H |V|+2 =>
acest arbore poate genera un cuvant c, |c| b|V|+2=k . q.e.d.
36
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
1. Definitii
gramatici i limbaje independente de context
arbori de derivare
proiectarea g.i.c.
2. Ambiguitate
3. Forme normale
definitii
exemple
aducerea la forma normala Chomsky
4. Lema de pompare
5. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
6. Automatul pushdown;
echivalenta cu gramatica independenta de context. 37
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Definitii
L1,L2*: L {w * | w L} * \ L,
L0 si
L1L2={w*| wL1 sau wL2}, n
L :
Ln1 L Ln L Ln , n N ,
L1L2={w*| wL1 si wL2},
L L ,
L1 \ L2={w*| wL1 si wL2},
L {} {} L L,
L1 o L2={w1w2*| wL1 si wL2},
L* U Li , L U Li .
mi(L)={mi(w)| wL}. i0 i1
38
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Lema 3
L2 este inchisa la reuniune, concatenare si operatia *.
Demonstratie
Fie L1,L2L2, Li=L(Gi), unde Gi=(Vi, i, Si, Pi), i=1,2:
L1L2 este generat de G=(V, , S, P), unde:
V=V1 V2 {S0},
= 1 2,
S=S0,
P=P1 P2 {S0S1, S0S2}.
39
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
V=V1 V2 {S0},
= 1 2,
S=S0,
P=P1 P2 {S0S1S2};
L* este generat de G=(V, , S, P), unde:
V=V {S},
= ,
S=simbolul de start,
P=P {SSS};
Evident, toate cele 3 gramatici sunt independente de context.
40
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Lema
L2 este inchisa la operatia mirror
Demonstratie
(i) Fie L L2, L=L(G), unde G=(V, , S, P);
putem pp ca G este in FNC
=> construim G=(V, , S, P), unde
P= {ACB | ABC in G} {Aa | Aa in G}
L(G)=mi(L), i.e. : SG =>* w S G=>* mi(w), adica:
S=>x1=>x2=>=>xn este o derivare in G
S=>mi(x1)=>mi(x2)=>=>mi(xn) este o derivare in G
demonstratie prin inductie dupa n= nr pasi ai derivarii lui x in G: .
41
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
n=1
x= sau x => evident
(se aplica productia x sau xa dar a=mi(a) deci avem si productia
corespunzatoare in G.)
n1
Pp. afirmatia adevarata pt derivarea cuvantului x in n 1 pasi si
demonstram pt o derivare cu n+1 pasi:
Fie SG =>* x, respectiv S G=>* mi(x) in n+1 pasi =>
1) Prima productie este obligatoriu de forma SAB, respectiv SBA
2) y* a.i. x=yB => mi(x)=mi(yB)=Bmi(y)
=> lg derivarii lui y in G (i a lui mi(y) in G) este n
cf. ip.ind. pt y
o derivare pt y in G iff o derivare pt mi(y) in G.
compunere cu SAB (SBA)
SG =>* x S G=>* mi(x). 42
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Lema
L2 este inchisa la substituie i omomorfism
Demonstratie
(i) Fie ={a1,a2,,an} i 2 alfabete oarecare;
fie L*, L L2, L=L(G), unde G=(V, , S, P)G2 i
fie s : P (*) o substitutie a.i. s(ai) = L(Gi), unde Gi=(Vi, i, Si, Pi)G2,
trebuie sa construim GG2 a.i. L(G) = s(L) *
putem pp ca: VV1V2Vn=
G, G1, G2, , Gn sunt in FNC;
construim G = (V, , S, P) astfel:
V = VV1V2Vn
= 12n
S = S
P = P0P1P2Pn , unde productiile din P0 se obtin din productiile din P
inlocuind fiecare aparitie a unui terminal ai cu axioma Si, 1in. 43
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Lema
L2 NU este inchisa la intersectie si complementara
Demonstratie
(i) Ppa. ca L2 este inchisa la .
Fie G1=({S,T},{a,b,c},{SSc | Tc, TaTb | ab},S},
G2=({S,T},{a,b,c},{SaS | aT, TbTc | bc},S}.
=> L(G1)={anbncm | n,m1} L2
L(G2)={ambncn | n,m1} L2
Observam ca L(G1)L(G2)={anbncn | n1} L2 (cf. Lema pompare).
44
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
-L
L (-L)-L
1. Definitii
gramatici i limbaje independente de context
arbori de derivare
proiectarea g.i.c.
2. Ambiguitate
3. Forme normale
definitii
exemple
aducerea la forma normala Chomsky
4. Lema de pompare
5. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
6. Automatul pushdown;
echivalenta cu gramatica independenta de context. 46
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
{0n1n | nN} 47
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Observatii
APD are intrinsec o natura nedeterminista, dar:
AFD AFN
APDN APD
{0n1n | n 0}: APDN, APD;
{wwr | w{0,1}*}: APDN.
48
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Deosebiri intre APD si AFD:
(i) La APD trebuie sa luam in considerare:
setul de stari,
banda de intrare,
stiva;
Simbolurile scrise in stiva pot fi preluate din acelasi alfabet / din alt alfabet
decat cel al benzii de intrare
=> in definitia APD vom avea 2 alfabete: si ,
urmatoarea actiune a APD este determinata de:
starea crt. a APD,
simbolul citit de pe banda de intrare
simbolul aflat in varful stivei,
(ii) APD poate intalni si pe banda de intrare si in stiva smb. vid, =>
dom() = Q x ({}) x ({})
(iii) Urmatoarea actiune a APD poate consta in trecerea intr-o noua stare
si EVENTUAL scrierea unui simbol in stiva;
In plus, modelul APD fiind intrinsec nedeterminist,
APD poate trece in diferite stari => codom() = P(Q x ({}). 49
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Definitie
Automat pushdown = APD=(Q, , , , q0, F), unde:
Q = multime finita, nevida, ale carei elemente se numesc stari;
= multime finita, nevida, numita alfabet de intrare, ale carei
elemente se numesc simboluri, ( = {});
= multime finita, nevida, numita alfabetul stivei, ( = {});
: Q x x P(Q x ), numita functia de tranzitie;
q0 Q, numita starea initiala;
FQ numita multimea starilor finale.
50
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
a,b c
qi qj
Notatie
APD, aflat in starea qi,
citeste smb. a de pe banda de intrare,
extrage smb. b din stiva,
depune smb. c in stiva;
Daca a = APD face tranzitia i fara sa citeasca
nimic de pe banda de intrare,
Daca b = APD face tranzitia i fara sa extraga
nimic din stiva,
Daca c = APD face tranzitia i fara sa depuna
nimic din stiva.
51
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
a,b c
qi qj
Observatie
(i) Definitia formala a APD NU contine nici un mecanism explicit de
testare a vidarii stivei
METODA STANDARD:
se utilizeaza un smb. special din , $, care este depus in stiva
de la inceput,
cand acest smb. este intalnit (cand s-a ajuns in varful stivei)
inseamna ca stiva s-a golit;
(ii) Analog, definitia formala a APD NU contine nici un mecanism
explicit de testare a terminarii secventei de intrare
METODA STANDARD:
trecerea intr-o stare finala.
52
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
Teorema 3
Fie L * => ( G G2: L=L(G) A APD: L=L(A) )
Demonstratie
Fie L * i fie G=(V, , S, P)G2 ai. L(G)=L;
putem defini un APD R=(Q, ,, , q0, F) cu ajutorul lui G astfel:
Q = {qstart, qloop, qaccept} E:
E = multimea starilor auxiliare necesare implementarii depunerii
in stiva a secventelor intermediare din derivarea S * w, w L;
, depind de limbajul L considerat;
q0= qstart;
F = {qaccept};
53
LFA: C4 LIMBAJE INDEPENDENTE DE CONTEXT
, A w
a, a
, S$ ,$
qstart qloop qaccept
1. Definitii
gramatici i limbaje independente de context
arbori de derivare
proiectarea g.i.c.
2. Ambiguitate
3. Forme normale
definitii
exemple
aducerea la forma normala Chomsky
4. Lema de pompare
5. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
6. Automatul pushdown;
echivalenta cu gramatica independenta de context. 55