• Nu S-Au Găsit Rezultate

Tematica cursului (partea I): Limbaje formale si

N/A
N/A
Protected

Academic year: 2022

Share "Tematica cursului (partea I): Limbaje formale si"

Copied!
57
0
0

Text complet

(1)

Curs 1

2020-21

(2)

Limbaje Formale, Automate s¸i Compilatoare - Curs 1

1 Prezentare curs

2 Limbaje formale

3 Mecanisme de generare a limbajelor: gramatici

4 Ierarhia lui Chomsky

5 Limbaje s¸i gramatici de tip 3 (regulate)

(3)

Limbaje Formale, Automate s¸i Compilatoare

Titulari curs:

O. Captarencu: [email protected]

http://profs.info.uaic.ro/˜otto/lfac.html A. Moruz:[email protected]

(4)

Sistem evaluare

7 seminarii, 6 laboratoare;

AS= activitatea la seminar (nota de la 0 la 10);

AL= activitatea la laborator (nota de la 0 la 10);

Test scris in sesiune format din 2 parti:

T1(nota de la 1 la 10) T2(nota de la 1 la 10)

Punctajul final se obt¸ine astfel:

P = 2.5 * AS + 2.5 * AL + 2.5 * T1 + 2.5 * T2

Condit¸ii miminale de promovare:AS≥5, AL≥5, T 1≥5, T 2≥5;

(5)

Sistem evaluare

AS= activitatea la seminar (max 10 puncte):

activitatea in timpul seminarului (rezolvare probleme): max 2 puncte (+ bounsuri)

test scris: max 8 puncte

AL= activitatea la laborator (nota proiect)

(6)

Tematica cursului (partea I): Limbaje formale si

automate

(7)

Tematica cursului (partea I): Limbaje formale si

automate

(8)

Tematica cursului (partea I):Limbaje formale si automate

Limbaje s¸i gramatici

Limbaje regulate; gramatici, automate , expresii regulate

Limbaje independente de context; gramatici, automate pushdown

(9)

Tematica cursului (partea II)

Limbaje de programare: proiectare s¸i implementare Analiza lexical ˘a

Analiza sintactic ˘a

Traducere ˆın cod intermediar

(10)

Bibliografie (select¸ii)

1 A. V. Aho, M. S. Lam, R. Sethi, J. D. Ullman: Compilers:

Principles, Techniques, and Tools. Boston: Addison-Wesley, 2007

2 Gh. Grigoras. Constructia compilatoarelor - Algoritmi fundamentali, Ed. Universitatii Al. I. ”Cuza Iasi”, ISBN 973-703-084-2, 274 pg., 2005

3 Hopcroft, John E.; Motwani, Rajeev; Ullman, Jeffrey D. (2006).

Introduction to Automata Theory, Languages, and Computation (3rd ed.). Addison-Wesley

4 J. Toader - Limbaje formale s¸i automate, Editura Matrix Rom, Bucuresti, 1999.

5 J. Toader, S. Andrei - Limbaje formale s¸i teoria automatelor. Teorie

(11)

Limbaje Formale, Automate s¸i Compilatoare - Curs 1

1 Prezentare curs

2 Limbaje formale

3 Mecanisme de generare a limbajelor: gramatici

4 Ierarhia lui Chomsky

(12)

Alfabet, cuv ˆant, multt¸ime de cuvinte

Alfabet: V o mult¸ime finit ˘a (elementele lui V = simboluri )

(13)

Alfabet, cuv ˆant, multt¸ime de cuvinte

Alfabet: V o mult¸ime finit ˘a (elementele lui V = simboluri ) Cuv ˆant: s¸ir finit de simboluri

cuv ˆantul nul este notat cuǫsauλ.

(14)

Alfabet, cuv ˆant, multt¸ime de cuvinte

Alfabet: V o mult¸ime finit ˘a (elementele lui V = simboluri ) Cuv ˆant: s¸ir finit de simboluri

cuv ˆantul nul este notat cuǫsauλ.

Lungimea unui cuv ˆant u: numarul simbolurilor sale. Notat¸ie: |u|.

