Documente Academic
Documente Profesional
Documente Cultură
C2 IerChomsky 2t PDF
C2 IerChomsky 2t PDF
1
LFA: C2 Ierarhia Chomsky
Definitie 1
Alfabet = = orice multime finita, nevida
Elementele = simboluri
Exemple 2
bool = {0, 1},
latin = {a,b,c,,z},
logic = {0,1,(,), ,,,p, q, r, } sau
{ 0,1,(,), ,,,x }!!
2
LFA: C2 Ierarhia Chomsky
Definitie 3
Cuvant peste un alfabet = orice secventa finita de
simboluri din
Cuvantul vid = = singurul cuvant care consta din 0 simboluri
* = multimea tuturor cuvintelor peste alfabetul
+ = * - {}
Observatie 4
Nu orice cuvant peste un alfabet reprezinta o notiune:
latin*={,a,,aa,ab,ac,,aaa,aab,,caa,cab,cal,..,cla,,
lac,,lca,,cheval,horse, }.
3
LFA: C2 Ierarhia Chomsky
Definitie 5
Lungimea unui cuvant w peste un alfabet = |w| =
= numarul de simboluri din w
|| = 0
Notatie 6
#a(w) = numarul de aparitii ale simb. a in cuvantul w*
Exemplu 7
#t(complexitate)= 2
Observatie 8
, w*:
| w | #a ( w).
a
4
LFA: C2 Ierarhia Chomsky
Definitie 9
Fie un alfabet = {a1, a2, ,ak}; se numeste functia lui Parikh, functia
: *N K, () = (||a1, ||a2, , ||ak)
Exemplu 10
Fie = {a, b, ,z}; atunci : *N K,
(Constantinopol) = (1,0,1,0,0,0,0,0,1,0,0,1,0,3,3,1,0,1,2,0,0,0,0,0)
Definitie 11
Fie un alfabet ; atunci, pentru orice nN:
n={ * / ||=n } i |n|= 2||
Exemplu 12
{0,1}3 = {000, 001, 010, 011,100,101,110,111} => 8 cuvinte
{0,1}5 = {00000, 00001, 00010, 00011,00100,00101,00110,,11111}.
5
LFA: C2 Ierarhia Chomsky
Exemple 18
w = intrucatva =>
prefixw{, I, in, int, intr, intru, intruc, intruca, intrucatv, intrucatva}
sufixw{, a, va, tva, atva, catva, ucatva, rucatva, trucatva, ntrucatva,
intrucatva,}
subcuvantw{, i, n, t, r, u, c, a, v, in, nt, tr, , intru, , catva, ,
intrucatva}
7
LFA: C2 Ierarhia Chomsky
Definitia 19 similara ordinii cuvintelor in dictionar;
Fie un alfabet={s1,s2,,sm}, m1 si exceptie: cuvintele scurte preced
cuvintele lungi
9
LFA: C2 Ierarhia Chomsky
Definitie 22
Fie un alfabet ;
se numeste limbaj peste , orice submultime L*
se numeste limbaj -liber peste , orice submultime L+
Exemple 23
1. Fie V = {a,b} =>
, {}, {a,b}, {a,b}*, {ab,bba,b10a20,abbaba}, {anb2n|nN},
{aw|w{a,b}*}, {aw|w{b}*}
Notatie 24
Multimea tuturor limbajelor peste alfabetul :
L = { L* | L =limbaj }.
10
LFA: C2 Ierarhia Chomsky
Definitie 25
Fie un alfabet ={s1,s2,,sm}, m1 si
*={x1,x2,,xn,} enumerarea cuvintelor peste , indusa de ordinea
canonica;
atunci, L* ! o secventa binara infinita, notata L, definita astfel:
cel de-al i-lea bit din L este: 1, daca xiL,
0, daca xiL.
L se numeste secventa caracteristica a limbajului L peste
={s1,s2,,sm}.
11
LFA: C2 Ierarhia Chomsky
L = 01010110110111000101001001011110.
Exemple 26 B = multimea secventelor binare infinite
1. Fie = {a,b} i L = {a, ab, abb}
=> *= {,a,b,aa,ab,ba,bb,aaa,aab,aba,abb,baa,..., aaaa, aaab, aaba,...}
L = { , a, , , ab, , , , , , abb }
=> L= 0 1 0 0 1 0 0 0 0 0 1 0 0 0 ,...= 0100100000100....
2. Fie L = {w *| y*: w=aay}
L = { , , , aa, , , , aaa,aab, , , ,..., aaaa, aaab, aaba,.. }
=> L= 0 0 0 1 0 0 0 1 1 0 0 0 ,..., 1 1 1..=
= 000100011000.111....
3. Fie L = {w *| x*:w=bx}
L = { , ,b, , ,ba,bb, , , , ,baa,bab,bba,bbb,...}
=> L= 0 010 0 1 1 0000 1 1 1 1 .. = 001001100001111....
4. Fie L = {w *| w= palindrom} =
= {,a,b,aa,bb,aaa,aba,bab,bbb,aaaa,.}
=> L= 111100110100
12
LFA: C2 Ierarhia Chomsky
Teorema 27
Multimea L = { L* | L =limbaj } este nenumarabila
Demonstratie
(i) multimea B a secventelor binare infinite este nenumarabila
Folosim metoda diagonalizarii i a p.p.a. n f(n)=bn
2 01000
a na cifra binara din b este:
0, daca a n-a cifra binara din f(n) este 1, 3 11000
5 10100
=> B este nenumarabila. 13
LFA: C2 Ierarhia Chomsky
14
LFA: C2 Ierarhia Chomsky
Definitii 28: Operatii cu limbaje
Fie limbajul L ; definim i notam prin:
mi(L)=LR= {mi(v)|v L}
reversul limbajului L in raport cu ;
LC= {v *|v L}
complementul limbajului L in raport cu ;
Fie limbajele L1 1* i L2 2* (1 i 2 oarecare); definim i notam prin:
L1L2= {v (1 2)*|v L1 sau v L2}
reuniunea limbajelor L1 i L2;
L1L2= {v (1 2)*| v L1 i v L2}
intersectia limbajelor L1 i L2;
L1 - L2= {v 1*|v L1 i v L2}
diferenta limbajelor L1 i L2.
15
LFA: C2 Ierarhia Chomsky
Definitii 28: Operatii cu limbaje (cont.)
Fie doua alfabete 1 si 2 si doua limbaje L11* si L22* ; definim si notam :
L1L2=L1 L2={vw(12 )*|vL1 si wL2}
limbajul obtinut prin concatenarea (produsul) acestora;
L* U Ln , unde L0 si Ln1 L Ln , n N
n0
inchiderea reflexiva i tranzitiva (Kleene) a limbajului L;
L U Ln , obs. : L* L
U
n 1
inchiderea tranzitiva a limbajului L
Fie alfabetul si doua limbaje L1, L2 *; definim si notam :
L1 / L2 = {w *| v L2: wv L1}
ctul la dreapta al limbajului L1 prin limbajul L2 ,
L1 \ L2 = {w *| v L2: vw L1}
16
ctul la stanga al limbajului L1 prin limbajul L2 .
LFA: C2 Ierarhia Chomsky
Definitii 28: Operatii cu limbaje (cont.)
(i) Fie doua alfabete si ; se numeste substitutie o functie
s : P (*)
Extindem aceasta aplicatie la * prin
s() = {},
s(a) = s(a)s(), a, *
Obs. aceasta extensie este canonica :
daca w = *, atunci s(w) = s()s(), s(), s() *
(ii) Fie un limbaj L * ; atunci definim prin:
s( L) U s( )
L
limbajul obtinut din L prin substitutie canonica
Ex.: fie s:{a,b}{0,1,x}* s(a)= 0x, s(b)=x11
daca L={a,b, aa, ab, ba, bb} =>
s(L) = {0x, x1, 0x0x, 0xx11, x110x, x11x11}. 17
LFA: C2 Ierarhia Chomsky
18
LFA: C2 Ierarhia Chomsky
Definitii 28: Operatii cu limbaje (cont.)
Ex.: fie s-1 : {0,1,x}* P {a,b}* s-1(0x)=a, s-1(x11)=b
unde s : {a,b}{0,1,x}* s(a)= 0x, s(b)=x11
daca L = {0x, x11, 0x0x, 0xx11, x110x, 0x0x0x}
=> s-1(L) = {a, b, aa, ab, ba, aaa};
Observatie 29
1. L = L= L, L
2. L {} = {} L= L, L
3. L = {} L= L, L
4. L = , L
5. L { } = { } , L.
19
LFA: C2 Ierarhia Chomsky
21
LFA: C2 Ierarhia Chomsky
Gramaticile
initial: notiune introdusa de lingvisti pentru studierea limbajelor
naturale (Noam CHOMSKY, 1950):
caracterizarea frazelor corecte dintr-un limbaj,
o definitie structurala a frazelor corecte dintr-un limbaj;
Definitie 30
Se numeste gramatica un sistem G= (VT,VN,S,P) unde:
VT = multime finita, nevida (simboluri terminale),
VN = multime finita, nevida (simboluri neterminale=variabile):
VT VN = ; VT VN = V
(vocabularul terminalelor i neterminalelor gramaticii!);
S VN;= simbolul de start (axioma gramaticii),
P = multime finita, nevida (productii):
P (VN VT )* VN (VN VT )* x (VN VT )*
OBS. : ( (,)P : se inlocuieste cu )
P = { | V*.VN.V*; V*} . 23
LFA: C2 Ierarhia Chomsky
Exemple 31: G= (VT,VN,S,P)
1. G1=({0,1,2,,9}, {S,C}, S, {SCC, C0, C1, C2, C3, C4, C5,
C6, C7, C8, C9, C } ) =>
SCC0C01
SCC7C70
SCC5C52 etc.
=> L1={nN| n<100};
2. G2=({0,1,2,,9}, {S,C,B}, S, {SCB, BCB, BC, C0|1|...|9|} )=>
SCB CCB ..... CnB Cn+1 2Cn 24Cn-1 .... 2409194...7
=> L2=N;
3. G3=({I,V,X,L,C,D,M}, {S,A,B}, S, {SAB, BAB, BA, AI|V|X|L|C|D|M|})
SAB AAB AAAB AAAAMMXV
=> L3 = multimea numerelor naturale in grafia latina (fara respectarea
regulilor de tipul: 4 se fomeaza ca IV i nu ca IIII; 100 este C i nu LL).
24
LFA: C2 Ierarhia Chomsky
G2=( {0,1,2,,9}, {S,C,B}, S,
{SCB, BCB, BC, C0|1|...|9|} )
Observatie 33
SCBCCBCCCBCCCCCCC9CC090C090509
Inchiderea tranzitiva a
Notatie: * derivarii directe = Derivare
Definitii 34
Se numeste substitutie = derivare directa = aplicarea unei productii =
daca P i , V*, atunci
Se numeste derivare = aplicarea consecutiva a mai multor productii =
daca 1 2, 23, , n-1n atunci 1*n .
26
LFA: C2 Ierarhia Chomsky
Definitie 35
Se numeste limbaj generat de o gramatica G=(VT,VN,S,P) multimea
L(G) = {VT* | S * };
Observatie 36
Pentru ca o secventa de simboluri sa faca parte limbajul L generat de
gramatica G, ea trebuie sa indeplineasca 2 conditii:
1. sa fie formata numai din simboluri terminale i care sa provina din
vocabularul de terminale VT al gramaticii G,
2. sa se obtina printr-o derivare care pleacadin simbolul de start S al G;
Definitie 37
Fie G1=(VT,V1N,S,P1) , G2=(VT,V2N,S,P2) si L1=L(G1), L2=L(G2),
Limbajele L1 i L2 se numesc echivalente ddaca
L(G1) L(G2). 27
LFA: C2 Ierarhia Chomsky
Observatie 38: Gramatica unui limbaj finit / infinit !!
32
LFA: C2 Ierarhia Chomsky
Definitie 40
Doua gramatici G1 i G2 se numesc echivalente daca genereaza
acelasi limbaj:
G1 G2 L(G1) = L(G2) 33
LFA: C2 Ierarhia Chomsky
Definitie 41
Gramatica de tip 0: productiile nu suporta nicio restrictie
Tipul 0:
unde: (VNVT )*V N(VNVT )* , (VNVT )*
Ex. ant.: G5= ({0}, {S,L,Z,R},S,P), unde:
P={SLZL , LZ LR, RZ ZZR, RL ZZL, Z 0 L }
S 1 LZL 2 LRL 4 LZZL 2 LRZL 3 LZZRL 4 LZZZZL
6 0000L6 0000
L5 = { 0(2^n)| nN }.
34
LFA: C2 Ierarhia Chomsky
Definitie 42
Gramatica de tip 1 (dependente de context):
Tipul 1: A
unde: ,, (VN VT )*, AVN ,
obs.: daca S P atunci S nu poate aparea n m. dr. al nici unei
productii din P,
, formeaza contextul in care A poate fi inlocuit cu ;
Ex. : G8= ({0}, {S,B},S,P), unde:
P={SaSBc, Sabc, cBBc, bBbb}
S 1 aSBc 1 aaSBcBc 1 a3SBcBcBc 2 a4bcBcBcBc 3
a4bBccBcBc3 a4bBcBccBc 3 a4bBcBcBcc 3 a4bBBccBcc 3
a4bBBcBccc 3 a4bBBBcccc 4 a4bbBBc4 4 a4bbbBc44
a4bbbbc4
S 1. anS(Bc)n 2 an+1bc(Bc)n 3. an+1bBncn+1 4. an+1bn+1cn+1
L5 = { anbncn| n0 }. 35
LFA: C2 Ierarhia Chomsky
Teorema 39
36
LFA: C2 Ierarhia Chomsky
Definitie 44
Gramatica de tip 2 (independente de context):
Tipul 2: A
unde: AVN , (VN VT )*
obs. neterminalul A poate fi inlocuit cu secventa in orice context
ar aparea;
f importante:
putere generativa suficienta: pot descrie sintaxa oricarui
limbaj de programare,
destul de simple: permit proiectarea unor algoritmi de
parsare eficienti care pentru orice secvbenta data - sa
determine daca i cum poate fi generata de gramatica
respectiva;
Ex. ant.: G3= ({a,b}, {S,C},S,{SaSb , S } ):
S 1 aSb 1 aaSbb 1 aaaSbbb 2 aaabbb
L3 = { anbn| nN } . 37
LFA: C2 Ierarhia Chomsky
39
LFA: C2 Ierarhia Chomsky
Definitie 45
Gramatica de tip 3 (regulata):
Tipul 2: AaB sau ABa
Aa
unde: A,BVN , aVT
obs.: daca S P atunci S nu poate aparea n m. dr. al nici unei
productii din P,
productiile de tipul AaB ( ABa ) definesc o gramatica
regulata la dreapta (stanga); ele sunt echivalente,
f importante: descriu structura lexicala a limbajelor de
programare
Ex. ant.: G6= ({0,1}, {S,A} ,S,{S1A, A0A, A1A, A } ) , unde:
S 1 1A 2 10A 2 100A 3 1001A 2 10010A 3 100101A
3 1001011A 4 1001011
L6 = {1} . {0,1}* este limbajul reprezentarilor binare ale nr naturale
40
LFA: C2 Ierarhia Chomsky
Ierarhia lui Chomsky
Teorema 46
Notam cu:
L0 - multimea limbajelor generate de gramatici de tip 0
L1 - multimea limbajelor generate de gramatici de tip 1
L2 - multimea limbajelor generate de gramatici de tip 2
L3 - multimea limbajalor generate de gramatici de tip 3
Atunci:
L0 L1 L2 L3
Incluziunile nestricte: forma productiilor;
Incluziunile stricte: contraexemple.
41
LFA: C2 Ierarhia Chomsky
Definitii 47
Gramatica monotona: , || ||,
unde: , (VN VT )*
Gramatica lineara: AwBv,
unde: AVN,BVN {}, w,vVT
Gramatica -libera: o gramatica in care nu exista reguli de stergere
(productii de forma A )
Observatii 48
In gramaticile de tip 0 i 1 se admit productii de forma A cu
conditia ca A sa nu apara in m.dr. al niciunei productii;
Existenta/inexistenta regulilor de stergere poate modifica in mod
semnificativ puterea generativa a gramaticii.
42
LFA: C2 Ierarhia Chomsky
43