Curs8

Documente similare
Curs7

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Limbaje Formale, Automate si Compilatoare

CAPITOLUL I

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Ecuatii si sisteme de ecuatii neliniare 1 Metoda lui Newton Algorithm 1 Metoda lui Newton pentru ecuaţia f(x) = 0. Date de intrare: - Funcţia f - Apro

ALGORITHMICS

1

Analiză de flux de date 29 octombrie 2012

Retele Petri si Aplicatii

Microsoft Word - O problema cu bits.doc

Microsoft Word - TIC5

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Analiză statică Analiza fluxului de date 23 octombrie 2014

E_d_Informatica_sp_SN_2014_bar_10_LRO

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

PowerPoint Presentation

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace

LOGICA MATEMATICA SI COMPUTATIONALA Sem. I,

LABORATOR I

Limbaje de Programare Curs 6 – Functii de intrare-iesire

MergedFile

Curs 6: Clasificarea surselor de informatii - Clasificarea Bayes Naiva. Modelul Bernoulli

Diapositive 1

Programarea şi utilizarea calculatoarelor

Subiectul 1

Backtracking_2018

Retele Petri si Aplicatii

Paradigme de programare

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Microsoft Word - CarteC.doc

ExamView Pro - Untitled.tst

Calcul Numeric

PowerPoint Presentation

Microsoft Word - CarteC.doc

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Coman Marinela Furnizor program formare acreditat: CCD BRĂILA Denumire program: INFORMATICĂ ŞI TIC PENTRU GIMNAZIU Clasa a V-a Categorie: 1; Tip de co

Cursant prof. Constantin Vasilache PROIECT DE LECȚIE Clasa Data: Obiectul: Tehnologia Informației și a Comunicațiilor Nr. de ore: 1oră Tema lecţiei: A

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

Microsoft Word - 2 Filtre neliniare.doc

Managementul Resurselor Umane

ALGORITHMICS

DISPOZITIVE DE INTRARE

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

Microsoft Word - CarteC.doc

Microsoft PowerPoint - Fp_2.ppt

Laborator 1-Teoria probabilitatilor si statistica matematica Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 1 P

Algoritmi elementari Metode de căutare secvenţială binară Metode de ordonare metoda bulelor metoda inserţiei metoda selecţiei metoda numărării Intercl

Slide 1

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Grile si probleme siruri de caractere in C++ ŞIRURI DE CARACTERE Itemii următori sunt preluaţi din variantele de bacalaureat În secvenţa de i

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Utilizare Internet

Laborator Implementarea algoritmului DES - Data Encryption Standard. Exemplu DES Algoritmul DES foloseşte numere b

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

Microsoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]

proiectarea bazelor de date

Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s

CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: ALTERESCU V. IULIA-CRI

Logică și structuri discrete Mulțimi Casandra Holotescu

E_d_Informatica_sp_MI_2015_bar_02_LRO

Limbaje de ordinul I LOGICA DE ORDINUL I Un limbaj L de ordinul I este format din: o mulţime numărabilă V = {v n n N} de variabile; conectorii şi ; pa

ETTI-AM2, , M. Joița & A. Niță Notițe de Adrian Manea Seminar 11 Transformarea Laplace Aplicații Transformarea Z Ecuații și sisteme diferenți

tehnologii web

Microsoft Word - Lab1a.doc

O NOUA PROBLEMA DE CONCURS OLIMPIADA MUNICIPALA DE INFORMATICA, IASI 2019 V-am promis într-un articol mai vechi ca vom prezenta pe acest blog câteva p

Spatii vectoriale

Slide 1

Capitole Speciale de Informatică Curs 2: Determinarea vocabularului de termeni şi a listelor de postări 4 octombrie 2018 Reamintim că listele de indec

15. Logică matematică cu aplicații în informatică - MI 3

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

I. INTRODUCERE 1. Necesitatea studiului logicii Teodor DIMA În activitatea noastră zilnică, atunci când învăţăm, când încercăm să fundamentăm o părere

Algebra si Geometri pentru Computer Science

Microsoft Word - Curs1.docx

Elemente de aritmetica

Metode avansate de gestiune a documentelor și a sistemelor de calcul - LABORATOR 1 -