|ǫ|=0

(15)

Alfabet, cuv ˆant, multt¸ime de cuvinte

Alfabet: V o mult¸ime finit ˘a (elementele lui V = simboluri ) Cuv ˆant: s¸ir finit de simboluri

cuv ˆantul nul este notat cuǫsauλ.

Lungimea unui cuv ˆant u: numarul simbolurilor sale. Notat¸ie: |u|.

|ǫ|=0

V - multimea tuturor cuvintelor peste alfabetul V, inclusivǫ.

{0,1} ={ǫ,0,1,00,01,10,11,000,001, . . .}

(16)

Alfabet, cuv ˆant, multt¸ime de cuvinte

Alfabet: V o mult¸ime finit ˘a (elementele lui V = simboluri ) Cuv ˆant: s¸ir finit de simboluri

cuv ˆantul nul este notat cuǫsauλ.

Lungimea unui cuv ˆant u: numarul simbolurilor sale. Notat¸ie: |u|.

|ǫ|=0

V - multimea tuturor cuvintelor peste alfabetul V, inclusivǫ.

{0,1} ={ǫ,0,1,00,01,10,11,000,001, . . .}

V+- multimea tuturor cuvintelor nenule peste alfabetul V {0,1}+={0,1,00,01,10,11,000,001, . . .}

(17)

Operat¸ii pe cuvinte

Concatenareaa doua cuvinte x, y: cuv ˆantul 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

(18)

Operat¸ii pe cuvinte

Concatenareaa doua cuvinte x, y: cuv ˆantul 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 asociativ ˘a

(19)

Operat¸ii pe cuvinte

Concatenareaa doua cuvinte x, y: cuv ˆantul 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 asociativ ˘a

(V,·)este monoid (ǫeste element neutru), se numes¸te monoidul liber generat de V .

(20)

Operat¸ii pe cuvinte

Concatenareaa doua cuvinte x, y: cuv ˆantul 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 asociativ ˘a

(V,·)este monoid (ǫeste element neutru), se numes¸te monoidul liber generat de V .

Cuv ˆantul v este unprefixal cuv ˆantului u dac ˘a∃w ∈V :u=vw ; dac ˘a wV+, atunci v este unprefix propriual lui u.

(21)

Operat¸ii pe cuvinte

Concatenareaa doua cuvinte x, y: cuv ˆantul 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 asociativ ˘a

(V,·)este monoid (ǫeste element neutru), se numes¸te monoidul liber generat de V .

Cuv ˆantul v este unprefixal cuv ˆantului u dac ˘a∃w ∈V :u=vw ;

(22)

Fie V un alfabet. O submult¸ime LV este unlimbaj(formal) peste alfabetul V (sau V-limbaj) dac ˘a L are o descriere

(matematic ˘a) finit ˘a.

O descriere poate fi:

(23)

Fie V un alfabet. O submult¸ime LV este unlimbaj(formal) peste alfabetul V (sau V-limbaj) dac ˘a L are o descriere

(matematic ˘a) finit ˘a.

O descriere poate fi:

neformal ˘a (ˆın limbaj natural):

multimea cuvintelor peste alfabetul{0,1}care contin un numar par de 0.

L={xV+:|x|este par}.

{anbn|nN}.

{w∈ {0,1}|w se termina in 00}.

(24)

Fie V un alfabet. O submult¸ime LV este unlimbaj(formal) peste alfabetul V (sau V-limbaj) dac ˘a L are o descriere

(matematic ˘a) finit ˘a.

O descriere poate fi:

neformal ˘a (ˆın limbaj natural):

multimea cuvintelor peste alfabetul{0,1}care contin un numar par de 0.

L={xV+:|x|este par}.

{anbn|nN}.

{w∈ {0,1}|w se termina in 00}.

formal ˘a (descriere matematic ˘a):

o descriere inductiv ˘a a cuvintelor

o descriere generativ ˘a a cuvintelor (gramatic ˘a generativ ˘a) o descriere a unei metode de recunoas¸tere a cuvintelor din limbaj

(25)

