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