Documente Academic
Documente Profesional
Documente Cultură
Curs 1
2014-15
LFAC (2014-15)
Curs 1
1 / 37
Structura cursului
1
Prezentare curs
Limbaje formale
LFAC (2014-15)
Curs 1
2 / 37
Prezentare curs
Structura cursului
1
Prezentare curs
Limbaje formale
LFAC (2014-15)
Curs 1
3 / 37
Prezentare curs
C. Varlan
LFAC (2014-15)
Curs 1
4 / 37
Prezentare curs
Sistem evaluare
7 seminarii, 6 laboratoare;
AS = activitatea la seminar (max 10 puncte);
AL = activitatea la laborator (max 10 puncte);
am
anile
Curs 1
5 / 37
Prezentare curs
Sistem evaluare
AS = activitatea la seminar (max 10 puncte):
media a doua teste scrise
a la 2 puncte bonus pentru activitatea din timpul seminarului
pan
LFAC (2014-15)
Curs 1
6 / 37
Prezentare curs
LFAC (2014-15)
Curs 1
7 / 37
Prezentare curs
LFAC (2014-15)
Curs 1
8 / 37
Prezentare curs
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 (2014-15)
Curs 1
9 / 37
Prezentare curs
Tematica laboratorului
Analiza lexicala folosind instrumente de tip LEX
Analiza sintactica folosind instrumente de tip YACC
Interpretor construit cu LEX si YACC
LFAC (2014-15)
Curs 1
10 / 37
Prezentare curs
Bibliografie (selectii)
1
Curs 1
11 / 37
Limbaje formale
Structura cursului
1
Prezentare curs
Limbaje formale
LFAC (2014-15)
Curs 1
12 / 37
Limbaje formale
Alfabet, cuvant,
multtime de cuvinte
Alfabet: V o multime finita (elementele lui V = simboluri )
LFAC (2014-15)
Curs 1
13 / 37
Limbaje formale
Alfabet, cuvant,
multtime de cuvinte
Alfabet: V o multime finita (elementele lui V = simboluri )
Cuvant:
sir finit de simboluri
cuvantul
nul este notat cu sau .
LFAC (2014-15)
Curs 1
13 / 37
Limbaje formale
Alfabet, cuvant,
multtime de cuvinte
Alfabet: V o multime finita (elementele lui V = simboluri )
Cuvant:
sir finit de simboluri
cuvantul
nul este notat cu sau .
LFAC (2014-15)
Curs 1
13 / 37
Limbaje formale
Alfabet, cuvant,
multtime de cuvinte
Alfabet: V o multime finita (elementele lui V = simboluri )
Cuvant:
sir finit de simboluri
cuvantul
nul este notat cu sau .
LFAC (2014-15)
Curs 1
13 / 37
Limbaje formale
Alfabet, cuvant,
multtime de cuvinte
Alfabet: V o multime finita (elementele lui V = simboluri )
Cuvant:
sir finit de simboluri
cuvantul
nul este notat cu sau .
LFAC (2014-15)
Curs 1
13 / 37
Limbaje formale
Operatii pe cuvinte
LFAC (2014-15)
Curs 1
14 / 37
Limbaje formale
Operatii pe cuvinte
LFAC (2014-15)
Curs 1
14 / 37
Limbaje formale
Operatii pe cuvinte
LFAC (2014-15)
Curs 1
14 / 37
Limbaje formale
Operatii pe cuvinte
Cuvantul
v este un prefix al cuvantului
u daca w V : u = vw;
daca w V + , atunci v este un prefix propriu al lui u.
LFAC (2014-15)
Curs 1
14 / 37
Limbaje formale
Operatii pe cuvinte
Cuvantul
v este un prefix al cuvantului
u daca w V : u = vw;
daca w V + , atunci v este un prefix propriu al lui u.
Cuvantul
v este un sufix al cuvantului
u daca w V : u = wv ;
daca w V + , atunci v este un sufix propriu al lui u.
LFAC (2014-15)
Curs 1
14 / 37
Limbaje formale
(matematica)
O descriere poate fi:
LFAC (2014-15)
Curs 1
15 / 37
Limbaje formale
(matematica)
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 }.
{an bn |n N}.
{w {0, 1} |w se termina in 00}.
LFAC (2014-15)
Curs 1
15 / 37
Limbaje formale
(matematica)
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 }.
{an bn |n N}.
{w {0, 1} |w se termina in 00}.
Curs 1
15 / 37
Limbaje formale
Operatii cu limbaje
Operatiile cu multimi (reuniune, intersectie etc)
Produs de limbaje: L1 L2 = {u v |u L1 , v L2 }
S
Iteratia (produsul Kleene): L = n0 Ln , unde:
L0 = {}
Ln+1 = Ln L
LFAC (2014-15)
Curs 1
16 / 37
Structura cursului
1
Prezentare curs
Limbaje formale
LFAC (2014-15)
Curs 1
17 / 37
Gramatici
Definitie 1
O gramatica este un sistem G = (N, T , S, P), unde:
N si T sunt doua alfabete disjuncte:
N este multimea neterminalilor
T este multimea terminalilor
LFAC (2014-15)
Curs 1
18 / 37
Derivare
Definitie 2
Fie G = (N, T , S, P) o gramatica si u, v (N T ) .
Spunem ca v este derivat direct (ntr-un pas) de la u prin aplicarea
u v , daca p, q (N T ) astfel ncat
regulii x y, si notam
u = pxq si v = pyq.
LFAC (2014-15)
Curs 1
19 / 37
Derivare
Definitie 2
Fie G = (N, T , S, P) o gramatica si u, v (N T ) .
Spunem ca v este derivat direct (ntr-un pas) de la u prin aplicarea
u v , daca p, q (N T ) astfel ncat
regulii x y, si notam
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 (2014-15)
Curs 1
19 / 37
Derivare
Definitie 2
Fie G = (N, T , S, P) o gramatica si u, v (N T ) .
Spunem ca v este derivat direct (ntr-un pas) de la u prin aplicarea
u v , daca p, q (N T ) astfel ncat
regulii x y, si notam
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 (2014-15)
Curs 1
19 / 37
Limbaj generat
Definitie 3
Limbajul generat de gramatica G este:
L(G) = {w T |S + w}
LFAC (2014-15)
Curs 1
20 / 37
Limbaj generat
Definitie 3
Limbajul generat de gramatica G este:
L(G) = {w T |S + w}
Definitie 4
Doua gramatici G1 si G2 sunt echivalente daca L(G1 ) = L(G2 ).
LFAC (2014-15)
Curs 1
20 / 37
Exemplu
L = {an bn |n 1}
Definitia inductiva:
ab L
Daca X L, atunci aXb L
nu face parte din L
Nici un alt cuvant
LFAC (2014-15)
Curs 1
21 / 37
Exemplu
L = {an bn |n 1}
Definitia inductiva:
ab L
Daca X L, atunci aXb L
nu face parte din L
Nici un alt cuvant
Definitia generativa:
G = ({X }, {a, b}, X , P), unde P = {X aXb, X ab}
Derivarea cuvantului
a3 b 3 :
X aXb aaXbb aaabbb
LFAC (2014-15)
Curs 1
21 / 37
Exemplu
L = {an bn c n |n 1}
= (N, T , S, P), N = {S, X }, T = {a, b, c}, P consta din:
1
S abc
S aSXc
cX Xc
bX bb
Derivarea cuvantului
a3 b 3 c 3 :
S (2) aSXc (2) aaSXcXc (1) aaabcX cXc (3)
aaabX ccXc (4) aaabbccX c (3) aaabbcX cc (3)
aaabbX ccc (4) aaabbbccc = a3 b3 c 3
LFAC (2014-15)
Curs 1
22 / 37
Structura cursului
1
Prezentare curs
Limbaje formale
LFAC (2014-15)
Curs 1
23 / 37
LFAC (2014-15)
Curs 1
24 / 37
LFAC (2014-15)
Curs 1
24 / 37
LFAC (2014-15)
Curs 1
24 / 37
LFAC (2014-15)
Curs 1
24 / 37
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 (2014-15)
Curs 1
25 / 37
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) aa)
Cuvantul (a + a a) poate fi derivat din E?
Descrieti limbajul L(G)
LFAC (2014-15)
Curs 1
26 / 37
Clasificarea limbajelor
Un limbaj L este de tipul j daca exista o gramatica G de tipul j
astfel incat L(G) = L, unde j {0, 1, 2, 3}.
Vom nota cu Lj clasa limbajelor de tipul j, unde j {0, 1, 2, 3}.
Din 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 (2014-15)
Curs 1
27 / 37
i
Proprietat
Fiecare din familiile Lj cu 0 j 3 contine toate limbajele finite
Fiecare din familiile Lj cu 0 j 3 este inchisa la operatia de
reuniune:
L1 , L2 Lj = L1 L2 Lj ,
j : 0 j 3
LFAC (2014-15)
Curs 1
28 / 37
Structura cursului
1
Prezentare curs
Limbaje formale
LFAC (2014-15)
Curs 1
29 / 37
Gramatici de tip 3
O gramatica G = (N, T , S, P) este de tip 3 daca regulile sale au
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 (2014-15)
Curs 1
30 / 37
Exemple
Fie gramatica G = ({A, B}, {l, d}, A, P) unde P este:
A lB, B lB|dB| (l = litera, d = cifra)
LFAC (2014-15)
Curs 1
31 / 37
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 +dB| dB|dB, B dB| (d = cifra)
LFAC (2014-15)
Curs 1
31 / 37
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 +dB| dB|dB, B dB| (d = cifra)
L(G): multimea constantelor intregi
LFAC (2014-15)
Curs 1
31 / 37
Forma normala
LFAC (2014-15)
Curs 1
32 / 37
Forma normala
Obtinerea gramaticii in forma normala echivalenta cu o gramatica
de tip 3:
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 a1 a2 . . . an se inlocuieste cu
A a1 B1 , B1 a2 B2 , . . ., Bn2 an1 Bn1 , Bn1 an , n > 1,
B1 , . . . , Bn1 fiind neterminali noi.
Orice regula de forma A a1 a2 . . . an B se inlocuieste cu A a1 B1 ,
B1 a2 B2 , . . ., Bn2 an1 Bn1 , Bn1 an B, n > 1, B1 , . . . , Bn1
fiind neterminali noi
Transformarile care se fac nu modifica limbajul generat de
gramatica
LFAC (2014-15)
Curs 1
33 / 37
Structura cursului
1
Prezentare curs
Limbaje formale
LFAC (2014-15)
Curs 1
34 / 37
LFAC (2014-15)
Curs 1
35 / 37
Inchiderea la reununiune
Fie L, L1 , L2 limbaje de tip 3 (regulate).
Fie G1 = (N1 , T1 , S1 , P1 ) si G2 = (N2 , T2 , S2 , P2 ) gramatici de tip 3 cu
L1 = L(G1 ), L2 = L(G2 ).
Presupunem N1 N2 = si gramaticile in forma normala.
LFAC (2014-15)
Curs 1
36 / 37
LFAC (2014-15)
Curs 1
37 / 37