Sunteți pe pagina 1din 53

Limbaje Formale, Automate si Compilatoare

Curs 1

LFAC (2012-13)

Curs 1

1 / 39

Limbaje Formale, Automate si Compilatoare


Curs: O.Captarencu: otto@infoiasi.ro, http://www.infoiasi.ro/otto/lfac.html Gh. Grigoras: grigoras@info.uaic.ro Laboratoare: O.Captarencu A. Moruz: mmoruz@info.uaic.ro Pagina cursului: http://portal.info.uaic.ro/curs/lfac/
LFAC (2012-13) Curs 1 2 / 39

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 nal se obtine astfel: P = 30% SA + 30% LA + 40% FE

Conditie obligatorie de promovare: SA 5, LA 5 Nota nala se va stabili conform criteriilor ECTS (Nota 5 pentru promovare)
LFAC (2012-13) Curs 1 3 / 39

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

Tematica cursului II
Limbaje de programare: proiectare si implementare Analiza lexicala Analiza sintactica Traducere n cod intermediar

LFAC (2012-13)

Curs 1

5 / 39

Tematica seminarului

Exemple de limbaje si gramatici Automate nite 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

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

Bibliograe
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

Curs 1

Limbaje formale Gramatici Ierarhia lui Chomsky Gramatici si limbaje regulate Proprietati de nchidere Lema Bar-Hillel

LFAC (2012-13)

Curs 1

9 / 39

Limbaje formale

Curs 1

Limbaje formale Gramatici Ierarhia lui Chomsky Gramatici si limbaje regulate Proprietati de nchidere Lema Bar-Hillel

LFAC (2012-13)

Curs 1

10 / 39

Limbaje formale

Alfabet, cuvant, multime de cuvinte


Alfabet: V o multime nita (elemente lui V = simboluri )
Simbolurile le vom nota a, b, etc.

LFAC (2012-13)

Curs 1

11 / 39

Limbaje formale

Alfabet, cuvant, multime de cuvinte


Alfabet: V o multime nita (elemente lui V = simboluri )
Simbolurile le vom nota a, b, etc.

Cuvant: sir nit de simboluri


cuvintele le vom nota u, v , w... cuvantul nul notat sau

LFAC (2012-13)

Curs 1

11 / 39

Limbaje formale

Alfabet, cuvant, multime de cuvinte


Alfabet: V o multime nita (elemente lui V = simboluri )
Simbolurile le vom nota a, b, etc.

Cuvant: sir nit 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

Limbaje formale

Alfabet, cuvant, multime de cuvinte


Alfabet: V o multime nita (elemente lui V = simboluri )
Simbolurile le vom nota a, b, etc.

Cuvant: sir nit 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

Limbaje formale

Alfabet, cuvant, multime de cuvinte


Alfabet: V o multime nita (elemente lui V = simboluri )
Simbolurile le vom nota a, b, etc.

Cuvant: sir nit 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

Limbaje formale

Concatenarea a doua cuvinte x, y: cuvantul x y obtinut din simbolurile lui x, n ordinea n care apar, urmate de cele ale lui y de 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

Limbaje formale

Concatenarea a doua cuvinte x, y: cuvantul x y obtinut din simbolurile lui x, n ordinea n care apar, urmate de cele ale lui y de 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

Limbaje formale

Concatenarea a doua cuvinte x, y: cuvantul x y obtinut din simbolurile lui x, n ordinea n care apar, urmate de cele ale lui y de 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

Limbaje formale

Concatenarea a doua cuvinte x, y: cuvantul x y obtinut din simbolurile lui x, n ordinea n care apar, urmate de cele ale lui y de 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 prex al cuvantului u daca w V , u = vw ; + , atunci v este un prex propriu daca w V

LFAC (2012-13)

Curs 1

12 / 39

Limbaje formale

Concatenarea a doua cuvinte x, y: cuvantul x y obtinut din simbolurile lui x, n ordinea n care apar, urmate de cele ale lui y de 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 prex al cuvantului u daca w V , u = vw ; + , atunci v este un prex propriu daca w V Cuvantul v este un sux al cuvantului u daca w V , u = wv; + , atunci v este un sux propriu daca w V

LFAC (2012-13)

Curs 1

12 / 39

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 nita. O descriere poate :

LFAC (2012-13)

Curs 1

13 / 39

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 nita. O descriere poate :
- neformala (n limbaj natural):
multimea cuvintelor peste alfabetul {0, 1} care contin un numar par de 0 . L = {x V + : |x|este par}. {an b n |n N}. {w {0, 1} |w se termina in 00}.

LFAC (2012-13)

Curs 1

13 / 39

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 nita. O descriere poate :
- neformala (n limbaj natural):
multimea cuvintelor peste alfabetul {0, 1} care contin un numar par de 0 . L = {x V + : |x|este par}. {an b n |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 nit, automat pushdown, etc.)
LFAC (2012-13) Curs 1 13 / 39

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 =
L = {} Ln+1 = Ln L
0

n0 L

n,

unde:

Pref(L) = {u|uv L} LR = {w R |w L}; daca w = a1 a2 . . . an , atunci w R = an . . . a2 a1

LFAC (2012-13)

Curs 1

