Sunteți pe pagina 1din 54

Limbaje Formale, Automate s i Compilatoare

Curs 1

LFAC (2013-14)

Curs 1

1 / 34

Limbaje Formale, Automate s i 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 clita@bitdefender.com C. Lit a: Pagina cursului: http://www.infoiasi.ro/otto/lfac.html
LFAC (2013-14) Curs 1 2 / 34

Evaluare
7 seminarii, 6 laboratoare; AS = activitatea la seminar (max 10 puncte); AL = activitatea la laborator (max 10 puncte); am anile T1,T2 teste scrise n sapt 8, respectiv n sesiune; Punctajul nal se obt ine astfel: P = 3 AS + 3 AL + 2 T 1 + 2 T 2

Condit ii miminale de promovare: AS 5, AL 5; Punctaj minim pentru promovare: P 50; se va stabili conform criteriilor ECTS; Nota nala
LFAC (2013-14) Curs 1 3 / 34

Evaluare

AS = activitatea la seminar (max 10 puncte)


8 puncte din 2 teste scrise 2 puncte activitatea la seminar

AL = activitatea la laborator (max 10 puncte)


1 test scris, 2 teme laborator (note de la 0 la 10) AL = media celor 3 note

LFAC (2013-14)

Curs 1

4 / 34

Tematica cursului I
Limbaje s i gramatici Limbaje regulate; gramatici, automate , expresii regulate Limbaje independente de context; gramatici, automate pushdown Mas ini Turing

LFAC (2013-14)

Curs 1

5 / 34

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

LFAC (2013-14)

Curs 1

6 / 34

Tematica seminarului

Exemple de limbaje s i gramatici Automate nite deterministe, nedeterministe, cu epsilon-tranzit ii Exemple Expresii regulate Gramatici independente de context, arbori de derivare, eliminarea simbolurilor inutile, eliminarea regulilor de s tergere, a redenumirilor Chomsky, algoritmul CYK Forma normala Automate pushdown - exemple

LFAC (2013-14)

Curs 1

7 / 34

Tematica laboratorului
folosind instrumente de tip LEX Analiza lexicala folosind instrumente de tip YACC Analiza sintactica Interpretor construit cu LEX si YACC

LFAC (2013-14)

Curs 1

8 / 34

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 (2013-14)

Curs 1

9 / 34

Limbaje formale

Curs 1

Limbaje formale Gramatici Ierarhia lui Chomsky Gramatici s i limbaje de tip 3 (regulate) i de Proprietat nchidere

LFAC (2013-14)

Curs 1

10 / 34

Limbaje formale

Alfabet, cuvant, mult ime de cuvinte


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

LFAC (2013-14)

Curs 1

11 / 34

Limbaje formale

Alfabet, cuvant, mult ime de cuvinte


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

Cuvant: s ir nit de simboluri


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

LFAC (2013-14)

Curs 1

11 / 34

Limbaje formale

Alfabet, cuvant, mult ime de cuvinte


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

Cuvant: s ir nit de simboluri


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

u : numarul simbolurilor sale. Notat Lungimea unui cuvant ie: |u | || = 0

LFAC (2013-14)

Curs 1

11 / 34

Limbaje formale

Alfabet, cuvant, mult ime de cuvinte


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

Cuvant: s ir nit de simboluri


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

u : numarul simbolurilor sale. Notat Lungimea unui cuvant ie: |u | || = 0 V - mult imea tuturor cuvintelor peste alfabetul V , inclusiv
{0, 1} = {, 0, 1, 00, 01, 10, 11, 000, 001, ...}

LFAC (2013-14)

Curs 1

11 / 34

Limbaje formale

Alfabet, cuvant, mult ime de cuvinte


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

Cuvant: s ir nit de simboluri


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

u : numarul simbolurilor sale. Notat Lungimea unui cuvant ie: |u | || = 0 V - mult imea tuturor cuvintelor peste alfabetul V , inclusiv
{0, 1} = {, 0, 1, 00, 01, 10, 11, 000, 001, ...}

V + - mult imea tuturor cuvintelor nenule peste alfabetul V


{0, 1}+ = {0, 1, 00, 01, 10, 11, 000, 001, ...}
LFAC (2013-14) Curs 1 11 / 34

Limbaje formale

cuvinte x , y : cuvantul Concatenarea a doua x y obt inut 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 (2013-14)

Curs 1

12 / 34

Limbaje formale

cuvinte x , y : cuvantul Concatenarea a doua x y obt inut 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 (2013-14)

