lfa
DESCRIPTION
manual lexTRANSCRIPT
![Page 1: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/1.jpg)
Limbaje Formale, Automate si Compilatoare
Curs 1
LFAC (2012-13) Curs 1 1 / 39
![Page 2: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/2.jpg)
Limbaje Formale, Automate si Compilatoare
Curs:
O.Captarencu: [email protected],
http://www.infoiasi.ro/ ˜ otto/lfac.html
Gh. Grigoras: [email protected]
Laboratoare:
O.Captarencu
A. Moruz: [email protected]
Pagina cursului:
http://portal.info.uaic.ro/curs/lfac/
LFAC (2012-13) Curs 1 2 / 39
![Page 3: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/3.jpg)
Evaluare
SA = activitatea la seminar (max 10 puncte)
LA = activitatea la laborator (max 10 puncte)
T1,T2 teste scrise ın saptamanile 8, 16; FE = (T1+T2)/2
Punctajul final se obtine astfel:
P = 30% ∗ SA + 30% ∗ LA + 40% ∗ FE
Conditie obligatorie de promovare: SA ≥ 5, LA ≥ 5
Nota finala se va stabili conform criteriilor ECTS (Nota ≥ 5 pentru
promovare)
LFAC (2012-13) Curs 1 3 / 39
![Page 4: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/4.jpg)
Tematica cursului I
Limbaje si gramatici
Limbaje regulate; gramatici, automate , expresii regulate
Limbaje independente de context; gramatici, automate pushdown
Masini Turing
LFAC (2012-13) Curs 1 4 / 39
![Page 5: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/5.jpg)
Tematica cursului II
Limbaje de programare: proiectare si implementare
Analiza lexicala
Analiza sintactica
Traducere ın cod intermediar
LFAC (2012-13) Curs 1 5 / 39
![Page 6: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/6.jpg)
Tematica seminarului
Exemple de limbaje si gramatici
Automate finite deterministe, nedeterministe, cu epsilon-tranzitii -
Exemple
Expresii regulate
Gramatici independente de context, arbori de derivare, eliminarea
simbolurilor inutile, eliminarea regulilor de stergere, a
redenumirilor
Forma normala Chomsky, algoritmul CYK
Automate pushdown - exemple
LFAC (2012-13) Curs 1 6 / 39
![Page 7: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/7.jpg)
Tematica laboratorului
Analiza lexicala folosind instrumente de tip LEX
Analiza sintactica folosind instrumente de tip YACC
Interpretor construit cu LEX si YACC
LFAC (2012-13) Curs 1 7 / 39
![Page 8: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/8.jpg)
Bibliografie
Grigoras, Gh. Constructia compilatoarelor - Algoritmi fundamentali, Ed.
Universitatii Al. I. ”Cuza Iasi”, ISBN 973-703-084-2, 274 pg., 2005
Jucan Toader - Limbaje formale si automate, Editura Matrix Rom, Bucuresti,
1999, 162 p.
Jucan Toader, Stefan Andrei Limbaje formale si teoria automatelor. Teorie si
practica, Editura Universitatii Al. I. Cuza, Iasi, 2002, 327p.
Hopcroft, John E.; Motwani, Rajeev; Ullman, Jeffrey D. (2006).Introduction to
Automata Theory, Languages, and Computation(3rd ed.). Addison-Wesley
Stoughton Alley, Formal Language Theory, Kansas State University, Draft of Fall
2007.
Manual LEX, Manual FLEX, Manual YACC, Manual Bison,
Compiler Construction using Flex and Bison
LFAC (2012-13) Curs 1 8 / 39
![Page 9: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/9.jpg)
Curs 1
1 Limbaje formale
2 Gramatici
3 Ierarhia lui Chomsky
4 Gramatici si limbaje regulate
Proprietati de ınchidere
Lema Bar-Hillel
LFAC (2012-13) Curs 1 9 / 39
![Page 10: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/10.jpg)
Limbaje formale
Curs 1
1 Limbaje formale
2 Gramatici
3 Ierarhia lui Chomsky
4 Gramatici si limbaje regulate
Proprietati de ınchidere
Lema Bar-Hillel
LFAC (2012-13) Curs 1 10 / 39
![Page 11: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/11.jpg)
Limbaje formale
Alfabet, cuvant, multime de cuvinte
Alfabet: V o multime finita (elemente lui V = simboluri )
Simbolurile le vom nota a, b, etc.
LFAC (2012-13) Curs 1 11 / 39
![Page 12: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/12.jpg)
Limbaje formale
Alfabet, cuvant, multime de cuvinte
Alfabet: V o multime finita (elemente lui V = simboluri )
Simbolurile le vom nota a, b, etc.
Cuvant: sir finit de simboluri
cuvintele le vom nota u, v , w ...
cuvantul nul notat ǫ sau λ
LFAC (2012-13) Curs 1 11 / 39
![Page 13: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/13.jpg)
Limbaje formale
Alfabet, cuvant, multime de cuvinte
Alfabet: V o multime finita (elemente lui V = simboluri )
Simbolurile le vom nota a, b, etc.
Cuvant: sir finit de simboluri
cuvintele le vom nota u, v , w ...
cuvantul nul notat ǫ sau λ
Lungimea unui cuvant u: numarul simbolurilor sale. Notatie: |u|
|ǫ| = 0
LFAC (2012-13) Curs 1 11 / 39
![Page 14: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/14.jpg)
Limbaje formale
Alfabet, cuvant, multime de cuvinte
Alfabet: V o multime finita (elemente lui V = simboluri )
Simbolurile le vom nota a, b, etc.
Cuvant: sir finit de simboluri
cuvintele le vom nota u, v , w ...
cuvantul nul notat ǫ sau λ
Lungimea unui cuvant u: numarul simbolurilor sale. Notatie: |u|
|ǫ| = 0
V ∗ - multimea tuturor cuvintelor peste alfabetul V , inclusiv ǫ
{0, 1}∗ = {ǫ, 0, 1, 00, 01, 10, 11, 000, 001, ...}
LFAC (2012-13) Curs 1 11 / 39
![Page 15: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/15.jpg)
Limbaje formale
Alfabet, cuvant, multime de cuvinte
Alfabet: V o multime finita (elemente lui V = simboluri )
Simbolurile le vom nota a, b, etc.
Cuvant: sir finit de simboluri
cuvintele le vom nota u, v , w ...
cuvantul nul notat ǫ sau λ
Lungimea unui cuvant u: numarul simbolurilor sale. Notatie: |u|
|ǫ| = 0
V ∗ - multimea tuturor cuvintelor peste alfabetul V , inclusiv ǫ
{0, 1}∗ = {ǫ, 0, 1, 00, 01, 10, 11, 000, 001, ...}
V+ - multimea tuturor cuvintelor nenule peste alfabetul V
{0, 1}+ = {0, 1, 00, 01, 10, 11, 000, 001, ...}
LFAC (2012-13) Curs 1 11 / 39
![Page 16: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/16.jpg)
Limbaje formale
Concatenarea a doua cuvinte x , y : cuvantul x · y obtinut dinsimbolurile lui x , ın ordinea ın care apar, urmate de cele ale lui yde asemenea ın ordinea ın care apar:
x = 0100, y = 100, x · y = 0100100
x = 000, y = ǫ, x · y = 000
LFAC (2012-13) Curs 1 12 / 39
![Page 17: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/17.jpg)
Limbaje formale
Concatenarea a doua cuvinte x , y : cuvantul x · y obtinut dinsimbolurile lui x , ın ordinea ın care apar, urmate de cele ale lui yde asemenea ın ordinea ın care apar:
x = 0100, y = 100, x · y = 0100100
x = 000, y = ǫ, x · y = 000
Concatenarea este asociativa
ǫ este element neutru
LFAC (2012-13) Curs 1 12 / 39
![Page 18: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/18.jpg)
Limbaje formale
Concatenarea a doua cuvinte x , y : cuvantul x · y obtinut dinsimbolurile lui x , ın ordinea ın care apar, urmate de cele ale lui yde asemenea ın ordinea ın care apar:
x = 0100, y = 100, x · y = 0100100
x = 000, y = ǫ, x · y = 000
Concatenarea este asociativa
ǫ este element neutru
(V ∗, ·) este monoid, se numeste monoidul liber generat de V
LFAC (2012-13) Curs 1 12 / 39
![Page 19: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/19.jpg)
Limbaje formale
Concatenarea a doua cuvinte x , y : cuvantul x · y obtinut dinsimbolurile lui x , ın ordinea ın care apar, urmate de cele ale lui yde asemenea ın ordinea ın care apar:
x = 0100, y = 100, x · y = 0100100
x = 000, y = ǫ, x · y = 000
Concatenarea este asociativa
ǫ este element neutru
(V ∗, ·) este monoid, se numeste monoidul liber generat de V
Cuvantul v este un prefix al cuvantului u daca ∃w ∈ V ∗,u = vw ;
daca w ∈ V+ , atunci v este un prefix propriu
LFAC (2012-13) Curs 1 12 / 39
![Page 20: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/20.jpg)
Limbaje formale
Concatenarea a doua cuvinte x , y : cuvantul x · y obtinut dinsimbolurile lui x , ın ordinea ın care apar, urmate de cele ale lui yde asemenea ın ordinea ın care apar:
x = 0100, y = 100, x · y = 0100100
x = 000, y = ǫ, x · y = 000
Concatenarea este asociativa
ǫ este element neutru
(V ∗, ·) este monoid, se numeste monoidul liber generat de V
Cuvantul v este un prefix al cuvantului u daca ∃w ∈ V ∗,u = vw ;
daca w ∈ V+ , atunci v este un prefix propriu
Cuvantul v este un sufix al cuvantului u daca ∃w ∈ V ∗,u = wv ;
daca w ∈ V+, atunci v este un sufix propriu
LFAC (2012-13) Curs 1 12 / 39
![Page 21: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/21.jpg)
Limbaje formale
Limbaj formal
Fie V un alfabet. O submultime L ⊆ V ∗ este un limbaj (formal)
peste alfabetul V (sau V-limbaj) daca L are o descriere finita.
O descriere poate fi:
LFAC (2012-13) Curs 1 13 / 39
![Page 22: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/22.jpg)
Limbaje formale
Limbaj formal
Fie V un alfabet. O submultime L ⊆ V ∗ este un limbaj (formal)
peste alfabetul V (sau V-limbaj) daca L are o descriere finita.
O descriere poate fi:- neformala (ın limbaj natural):
multimea cuvintelor peste alfabetul {0, 1} care contin un numar par
de 0 .
L = {x ∈ V+ : |x |este par}.
{anbn|n ∈ N}.
{w ∈ {0, 1}∗|w se termina in 00}.
LFAC (2012-13) Curs 1 13 / 39
![Page 23: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/23.jpg)
Limbaje formale
Limbaj formal
Fie V un alfabet. O submultime L ⊆ V ∗ este un limbaj (formal)
peste alfabetul V (sau V-limbaj) daca L are o descriere finita.
O descriere poate fi:- neformala (ın limbaj natural):
multimea cuvintelor peste alfabetul {0, 1} care contin un numar par
de 0 .
L = {x ∈ V+ : |x |este par}.
{anbn|n ∈ N}.
{w ∈ {0, 1}∗|w se termina in 00}.
- formala (descriere matematica):
o descriere inductiva a cuvintelor
o descriere generativa a cuvintelor (gramatica generativa)
o descriere a unei metode de recunoastere a cuvintelor din limbaj
(automat finit, automat pushdown, etc.)
LFAC (2012-13) Curs 1 13 / 39
![Page 24: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/24.jpg)
Limbaje formale
Operatii cu limbaje
Operatiile cu multimi (reuniune, intersetie etc)
Produs de limbaje: L1 · L2 = {uv |u ∈ L1, v ∈ L2}
Iteratia (produsul Kleene): L∗ =⋃
n≥0 Ln, unde:
L0 = {ǫ}
Ln+1 = LnL
Pref(L) = {u|uv ∈ L}
LR = {wR |w ∈ L}; daca w = a1a2 . . . an, atunci wR = an . . . a2a1
LFAC (2012-13) Curs 1 14 / 39
![Page 25: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/25.jpg)
Gramatici
Curs 1
1 Limbaje formale
2 Gramatici
3 Ierarhia lui Chomsky
4 Gramatici si limbaje regulate
Proprietati de ınchidere
Lema Bar-Hillel
LFAC (2012-13) Curs 1 15 / 39
![Page 26: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/26.jpg)
Gramatici
Gramatici
Definitie 1
O gramatica este un sistem G = (N,T ,S,P), unde:1 N si T sunt doua alfabete disjuncte
N este multimea neterminalilor
T este multimea terminalilor
2 S ∈ N este simbolul de start (neterminalul initial)
3 P este o multine finita de reguli (productii) de forma x → y, unde
x , y ∈ (N ∪ T )∗ si x contine cel putin un neterminal.
LFAC (2012-13) Curs 1 16 / 39
![Page 27: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/27.jpg)
Gramatici
Derivare
Fie G = (N,T ,S,P) o gramatica si u, v ∈ (N ∪ T )∗.
Spunem ca v este derivat ıntr-un pas de la u prin aplicarea regulii
x → y , si notam u ⇒ v , daca ∃p,q ∈ (N ∪ T )∗ astfel ıncat u = pxq si
v = pyq
LFAC (2012-13) Curs 1 17 / 39
![Page 28: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/28.jpg)
Gramatici
Derivare
Fie G = (N,T ,S,P) o gramatica si u, v ∈ (N ∪ T )∗.
Spunem ca v este derivat ıntr-un pas de la u prin aplicarea regulii
x → y , si notam u ⇒ v , daca ∃p,q ∈ (N ∪ T )∗ astfel ıncat u = pxq si
v = pyq
Daca u1 ⇒ u2 . . . ⇒ un, n > 1, spunem ca un este derivat din u1 ın
G si notam u1 ⇒+ un.
LFAC (2012-13) Curs 1 17 / 39
![Page 29: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/29.jpg)
Gramatici
Derivare
Fie G = (N,T ,S,P) o gramatica si u, v ∈ (N ∪ T )∗.
Spunem ca v este derivat ıntr-un pas de la u prin aplicarea regulii
x → y , si notam u ⇒ v , daca ∃p,q ∈ (N ∪ T )∗ astfel ıncat u = pxq si
v = pyq
Daca u1 ⇒ u2 . . . ⇒ un, n > 1, spunem ca un este derivat din u1 ın
G si notam u1 ⇒+ un.
Scriem u ⇒∗ v daca u ⇒+ v sau u = v .
LFAC (2012-13) Curs 1 17 / 39
![Page 30: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/30.jpg)
Gramatici
Limbaj generat
Definitie 2
Limbajul generat de gramatica G este:
L(G) = {w ∈ T ∗|S ⇒+ w}
LFAC (2012-13) Curs 1 18 / 39
![Page 31: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/31.jpg)
Gramatici
Limbaj generat
Definitie 2
Limbajul generat de gramatica G este:
L(G) = {w ∈ T ∗|S ⇒+ w}
Definitie 3
Doua gramatici G1 si G2 sunt echivalente daca L(G1) = L(G2)
LFAC (2012-13) Curs 1 18 / 39
![Page 32: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/32.jpg)
Gramatici
Exemplu
L = {anbn|n ≥ 1}
Definitia inductiva:
- ab ∈ L- Daca X ∈ L, atunci aXb ∈ L
- Nici un alt cuvant nu face parte din L
LFAC (2012-13) Curs 1 19 / 39
![Page 33: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/33.jpg)
Gramatici
Exemplu
L = {anbn|n ≥ 1}
Definitia inductiva:
- ab ∈ L- Daca X ∈ L, atunci aXb ∈ L
- Nici un alt cuvant nu face parte din L
Definitia generativa:
- G = ({X}, {a, b},X ,P), unde P = {X → aXb,X → ab}- Derivarea cuvantului a3b3:
X ⇒ aXb ⇒ aaXbb ⇒ aaabbb
LFAC (2012-13) Curs 1 19 / 39
![Page 34: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/34.jpg)
Gramatici
Exemplu
L = {anbncn|n ≥ 1}
G = (N,T ,S,P), N = {S,X}, T = {a,b, c}, P consta din:
- (1) S → abc
- (2) S → aSXc- (3) cX → Xc
- (4) bX → bb
Derivarea cuvantului a3b3c3: S ⇒(2) aSXc ⇒(2) aaSXcXc ⇒(1)
aaabcXcXc ⇒(3) aaabXccXc ⇒(4) aaabbccXc ⇒(3)
aaabbcXcc ⇒(3) aaabbXccc ⇒(4) aaabbbccc = a3b3c3
LFAC (2012-13) Curs 1 20 / 39
![Page 35: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/35.jpg)
Ierarhia lui Chomsky
Curs 1
1 Limbaje formale
2 Gramatici
3 Ierarhia lui Chomsky
4 Gramatici si limbaje regulate
Proprietati de ınchidere
Lema Bar-Hillel
LFAC (2012-13) Curs 1 21 / 39
![Page 36: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/36.jpg)
Ierarhia lui Chomsky
Clasificarea gramaticilor
1 Gramatici de tip 0 (generale)
Nu exista restrictii asupra regulilor
LFAC (2012-13) Curs 1 22 / 39
![Page 37: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/37.jpg)
Ierarhia lui Chomsky
Clasificarea gramaticilor
1 Gramatici de tip 0 (generale)
Nu exista restrictii asupra regulilor
2 Gramatici de tip 1 (dependente de context)
reguli de forma pxq → pyq unde x ∈ N, y 6= ǫ, p, q ∈ (N ∪ T )∗
S → ǫ, caz ın care S nu apare ın dreapta productiilor
LFAC (2012-13) Curs 1 22 / 39
![Page 38: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/38.jpg)
Ierarhia lui Chomsky
Clasificarea gramaticilor
1 Gramatici de tip 0 (generale)
Nu exista restrictii asupra regulilor
2 Gramatici de tip 1 (dependente de context)
reguli de forma pxq → pyq unde x ∈ N, y 6= ǫ, p, q ∈ (N ∪ T )∗
S → ǫ, caz ın care S nu apare ın dreapta productiilor
3 Gramatici de tip 2 (independente de context)
reguli de forma A → y unde A ∈ N si y ∈ (N ∪ T )∗
LFAC (2012-13) Curs 1 22 / 39
![Page 39: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/39.jpg)
Ierarhia lui Chomsky
Clasificarea gramaticilor
1 Gramatici de tip 0 (generale)
Nu exista restrictii asupra regulilor
2 Gramatici de tip 1 (dependente de context)
reguli de forma pxq → pyq unde x ∈ N, y 6= ǫ, p, q ∈ (N ∪ T )∗
S → ǫ, caz ın care S nu apare ın dreapta productiilor
3 Gramatici de tip 2 (independente de context)
reguli de forma A → y unde A ∈ N si y ∈ (N ∪ T )∗
4 Gramatici de tip 3 (regulate)
A → u sau A → uB unde A,B ∈ N si u ∈ T ∗.
LFAC (2012-13) Curs 1 22 / 39
![Page 40: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/40.jpg)
Ierarhia lui Chomsky
Exemple
Ce tip au urmatoarele gramatici?
G = (N,T ,S,P), N = {S,A,B}, T = {a,b, c}, P:
(1)S → aaAc
(2)aAc → aAbBc
(3)bB → bBc
(4)Bc → Abc
(5)A → a
G = (N,T ,S,P), N = {S,X}, T = {a,b, c}, P:
(1)S → abc
(2)S → aSXc
(3)cX → Xc
(4)bX → bb
LFAC (2012-13) Curs 1 23 / 39
![Page 41: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/41.jpg)
Ierarhia lui Chomsky
Exemple
FieG = ({E}, {a,+,−, (, )},E , {E → a,E → (E +E),E → (E −E)}).
Ce tip are gramatica G ?Construiti derivari din E pentru cuvintele (a + a) si ((a + a)− a)
Cuvantul (a + a − a) poate fi derivat din E?Descrieti limbajul L(G)
Fie G = ({A,B}, {a,b},A, {A → aA,A → B,B → bB,B → ǫ})
Ce tip are gramatica G ?Descrieti limbajul L(G)
LFAC (2012-13) Curs 1 24 / 39
![Page 42: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/42.jpg)
Ierarhia lui Chomsky
Ierarhia lui Chomsky
Un limbaj L este de tipul j daca exista o gramatica G de tipul j
astfel ıncat L(G) = L, unde j ∈ {0,1,2,3}.
Vom nota cu Lj clasa limbajelor de tipul j , unde j ∈ {0,1,2,3}.
Ierarhia lui Chomsky: L3 ⊂ L2 ⊂ L1 ⊂ L0
Incluziunile sunt stricte:
orice limbaj de tip j + 1 este si de tip j ∈ {0, 1, 2}exista limbaje de tip j care nu sunt de tip j + 1, j ∈ {0, 1, 2}
LFAC (2012-13) Curs 1 25 / 39
![Page 43: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/43.jpg)
Ierarhia lui Chomsky
Proprietati
Fiecare din familiile Lj cu 0 ≤ j ≤ 3 contine toate limbajele finite.
Fiecare din familiile Lj cu 0 ≤ j ≤ 3 este ınchisa la operatia de
reuniune:
L1,L2 ∈ Lj =⇒ L1 ∪ L2 ∈ Lj ,
∀j : 0 ≤ j ≤ 3
LFAC (2012-13) Curs 1 26 / 39
![Page 44: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/44.jpg)
Gramatici si limbaje regulate
Curs 1
1 Limbaje formale
2 Gramatici
3 Ierarhia lui Chomsky
4 Gramatici si limbaje regulate
Proprietati de ınchidere
Lema Bar-Hillel
LFAC (2012-13) Curs 1 27 / 39
![Page 45: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/45.jpg)
Gramatici si limbaje regulate
Gramatici de tip 3
O gramatica G = (N,T ,S,P) este de tip 3, daca regulile sale sunt
de forma A → u sau A → uB unde A,B ∈ N si u ∈ T ∗.
Exemplu: G = ({D}, {0,1, . . . ,9},D,P)
Unde P este:
D → 0D|1D|2D| . . . |9D
D → 0|1| . . . |9
LFAC (2012-13) Curs 1 28 / 39
![Page 46: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/46.jpg)
Gramatici si limbaje regulate
Exemple
Fie gramatica G = ({A,B}, {l ,d},A,P)
unde P este:
A → lB, B → lB|dB|ǫ (l = litera, d = cifra)
LFAC (2012-13) Curs 1 29 / 39
![Page 47: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/47.jpg)
Gramatici si limbaje regulate
Exemple
Fie gramatica G = ({A,B}, {l ,d},A,P)
unde P este:
A → lB, B → lB|dB|ǫ (l = litera, d = cifra)
L(G): multimea identificatorilor
LFAC (2012-13) Curs 1 29 / 39
![Page 48: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/48.jpg)
Gramatici si limbaje regulate
Exemple
Fie gramatica G = ({A,B}, {l ,d},A,P)
unde P este:
A → lB, B → lB|dB|ǫ (l = litera, d = cifra)
L(G): multimea identificatorilor
Fie gramatica G = ({A,B}, {+,−,d},A,P)
unde P este:
A → +B| − B|dB|d , B → dB|d (d = cifra)
LFAC (2012-13) Curs 1 29 / 39
![Page 49: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/49.jpg)
Gramatici si limbaje regulate
Exemple
Fie gramatica G = ({A,B}, {l ,d},A,P)
unde P este:
A → lB, B → lB|dB|ǫ (l = litera, d = cifra)
L(G): multimea identificatorilor
Fie gramatica G = ({A,B}, {+,−,d},A,P)
unde P este:
A → +B| − B|dB|d , B → dB|d (d = cifra)
L(G): multimea constantelor ıntregi
LFAC (2012-13) Curs 1 29 / 39
![Page 50: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/50.jpg)
Gramatici si limbaje regulate
Forma normala
O gramatica de tip 3 este ın forma normala daca regulile sale sunt
de forma A → a sau A → aB, unde a ∈ T , si eventual S → ǫ ( caz
ın care S nu apare ın dreapta regulilor).
Pentru orice gramtica de tip 3 exista o gramatica echivalenta ın
forma normala
Se poate arata ca pot fi eliminate regulile de forma A → B (redenumiri) si cele de
forma A → ǫ (reguli de stergere), cu exceptia, eventual a regulii S → ǫ
Orice regula de forma A → a1a2 . . . an se ınlocuieste cu A → a1B1, B1 → a2B2,...,
Bn−2 → an−1Bn−1, Bn−1 → an n > 1, B1, . . . ,Bn−1 fiind neterminali noi
Orice regula de forma A → a1a2 . . . anB se ınlocuieste cu A → a1B1,
B1 → a2B2,...,Bn−2 → an−1Bn−1, Bn−1 → anB, n > 1, B1, . . . ,Bn−1 fiind
neterminali noi
Transformarile care se fac nu modifica limbajul generat de gramatica
LFAC (2012-13) Curs 1 30 / 39
![Page 51: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/51.jpg)
Gramatici si limbaje regulate Proprietati de ınchidere
Fie L,L1,L2 limbaje regulate: exista gramaticile G,G1,G2 astfel ca
L = L(G),L1 = L(G1) si L2 = L(G2).
Atunci, urmatoarele limbaje sunt de asemenea regulate:
1 L1 ∪ L2
2 L1 · L2
3 L∗
4 LR
5 L1 ∩ L2
6 L1 \ L2
LFAC (2012-13) Curs 1 31 / 39
![Page 52: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/52.jpg)
Gramatici si limbaje regulate Proprietati de ınchidere
Inchiderea la reuniune
Fie G1 = (N1,T1,S1,P1) si G2 = (N2,T2,S2,P2) cu L1 = L(G1),
L2 = L(G2).
Presupunem N1 ∩ N2 = ∅ si gramaticile ın forma normala
Inchiderea 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 (2012-13) Curs 1 32 / 39
![Page 53: Lfa](https://reader033.vdocuments.site/reader033/viewer/2022061507/5572129b497959fc0b9094ac/html5/thumbnails/53.jpg)
Gramatici si limbaje regulate Proprietati de ınchidere
Inchiderea la produs
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 A → a din P1
toate regulile din P2
genereaza limbajul L1L2
LFAC (2012-13) Curs 1 33 / 39