Operat¸ii cu limbaje

Operatiile cu multimi (reuniune, intersectie etc) Produs de limbaje: L1·L2={u·v|u∈L1,vL2} Exemplu:

L1={an,n1}, L2={bn,n1}

L1·L2={anbm,n1,m1}

Iterat¸ia (produsul Kleene): L =S

n≥0Ln, unde:

L0={ǫ}

Ln+1=Ln·L

(26)

Limbaje Formale, Automate s¸i Compilatoare - Curs 1

1 Prezentare curs

2 Limbaje formale

3 Mecanisme de generare a limbajelor: gramatici

4 Ierarhia lui Chomsky

5 Limbaje s¸i gramatici de tip 3 (regulate)

(27)

Gramatici

Definit¸ie 1

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

N s¸i T sunt dou ˘a alfabete disjuncte:

N este multimea neterminalilor T este multimea terminalilor

SN este simbolul de start (neterminalul init¸ial)

P este o multime finita de reguli (product¸ii) de forma xy , unde x,y ∈(N∪T) s¸i x cont¸ine cel put¸in un neterminal.

(28)

Derivare

Definit¸ie 2

Fie G= (N,T,S,P)o gramatica s¸i u,v ∈(N∪T).

Spunem c ˘av este derivat direct (ˆıntr-un pas) de la uprin aplicarea regulii xy , s¸i not ˘am uv , dac ˘a∃p,q ∈(N∪T) astfel ˆınc ˆat u =pxq s¸i v =pyq.

(29)

Derivare

Definit¸ie 2

Fie G= (N,T,S,P)o gramatica s¸i u,v ∈(N∪T).

Spunem c ˘av este derivat direct (ˆıntr-un pas) de la uprin aplicarea regulii xy , s¸i not ˘am uv , dac ˘a∃p,q ∈(N∪T) astfel ˆınc ˆat u =pxq s¸i v =pyq.

Daca u1u2. . .⇒un,n>1, spunem ca uneste derivat din u1ˆın G s¸i notam u1+un.

(30)

Derivare

Definit¸ie 2

Fie G= (N,T,S,P)o gramatica s¸i u,v ∈(N∪T).

Spunem c ˘av este derivat direct (ˆıntr-un pas) de la uprin aplicarea regulii xy , s¸i not ˘am uv , dac ˘a∃p,q ∈(N∪T) astfel ˆınc ˆat u =pxq s¸i v =pyq.

Daca u1u2. . .⇒un,n>1, spunem ca uneste derivat din u1ˆın G s¸i notam u1+un.

Scriem uv dac ˘a u+ v sau u=v .

(31)

Limbaj generat

Definit¸ie 3

Limbajul generat de gramatica G este:

L(G) ={w ∈T|S⇒+w}

(32)

Limbaj generat

Definit¸ie 3

Limbajul generat de gramatica G este:

L(G) ={w ∈T|S⇒+w} Definit¸ie 4

Dou ˘a gramatici G1s¸i G2sunt echivalente dac ˘a L(G1) =L(G2).

(33)

Exemplu

G= (N,T,S,P), N={S,X,A}, T ={a,b}, P const ˘a din:

1 SaXb

2 aX aAb

3 XbbA

4 aAaa

5 Aǫ

L(G) ={ab,abb,aabb}

Gramatic ˘a echivalent ˘a cu un singur neterminal ?

(34)

Exemplu

L={anbn|n≥1}

Definit¸ia inductiv ˘a:

abL

Daca X L, atunci aXbL

Nici un alt cuv ˆant nu face parte din L

(35)

Exemplu

L={anbn|n≥1}

Definit¸ia inductiv ˘a:

abL

Daca X L, atunci aXbL

Nici un alt cuv ˆant nu face parte din L Definit¸ia generativ ˘a:

G= ({X},{a,b},X,P), unde P={X aXb,X ab}

Derivarea cuv ˆantului a3b3:

(36)

Exemplu

L={anbncn|n≥1}

G= (N,T,S,P), N={S,X}, T ={a,b,c}, P const ˘a din:

1 Sabc

2 SaSXc

