Documente Academic
Documente Profesional
Documente Cultură
Curs 1
LFAC (2013-14)
Curs 1
1 / 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
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
LFAC (2013-14)
Curs 1
11 / 34
Limbaje formale
LFAC (2013-14)
Curs 1
11 / 34
Limbaje formale
LFAC (2013-14)
Curs 1
11 / 34
Limbaje formale
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
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, ...}
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
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
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:
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
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 }
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
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
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
Clasicarea gramaticilor
LFAC (2013-14)
Curs 1
22 / 34
Clasicarea gramaticilor
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
Clasicarea gramaticilor
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
Clasicarea gramaticilor
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
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
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)
LFAC (2013-14)
Curs 1
24 / 34
LFAC (2013-14)
Curs 1
25 / 34
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
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 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
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
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
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
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
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
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
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
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
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