Facultatea de Matematică Anul II Master, Geometrie Algebrică Mulţimi algebrice ireductibile. Dimensiune 1 Mulţimi ireductibile Propoziţia 1.1. Fie X u

D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Dem

MergedFile

Microsoft Word - l10.doc

Matematici aplicate științelor biologie Lab09 MV

Secţiunea 5-6 începători Concurs online de informatică Categoria PROGRAMARE PROBLEMA puncte PERIODIC Se citește un număr natural nenul N. Se ump

Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA

Introducere în limbajul JavaScript

Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor

Metode de programare Proiectarea algoritmilor

gaussx.dvi

L4. TEOREMELE ALGEBREI BINARE. FUNCȚII LOGICE ELEMENTARE. OPERAȚII LOGICE PE BIT. SINTEZA FUNCȚIILOR LOGICE DIN TABELE DE ADEVĂR 1. Obiective Prin par

Microsoft Word - 4-Interfete paralele.doc

Limbaje de Programare Curs 8 – Fisiere

Microsoft Word - Curs_08.doc

B

Creational design patterns

L4. TEOREMELE ALGEBREI BINARE. FUNCȚII LOGICE ELEMENTARE. OPERAȚII LOGICE PE BIT. SINTEZA FUNCȚIILOR LOGICE DIN TABELE DE ADEVĂR 1. Obiective Prin par

-

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

PROGRAMARE ORIENTATA PE OBIECTE

Transcriere:

Curs 8 Analiză sintactică LR(k)

Termeni Predicție vezi LL(1) Manșa = simboluri din vârful stivei de lucru care formează (în ordine) pdp Analizor de tip deplasare - reducere: deplasează simboluripentru a forma manșa când s-a format partea dreaptă a unei producții - reduce la partea stângă corespunzătoare

LR(k) L = left - secvența este procesată de la stânga la dreapta R = right - folosirea derivărilor de dreapta k = lungimea predicției Gramatică îmbogățită G = (N, Σ,P,S) G =(N {S },Σ,P {Sʹ S},Sʹ), S N S nu apare în partea dreaptă a nici unei producții

Definiție: Dacă într-o gramatică G = (N, Σ, P, S) avem * S => dr αaw dr αβw, unde α (N Σ),A N,w Σ, atunci orice prefix al secvenței αβ se numește prefix viabil în G. Definiție: Elementul de analiză LR(k) se definește ca fiind [A α.β,u], unde A αβ e o producție a gramaticii, u Σ k și descrie stadiul în care, având în vedere producția A αβ, a fost detectat α (α e în vârful stivei) și se așteaptă să fie detectat β. Definiție: Elementul de analiză LR(k) este valid pentru prefixul viabil γα dacă: * S dr γaw dr γαβw u = FIRST k (w)

0 Definiţia 3.4. [Şer87] O gramatică G =(N,ß,P,S) este de tip LR(k) pentru k 0 dacă din: 1. S 0 )dr ÆAw ) dr ÆØw; 2. S 0 )dr Bx ) dr ÆØy; 3. FIRST k (w) =FIRST k (y) rezultă că Æ = Ø,A= γ B,x = y.

[A αβ.,u] - s-a detectat pdp - se poate face reducere [A α.β,u] - deplasare stare decide ÞStiva de lucru: $s init X 1 s 1... X m s m acțiunea unde: $ - marcaj stivă vidă X i N s i - stări

Principiul LR(k) starea curentă simbolul curent predicția Determină în mod unic: acțiunea care se aplică tranziția în altă stare => Tabel LR(k) 2 părți: parte de acțiune + parte de goto

Stări Ce conține o stare? Elemente de analiză Închidere - closure Câte stări sunt? Cum se trecere dintr-o stare în altă stare goto

[A α.bβ,u] plică: valabil pentru prefixul viabil γα => S dr Aw dr ÆBØw ) ) ( ) valabil p u = FIRST k (w) Dacă în gramatică B δ P => S ) Aw ) dr ÆBØw ) dr ƱØw. Această observaţie sugerează faptu => [B.δ,u] valabil pentru prefixul viabil γα

Analiză sintactică LR(k): LR(0), SLR, LR(1), LALR definirea elementului de analiză construirea mulțimii de stări construirea tabelului de analiză Analiza secvenței de baza tranzițiilor între configurații