3 cX Xc

4 bX bb

Derivarea cuv ˆantului a3b3c3:

S(2)aSXc(2)aaSXcXc(1) aaabcX cXc(3) aaabX ccXc(4) aaabbccX c(3)aaabbcX cc(3) aaabbX ccc(4)aaabbbccc=a3b3c3

(37)

Limbaje Formale, Automate s¸i Compilatoare - Curs 1

1 Prezentare curs

2 Limbaje formale

3 Mecanisme de generare a limbajelor: gramatici

4 Ierarhia lui Chomsky

(38)

Ierarhia lui Chomsky

1 Gramatici de tip 0 (generale) Nu exista restrictii asupra regulilor

(39)

Ierarhia lui Chomsky

1 Gramatici de tip 0 (generale) Nu exista restrictii asupra regulilor

2 Gramatici de tip 1 (dependente de context)

reguli de formapxqpyq undexN, y 6=ǫ, p,q∈(N∪T), S→ǫ, caz ˆın care S nu apare ˆın dreapta regulilor

(40)

Ierarhia lui Chomsky

1 Gramatici de tip 0 (generale) Nu exista restrictii asupra regulilor

2 Gramatici de tip 1 (dependente de context)

reguli de formapxqpyq undexN, y 6=ǫ, p,q∈(N∪T), S→ǫ, caz ˆın care S nu apare ˆın dreapta regulilor

3 Gramatici de tip 2 (independente de context) reguli de formaAy undeAN s¸iy ∈(N∪T)

(41)

Ierarhia lui Chomsky

1 Gramatici de tip 0 (generale) Nu exista restrictii asupra regulilor

2 Gramatici de tip 1 (dependente de context)

reguli de formapxqpyq undexN, y 6=ǫ, p,q∈(N∪T), S→ǫ, caz ˆın care S nu apare ˆın dreapta regulilor

3 Gramatici de tip 2 (independente de context) reguli de formaAy undeAN s¸iy ∈(N∪T)

(42)

Exemple

Tip 1: pxqpyqundexN, y 6=ǫ, p,q∈(N∪T),S→ǫ G= (N,T,S,P), N ={S,A,B}, T ={a,b,c}, P:

(1)SaaAc (2)aAcaAbBc (3)bBbBc (4)BcAbc (5)Aa Gramatica tip 1

G= (N,T,S,P), N ={S,X}, T ={a,b,c}, P:

(1)Sabc (2)SaSXc

(3)cX Xc (nu este regul ˘a de tip 1!, gramatica va fi de tip 0)

(43)

Exemple

Tip 2: Ay undeANs¸iy ∈(N∪T)

Tip3: AusauAuB undeA,BN s¸iuT. G:

(1)xaxb (2)x →ǫ

(Gramatic ˘a tip 2) G:

(1)xax (2)xbx

(44)

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+aa)poate fi derivat din E?

Descrieti limbajul L(G)

FieG= ({A,B},{a,b},A,{A→aA,AB,BbB,B→ǫ}) Ce tip are gramatica G ?

Descrieti limbajul L(G)

(45)

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 cuLj clasa limbajelor de tipul j, unde j ∈ {0,1,2,3}.

Are loc: 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}

(46)

Propriet ˘at¸i

Fiecare din familiileLj cu 0≤j ≤3 contine toate limbajele finite Fiecare din familiileLj cu 0≤j ≤3 este inchisa la operatia de reuniune:

L1,L2∈ Lj =⇒L1L2∈ Lj,

∀j :0≤j≤3

(47)

Notat¸ii alternative pentru gramatici de tip 2: BNF

(48)

gramatici DTD

genereaz ˘a mult¸imea documentelor XML cu o anumit ˘a structur ˘a (limbaj independent de context)

(49)

gramatici DTD

Un ”cuv ˆant” din limbajul generat de gramtica DTD:

(50)

XML Schema

- rol similar gramaticilor DTD

(51)

Limbaje Formale, Automate s¸i Compilatoare - Curs 1

1 Prezentare curs

2 Limbaje formale

3 Mecanisme de generare a limbajelor: gramatici