14 / 39

Gramatici

Curs 1

Limbaje formale Gramatici Ierarhia lui Chomsky Gramatici si limbaje regulate Proprietati de nchidere Lema Bar-Hillel

LFAC (2012-13)

Curs 1

15 / 39

Gramatici

Gramatici

Denitie 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 3

S N este simbolul de start (neterminalul initial) P este o multine nita 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

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

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 + u . G si notam u1 n

LFAC (2012-13)

Curs 1

17 / 39

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 + u . G si notam u1 n Scriem u v daca u + v sau u = v.

LFAC (2012-13)

Curs 1

17 / 39

Gramatici

Limbaj generat
Denitie 2 Limbajul generat de gramatica G este: L(G) = {w T |S + w }

LFAC (2012-13)

Curs 1

18 / 39

Gramatici

Limbaj generat
Denitie 2 Limbajul generat de gramatica G este: L(G) = {w T |S + w }

Denitie 3 Doua gramatici G1 si G2 sunt echivalente daca L(G1 ) = L(G2 )

LFAC (2012-13)

Curs 1

18 / 39

Gramatici

Exemplu
L = {an b n |n 1} Denitia 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

Gramatici

Exemplu
L = {an b n |n 1} Denitia inductiva:
- ab L - Daca X L, atunci aXb L - Nici un alt cuvant nu face parte din L

Denitia generativa:
- G = ({X }, {a, b}, X , P), unde P = {X aXb, X ab} - Derivarea cuvantului a3 b3 : X aXb aaXbb aaabbb

LFAC (2012-13)

Curs 1

19 / 39

Gramatici

Exemplu

L = {an b n c n |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 a3 b 3 c 3 : S (2) aSXc (2) aaSXcXc (1) aaabcX cXc (3) aaabX ccXc (4) aaabbccX c (3) aaabbcXcc (3) aaabbX ccc (4) aaabbbccc = a3 b 3 c 3

LFAC (2012-13)

Curs 1

20 / 39

Ierarhia lui Chomsky

Curs 1

Limbaje formale Gramatici Ierarhia lui Chomsky Gramatici si limbaje regulate Proprietati de nchidere Lema Bar-Hillel

LFAC (2012-13)

Curs 1

21 / 39

Ierarhia lui Chomsky

Clasicarea gramaticilor

Gramatici de tip 0 (generale) Nu exista restrictii asupra regulilor

LFAC (2012-13)

Curs 1

22 / 39

Ierarhia lui Chomsky

Clasicarea gramaticilor

Gramatici de tip 0 (generale) Nu exista restrictii asupra regulilor

Gramatici de tip 1 (dependente de context) reguli de forma pxq pyq unde x N, y = , p, q (N T ) S , caz n care S nu apare n dreapta productiilor

LFAC (2012-13)

Curs 1

22 / 39

Ierarhia lui Chomsky

Clasicarea gramaticilor

Gramatici de tip 0 (generale) Nu exista restrictii asupra regulilor

Gramatici de tip 1 (dependente de context) reguli de forma pxq pyq unde x N, y = , p, q (N T ) S , caz n care S nu apare n dreapta productiilor

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

Ierarhia lui Chomsky

Clasicarea gramaticilor

Gramatici de tip 0 (generale) Nu exista restrictii asupra regulilor

Gramatici de tip 1 (dependente de context) reguli de forma pxq pyq unde x N, y = , p, q (N T ) S , caz n care S nu apare n dreapta productiilor

Gramatici de tip 2 (independente de context) reguli de forma A y unde A N si y (N T )

Gramatici de tip 3 (regulate) A u sau A uB unde A, B N si u T .

LFAC (2012-13)

Curs 1

22 / 39

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

Ierarhia lui Chomsky

Exemple
Fie G = ({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 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

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

Ierarhia lui Chomsky

Proprietati
Fiecare din familiile Lj cu 0 j 3 contine toate limbajele nite. 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

Gramatici si limbaje regulate

Curs 1

Limbaje formale Gramatici Ierarhia lui Chomsky Gramatici si limbaje regulate Proprietati de nchidere Lema Bar-Hillel

LFAC (2012-13)

Curs 1

27 / 39

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

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

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 identicatorilor

LFAC (2012-13)

Curs 1

29 / 39

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 identicatorilor 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

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 identicatorilor 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

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 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 a1 a2 . . . an se nlocuieste cu A a1 B1 , B1 a2 B2 ,..., Bn2 an1 Bn1 , Bn1 an n > 1, B1, . . . , Bn1 ind neterminali noi Orice regula de forma A a1 a2 . . . an B se nlocuieste cu A a1 B1 , B1 a2 B2 ,...,Bn2 an1 Bn1 , Bn1 an B, n > 1, B1 , . . . , Bn1 ind neterminali noi Transformarile care se fac nu modica limbajul generat de gramatica
LFAC (2012-13) Curs 1 30 / 39

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 2 3 4 5 6

L1 L2 L1 L2 L LR L1 L2 L1 \ L2

LFAC (2012-13)

Curs 1

31 / 39

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 nchiderea la reuniune: se arata ca L1 L2 L3 : I 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

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 L1 L2

LFAC (2012-13)

Curs 1

33 / 39