Analizor sintactic LR(0) Predicție de lungime 0 (se ignoră predicția) 1. Element de analiză LR(0): [A α.β]

2. Construirea mulțimii de stări Ce conține o stare closure_lr0 Cum se trece dintr-o stare în altă stare goto_lr0 Construirea mulțimii de stări ColCan_LR0 Colecție canonică

Algoritm Closure Algoritmul 3.8 ClosureLR0 INPUT: I-element de analiză; G - gramatica îmbogăţită OUTPUT: C = closure(i); C := {I}; repeat for 8[A! Æ.BØ] 2 C do for 8B! 2 P do if [B!. ] /2 C then C = C [ [B!. ] end if end for end for until C nu se mai modifică

Funcția goto goto : P(E 0 ) (N Σ) P(E 0 ) unde E 0 = mulțimea de elemente LR(0) goto(s, X) = closure({[a αx.β] [A α.xβ] s})

Algoritm ColCan_LR(0) Algoritmul 3.9 Col starilr0 INPUT: G - gramatica îmbogăţită OUTPUT: C - colecţia canonică de stări C := ;; s 0 := closure({[s 0!.S]}) C := C [ {s 0 }; repeat for 8s 2 C do for 8X 2 N [ ß do if goto(s, X) 6= ; and goto(s, X) /2 C then C = C [ goto(s, X) end if end for end for until C nu se mai modifică

3. Construirea tabelului de analiză câte o linie pentru fiecare stare 2 părți: De acțiune: o coloană(pentru o anumită stare acțiunea este unică deoarece nu se ține cont de predicție) De goto: câte o coloană pentru fiecare simbol al gramaticii X N Σ

Reguli tabel LR(0) 1. dacă [A α.β] s i atunci acțiune(s i )=shift 2. dacă [A β.] s i și A Sʹ atunci acțiune(s i )=reduce l, unde l - numărul producției A β 3. dacă [Sʹ S.] s i atunci acțiune(s i )=acc 4. dacă goto(s i, X) = s j atunci goto(s i, X) = s j 5. toate celelalte valori = eroare

Observații 1) starea inițială a analizorului = starea care conține [Sʹ.S] 2) Din starea de acceptare nu există deplasare: dacă s e stare de acceptare, goto(s, X) =, X N Σ. 3) Dacă într-o anumită stare s acțiunea este de reducere, atunci goto(s, X) =, X N Σ. 4) Argument G : fie G = ({S},{a,b,c},{S asbs,s c},s) stările [S asbs.] și [S c.] acceptare / reducere?

Observații (cont) 5) O gramatică nu este de tip LR(0) dacă tabelul de analiză conține conflicte: conflict deplasare - reducere: când o stare include elemente de analiză de forma [A α.β] și [B γ.], ceea ce ar implica două acțiuni diferite pentru această stare conflict reducere - reducere: când o stare include elemente de analiză de forma [A αβ.] și [B γ.], în care acțiunea este de reducere, dar se creează conflict relativ la producția cu care se face reducerea

4. Analiza secvenței de baza tranzițiilor între configurații INPUT: Gramatica limbajului G = (NU{S }, Σ, P U {S ->S},S ) Tabel de analiză LR(0) Secvența de analizat w =a 1 a n OUTPUT: Dacă (w L(G)) atunci șir de producții altfel locația erorii

Configurații LR(0) (α, β, π) Unde: α = stiva de lucru β = stiva de intrare π = banda de ieșire (rezultat) Configurația inițială: ($s 0,w$,ε) Configurația finală: ($s acc, $, π)

Tranziții 1. Deplasare dacă actiune(s m )= shift AND head(β)=a i AND goto(s m,a i )=S j atunci ($s 0 x 1...x m s m,a i...a n $, π) ($s 0 x 1...x m s m a i s j,a i+1...a n $, π) 2. Reducere dacă actiune(s m ) = reduce t AND (t) A x m p+1...x m AND goto(s m p,a) = s j atunci ($s 0...x m s m,a i...a n $, π) ($s 0...x m p s m p As j,a i...a n $,t π) 3. Acceptare dacă actiune(s m ) = accept atunci ($s i,$, π)=acc 3. Eroare - altfel

Algoritm de analiză sintactică LR(0) AICI