4 Ierarhia lui Chomsky

(52)

Gramatici de tip 3

O gramatic ˘a G= (N,T,S,P)este de tip 3 dac ˘a regulile sale au forma: Au sau AuB unde A,BN s¸i uT.

Exemplu: G= ({D},{0,1, ...,9},D,P) Unde P este:

D0D|1D|2D|. . .|9D D→0|1|. . .|9

(53)

Exemple

Fie gramatica G= ({A,B},{l,d},A,P)unde P este:

AlB, BlB|dB|ǫ(l = litera, d = cifra)

(54)

Exemple

Fie gramatica G= ({A,B},{l,d},A,P)unde P este:

AlB, BlB|dB|ǫ(l = litera, d = cifra) L(G): multimea identificatorilor

Fie gramatica G= ({A,B},{+,−,d},A,P)unde P este:

A→+dB| −dB|dB, BdB|ǫ(d = cifra)

(55)

Exemple

Fie gramatica G= ({A,B},{l,d},A,P)unde P este:

AlB, BlB|dB|ǫ(l = litera, d = cifra) L(G): multimea identificatorilor

Fie gramatica G= ({A,B},{+,−,d},A,P)unde P este:

A→+dB| −dB|dB, BdB|ǫ(d = cifra) L(G): multimea constantelor intregi

(56)

Forma normal ˘a

O gramatic ˘a de tip 3 este in form ˘a normal ˘a daca regulile sale sunt de forma Aa sau AaB, unde aT , si, eventual S→ǫ( caz in care S nu apare in dreapta regulilor).

Pentru orice gramatica de tip 3 exista o gramatica echivalenta in forma normala.

(57)

Forma normal ˘a

Obtinerea gramaticii in forma normala echivalenta cu o gramatica de tip 3:

Se poate arata ca pot fi eliminate regulile de forma AB (redenumiri) si cele de forma Aǫ(reguli de stergere), cu exceptia, eventual a regulii Sǫ.

Orice regula de formaAa1a2. . .anse inlocuieste cu

Aa1B1,B1a2B2, . . ., Bn2an1Bn1, Bn1an, n>1, B1, . . . ,Bn−1fiind neterminali noi.

Orice regula de formaAa1a2. . .anBse inlocuieste cuAa1B1,

Referințe

DOCUMENTE SIMILARE

Pentru a avea o privire mai cuprinz˘ atoare asupra variatei palete de pre- ocup˘ ari a lui Traian Lalescu am ales s˘ a v˘ a propunem spre lectur˘ a ( ˆın form˘ a complet˘ a sau

Algoritmii de triangulare se ocup˘ a cu determinarea unei mult¸imi de triunghiuri avˆ and dat˘ a o mult¸ime de puncte 2D drept vˆ arfuri.. ˆIn general, am putea numi triangulare

vectoriale tangente la S, se nume¸ste tensorul de curbur˘a a lui S.. Consider˘am ˆın U o submult¸ime B care este interiorul unei curbe ˆınchise de clas˘a C 2 notat˘a prin

MulŃumiŃi lui Dumnezeu pentru toate lucrurile căci aceasta este voia Lui cu privire la voi, fie că au fost lucruri care v-au adus suferinŃă, fie că au fost

Se ¸stie c˘a pe un spat¸iu vectorial de dimensiune finit˘a o transformare liniar˘a este biject¸ie dac˘a ¸si numai dac˘a este injectiv˘a (deci dac˘a dim V = n nedegenerarea

Denumirea cursului: Engleza Codul cursului: J0815, J0826 Tipul cursului: obligatoriu Nivelul cursului: licenţă Anul de studiu: I Semestrul: I, II. Numărul de credite

Propunem un manual exclusiv in limba romini, ce se adreseazi astfel unui public mult mai larg, neselectat in prealabil in functie de limbile striine pe care le

Consecint¸a foarte important˘a a acestui rezultat este aceea c˘a ˆın V 2 (π) avem cel mult doi vectori liniar independent¸i ¸si anume, folosind ¸si propozit¸ia 6.7, doi