Curs 1

12 / 34

Limbaje formale

cuvinte x , y : cuvantul Concatenarea a doua x y obt inut 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 numes te monoidul liber generat de V

LFAC (2013-14)

Curs 1

12 / 34

Limbaje formale

cuvinte x , y : cuvantul Concatenarea a doua x y obt inut 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 numes te monoidul liber generat de V w V , u = vw ; Cuvantul v este un prex al cuvantului u daca w V + , atunci v este un prex propriu daca

LFAC (2013-14)

Curs 1

12 / 34

Limbaje formale

cuvinte x , y : cuvantul Concatenarea a doua x y obt inut 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 numes te monoidul liber generat de V w V , u = vw ; Cuvantul v este un prex al cuvantului u daca w V + , atunci v este un prex propriu daca w V , u = wv ; Cuvantul v este un sux al cuvantului u daca w V + , atunci v este un sux propriu daca

LFAC (2013-14)

Curs 1

12 / 34

Limbaje formale

Limbaj formal
Fie V un alfabet. O submult ime L V este un limbaj (formal) L are o descriere nita. peste alfabetul V (sau V-limbaj) daca O descriere poate :

LFAC (2013-14)

Curs 1

13 / 34

Limbaje formale

Limbaj formal
Fie V un alfabet. O submult ime L V este un limbaj (formal) L are o descriere nita. peste alfabetul V (sau V-limbaj) daca O descriere poate :
( - neformala n limbaj natural):
par mult imea cuvintelor peste alfabetul {0, 1} care cont in un numar de 0 . L = {x V + : |x |este par}. {an b n |n N }. in 00}. {w {0, 1} |w se termina

LFAC (2013-14)

Curs 1

13 / 34

Limbaje formale

Limbaj formal
Fie V un alfabet. O submult ime L V este un limbaj (formal) L are o descriere nita. peste alfabetul V (sau V-limbaj) daca O descriere poate :
( - neformala n limbaj natural):
par mult imea cuvintelor peste alfabetul {0, 1} care cont in un numar de 0 . L = {x V + : |x |este par}. {an b n |n N }. in 00}. {w {0, 1} |w se termina

(descriere matematica): - formala


a cuvintelor o descriere inductiva a cuvintelor (gramatica generativa) o descriere generativa o descriere a unei metode de recunoas tere a cuvintelor din limbaj (automat nit, automat pushdown, etc.)
LFAC (2013-14) Curs 1 13 / 34

Limbaje formale

Operat ii cu limbaje
Operat iile cu mult imi (reuniune, interset ie etc) Produs de limbaje: L1 L2 = {uv |u L1 , v L2 } Iterat ia (produsul Kleene): L =
L = {} Ln+1 = Ln L
0

n 0 L

n,

unde:

w = a1 a2 . . . an , atunci w R = an . . . a2 a1 LR = {w R |w L}; daca

LFAC (2013-14)

Curs 1

14 / 34

Gramatici

Curs 1

Limbaje formale Gramatici Ierarhia lui Chomsky Gramatici s i limbaje de tip 3 (regulate) i de Proprietat nchidere

LFAC (2013-14)

Curs 1

15 / 34

Gramatici

Gramatici

Denit ie 1 este un sistem G = (N , T , S , P ), unde: O gramatica


1

alfabete disjuncte Ns i T sunt doua


N este mult imea neterminalilor T este mult imea terminalilor

2 3

S N este simbolul de start (neterminalul init ial) de reguli (product P este o mult ine nita ii) de forma x y, unde x , y (N T ) s i x cont ine cel put in un neterminal.

LFAC (2013-14)

Curs 1

16 / 34

Gramatici

Derivare
s Fie G = (N , T , S , P ) o gramatica i u , v (N T ) . v este derivat direct ( Spunem ca ntr-un pas) de la u prin aplicarea u v , daca p , q (N T ) astfel regulii x y , s i notam ncat u = pxq s i v = pyq

LFAC (2013-14)

Curs 1

17 / 34

Gramatici

Derivare
s Fie G = (N , T , S , P ) o gramatica i u , v (N T ) . v este derivat direct ( Spunem ca ntr-un pas) de la u prin aplicarea u v , daca p , q (N T ) astfel regulii x y , s i notam ncat u = pxq s i v = pyq u1 u2 . . . un , n > 1, spunem ca un este derivat din u1 Daca n + u1 un . Gs i notam

LFAC (2013-14)

Curs 1

17 / 34

Gramatici

Derivare
s Fie G = (N , T , S , P ) o gramatica i u , v (N T ) . v este derivat direct ( Spunem ca ntr-un pas) de la u prin aplicarea u v , daca p , q (N T ) astfel regulii x y , s i notam ncat u = pxq s i v = pyq u1 u2 . . . un , n > 1, spunem ca un este derivat din u1 Daca n + u1 un . Gs i notam u + v sau u = v . Scriem u v daca

LFAC (2013-14)

Curs 1

17 / 34

Gramatici

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

LFAC (2013-14)

Curs 1

18 / 34

Gramatici

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

Denit ie 3 gramatici G1 s L(G1 ) = L(G2 ) Doua i G2 sunt echivalente daca

LFAC (2013-14)

Curs 1

18 / 34

Gramatici

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

LFAC (2013-14)

Curs 1

19 / 34

Gramatici

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

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

LFAC (2013-14)

Curs 1

19 / 34

Gramatici

Exemplu

L = {an b n c n |n 1} din: G = (N , T , S , P ), N = {S , X }, T = {a, b , c }, P consta


(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 (2013-14)

Curs 1

20 / 34

Ierarhia lui Chomsky

Curs 1

Limbaje formale Gramatici Ierarhia lui Chomsky Gramatici s i limbaje de tip 3 (regulate) i de Proprietat nchidere

LFAC (2013-14)

Curs 1

21 / 34

Ierarhia lui Chomsky

Clasicarea gramaticilor

Gramatici de tip 0 (generale) restrict Nu exista ii asupra regulilor

LFAC (2013-14)

Curs 1

22 / 34

Ierarhia lui Chomsky

Clasicarea gramaticilor

Gramatici de tip 0 (generale) restrict Nu exista ii 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 product iilor

LFAC (2013-14)

Curs 1

22 / 34

Ierarhia lui Chomsky

Clasicarea gramaticilor

Gramatici de tip 0 (generale) restrict Nu exista ii 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 product iilor

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

LFAC (2013-14)

Curs 1

22 / 34

Ierarhia lui Chomsky

Clasicarea gramaticilor

Gramatici de tip 0 (generale) restrict Nu exista ii 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 product iilor

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

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

LFAC (2013-14)

Curs 1

22 / 34

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 (2013-14) Curs 1 23 / 34

Ierarhia lui Chomsky

Exemple
Fie G = ({E }, {a, +, , (, )}, E , {E a, E (E + E ), E (E E )}).
Ce tip are gramatica G ? din E pentru cuvintele (a + a) s Construit i derivari i ((a + a) a) Cuvantul (a + a a) poate derivat din E ? Descriet i limbajul L(G)

Fie G = ({A, B }, {a, b }, A, {A aA, A B , B bB , B })


Ce tip are gramatica G ? Descriet i limbajul L(G)

LFAC (2013-14)

Curs 1

24 / 34

Ierarhia lui Chomsky

Ierarhia lui Chomsky


exista o gramatica G de tipul j Un limbaj L este de tipul j daca L(G) = L, unde j {0, 1, 2, 3}. astfel ncat 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 s i de tip j {0, 1, 2} limbaje de tip j care nu sunt de tip j + 1, j {0, 1, 2} exista

LFAC (2013-14)

Curs 1

25 / 34

Ierarhia lui Chomsky

i Proprietat
Fiecare din familiile Lj cu 0 j 3 cont ine toate limbajele nite. la operat Fiecare din familiile Lj cu 0 j 3 este nchisa ia de reuniune: L1 , L2 Lj = L1 L2 Lj , j : 0 j 3

LFAC (2013-14)

Curs 1

26 / 34

Gramatici s i limbaje de tip 3 (regulate)

Curs 1

Limbaje formale Gramatici Ierarhia lui Chomsky Gramatici s i limbaje de tip 3 (regulate) i de Proprietat nchidere

LFAC (2013-14)

Curs 1

27 / 34

Gramatici s i limbaje de tip 3 (regulate)

Gramatici de tip 3
G = (N , T , S , P ) este de tip 3, daca regulile sale sunt O gramatica de forma A u sau A uB unde A, B N s i u T . Exemplu: G = ({D }, {0, 1, . . . , 9}, D , P ) Unde P este: D 0D |1D |2D | . . . |9D D 0|1| . . . |9

LFAC (2013-14)

Curs 1

28 / 34

Gramatici s i limbaje de tip 3 (regulate)

Exemple
Fie gramatica G = ({A, B }, {l , d }, A, P ) unde P este: d = cifra) A lB , B lB |dB | (l = litera,

LFAC (2013-14)

Curs 1

29 / 34

Gramatici s i limbaje de tip 3 (regulate)

Exemple
Fie gramatica G = ({A, B }, {l , d }, A, P ) unde P este: d = cifra) A lB , B lB |dB | (l = litera, L(G): mult imea identicatorilor

LFAC (2013-14)

Curs 1

29 / 34

Gramatici s i limbaje de tip 3 (regulate)

Exemple
Fie gramatica G = ({A, B }, {l , d }, A, P ) unde P este: d = cifra) A lB , B lB |dB | (l = litera, L(G): mult imea identicatorilor Fie gramatica G = ({A, B }, {+, , d }, A, P ) unde P este: A +dB | dB |dB , B dB | (d = cifra)

LFAC (2013-14)

Curs 1

29 / 34

Gramatici s i limbaje de tip 3 (regulate)

Exemple
Fie gramatica G = ({A, B }, {l , d }, A, P ) unde P este: d = cifra) A lB , B lB |dB | (l = litera, L(G): mult imea identicatorilor Fie gramatica G = ({A, B }, {+, , d }, A, P ) unde P este: A +dB | dB |dB , B dB | (d = cifra) L(G): mult imea constantelor ntregi

LFAC (2013-14)

Curs 1

29 / 34

Gramatici s i limbaje de tip 3 (regulate)

Forma normala
de tip 3 este normala daca regulile sale sunt O gramatica n forma de forma A a sau A aB , unde a T , s i eventual S ( caz n care S nu apare n dreapta regulilor). de tip 3 exista o gramatica echivalenta Pentru orice gramtica n normala forma
ca pot eliminate regulile de forma A B (redenumiri) s Se poate arata i cele de tergere), cu except ia, eventual a regulii S forma A (reguli de s de forma A a1 a2 . . . an se Orice regula nlocuies te cu A a1 B1 , B1 a2 B2 ,..., Bn2 an1 Bn1 , Bn1 an n > 1, B 1, . . . , Bn1 ind neterminali noi de forma A a1 a2 . . . an B se Orice regula nlocuies te cu A a1 B1 , B1 a2 B2 ,...,Bn2 an1 Bn1 , Bn1 an B , n > 1, B1 , . . . , Bn1 ind neterminali noi limbajul generat de gramatica Transformarile care se fac nu modica
LFAC (2013-14) Curs 1 30 / 34

Gramatici s i limbaje de tip 3 (regulate)

i de Proprietat nchidere

gramaticile G, G1 , G2 de tip 3 Fie L, L1 , L2 limbaje regulate: exista astfel ca L = L(G), L1 = L(G1 ) s i 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 (2013-14)

Curs 1

31 / 34

Gramatici s i limbaje de tip 3 (regulate)

i de Proprietat nchidere

Inchiderea la reuniune
Fie G1 = (N1 , T1 , S1 , P1 ) s i G2 = (N2 , T2 , S2 , P2 ) gramatici de tip 3 cu L1 = L(G1 ), L2 = L(G2 ). Presupunem N1 N2 = s i gramaticile n forma normala ca L1 L2 L3 : Inchiderea la reuniune: se arata Gramatica G = (N1 N2 {S }, T1 T2 , S , P1 P2 {S S1 , S S2 }) limbajul L1 L2 este de tip 3 s i genereaza

LFAC (2013-14)

Curs 1

32 / 34

Gramatici s i limbaje de tip 3 (regulate)

i de Proprietat nchidere

Inchiderea la produs
din: Gramatica G = (N1 N2 , T1 T2 , S1 , P ) unde P consta regulile de forma A aB din P1 A a din P1 reguli A aS2 pentru orice regula toate regulile din P2 limbajul L1 L2 este de tip 3 s i genereaza

LFAC (2013-14)

Curs 1

33 / 34

Gramatici s i limbaje de tip 3 (regulate)

i de Proprietat nchidere

Inchiderea la iterat ie
L (L = L(G)). Fie G = (N , T , S , P ) de tip 3 care genereaza simbolul de start S nu apare a Presupunem ca n partea dreapta vreunei reguli. din Gramatica G = (N , T , S , P ) unde P consta reguli A aB din P A a din P reguli A aS , pentru orice regula regula S L este de tip 3 s i genereaza

LFAC (2013-14)

Curs 1

34 / 34