LINGUAGGI CONTEXT FREE. Lezione Lezione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LINGUAGGI CONTEXT FREE. Lezione Lezione"

Transcript

1 LINGUAGGI CONTEXT FREE Lezione Lezione

2 2 INTRODUZIONE

3 GERARCHIA DI CHOMSKY 3

4 4 DEFINIZIONE DEI LINGUAGGI CONTEXT FREE

5 LINGUAGGI CF I linguaggi di tipo 2 sono detti context free (CF) o non contestuali. Sono GENERATI da grammatiche di tipo 2. Dati: VN insieme dei simboli non terminali VT insieme dei simboli teminali Le produzioni sono della forma: VN (VT U VN)* Notate la differenza con le grammatiche di tipo 3? VN (VT U VN) VT (sinistra) VN VT (VT U VN) (destra) Sono RICONOSCIUTI da automi a pila. 5

6 LINGUAGGI DI PROGRAMMAZIONE Interessante sottoclasse dei linguaggi di tipo 2. Dato il codice sorgente (insieme di stringhe): Parser: costruisce l albero sintattico tramite l applicazione delle regole per riconoscere la stringa Compilatore o interprete: visita l albero traducendo in istruzioni macchina o eseguendo le operazioni Esempio di albero sintattico: int x = 10; S Var; Var = Val; Var Tipo Nome Tipo int Nome x Val Tipo Var Nome S int x = Val 10 ; 6

7 7 PUMPING LEMMA E PROPRIETÀ DI CHIUSURA

8 PUMPING LEMMA PER LINGUAGGI CF 1/3 Se L è un linguaggio non contestuale allora esiste una costante n tale che se z L e z n, allora esistono u,v,w,x,y tali che: 1. uvwxy=z 2. vx 1 3. vwx n 4. i 0 uv i wx i y L Condizione necessaria ma non sufficiente! Dimostra che un linguaggio non è context free. Notate la differenza con il PL per i linguaggi regolari? Un ragionamento simile permette di decidere: L = L = pumping constant 8

9 PUMPING LEMMA PER LINGUAGGI CF 2/3 Linguaggi finiti (sono regolari e quindi contex free). soddisfano banalmente il PL con n = max s : s L + 1 non ci sono z L: z n quindi la condizione è sempre vera! Linguaggi infiniti (possono essere cf non regolari). vediamo le stringhe con albero sintattico a profondità > V n C è almeno un non terminale A ripetuto due volte: 1) una per generare da A la stringa vax 2) una per generare da A la stringa w allora posso usare subito la regola 2) e ottenere una stringa che ha i = 0 ovvero senza v x continuare ad usare la regola 1) e ottenere una stringa che ha i > 0 ovvero con vvv xxx 9

10 PUMPING LEMMA PER LINGUAGGI CF 3/3 Se L è un linguaggio non contestuale allora esiste una costante n tale che se z L e z n, allora esistono u,v,w,x,y tali che: 1. uvwxy=z 2. vx 1 3. vwx n 4. i 0 uv i wx i y L Esempio. Dimostrare che a n b n c n n 1 non è di tipo 2. Sia a n b n c n =uvwxy = z Consideriamo la stringa v se contiene simboli diversi, uv 2 wc 2 y ha alternanze di simboli se contiene simboli uguali, uv 2 wc 2 y ha diverso numero di a,b,c 10

11 CHIUSURA DEI LINGUAGGI CF Teorema. I linguaggi non contestuali non sono chiusi rispetto all intersezione, quindi neanche alla complementazione. Dimostrazione. Siano L 1 = a n b n c m m, n 1 e L 2 = a m b n c n m, n 1 due linguaggi di tipo 2 Intersezione. Il linguaggio L 1 L 2 = a n b n c n n 1 non è di tipo 2. Complementazione. Se l intersezione non è di tipo 2 non può esserlo neanche il complemento, infatti L 1 L 2 = L 1 L 2. 11

12 CHIUSURA DEI LINGUAGGI CF Teorema. I linguaggi non contestuali sono chiusi rispetto all'unione, alla concatenazione ed alla iterazione Dimostrazione. Siano <Σ,VN 1,P 1,S 1 > e <Σ,VN 2,P 2,S 2 > due linguaggi CF: Unione. Aggiungo S' S 1 S 2 e uso S' come nuovo assioma. Concatenazione. Aggiungo S' S 1 S 2 e uso S' come nuovo assioma. Iterazione. Aggiungo S' S 1 S' ε e uso S' come nuovo assioma. 12

13 RIASSUNTO PROPRIETÀ DI CHIUSURA 13

14 14 AUTOMI A PILA

15 RICONOSCIMENTO DI LINGUAGGI CF 1/2 Gli ASF non hanno potere computazionale per riconoscere tutti i linguaggi CF, possono riconoscere solo i regolari. Automi a Pila, o push-down automata (PDA) Dispongono di una pila che possono modificare Possono usare il primo carattere della pila nella FdT Condizioni equivalenti di accettazione Accettaz per pila vuota. a fine scansione pila vuota Accettaz per stato finale. a fine scansione stato finale Linguaggi CF riconosciuti da PDA non deterministci (tutti quelli riconosciuti da PDA non determin sono CF) PDA deterministici riconoscono una particolare sottoclasse PDA deterministici hanno diverso potere computazionale! 15

16 AUTOMA A PILA NON DETERMINISTICO Un PDA non deterministico è una settupla M = Σ, Γ, Ζ 0, Q, q 0, F, δ Σ alfabeto di input Γ alfabeto della pila Ζ 0 Γ simbolo iniziale della pila Q insieme finito di stati q 0 ε Q stato iniziale F Q insieme di stati finali δ: Q Σ ε Γ P(Q Γ ) funzione di transizione 16

17 FDT DI UN PDA NON DETERMINISTICO Se abbiamo una regola di transizione δ q i, a, A = q j, BA, q h, ε Se lo stato interno è q i, il carattere letto è a e il simbolo top della pila è A, non deterministicamente ci sono due transizioni sposta lo stato corrente in q j e sostituisci A con BA (pop(a) push(a) push(b)) sposta lo stato corrente in q h e sostituisci A con ε (pop(a)) Una regola di transazione δ q i, ε, A implica il non spostamento della testina 17

18 FDT DI UN PDA DETERMINISTICO Un PDA è deterministico se vale q Q, σ Σ, Z Γ δ q, σ, Z + δ q, ε, Z 1 se è definita una ε-transizione per un certo stato q e per un certo simbolo di pila Z, non deve essere definita un'altra transizione Linguaggi CF deterministici: quelli riconosciuti da PDA D I linguaggi CF sono riconosciuti in tempo lineare con PDA ND ma il in tempo O(n 3 ) con metodi deterministici (più potenti di PDA) I linguaggi di programmazione si vuole che vengano processati in tempo lineare e con metodi deterministici, ovvero che siano linguaggi CF deterministici. 18

19 RICONOSCIMENTO DI LINGUAGGI CF 2/2 Riconoscere ww R con w in (0+1) + con PDA non deterministico M=<{0,1},{R,Z,U},R,{q 1,q 2 },q 1,,δ> FdT: δ(q 1,0,R) = {<q 1,ZR>} δ(q 1,0,Z) = {<q 1,ZZ>,<q 2,ε>} δ(q 1,0,U) = {<q 1,ZU>} δ(q 1,1,R) = {<q 1,UR>} δ(q 1,1,Z) = {<q 1,UZ>} δ(q 1,1,U) = {<q 1,UU>,<q 2,ε>} δ(q 2,0,Z)={<q 2,ε>} δ(q 2,1,U)={<q 2,ε>} δ(q 1,ε,R)={<q 2,ε>} δ(q 2,ε,R)={<q 2,ε>} potrebbe non essere a metà quindi aggiungi potrebbe essere a metà quindi togli supponi di essere a metà quindi togli finisci e togli anche il simbolo iniziale Come funziona questo automa con ? 19

20 20 FORME NORMALI

21 FORMA RIDOTTA Una grammatica si dice in forma ridotta se Non contiene ε-produzioni, a meno che non siano nell assioma e l assioma non compaia mai a destra Non contiene produzioni unitarie (A B) Non contiene simboli inutili come: Simboli non fertili, che non generano stringhe di terminali Simboli non raggiungibili dall assioma Ogni grammatica di tipo 2 ha una grammatica equivalente in forma ridotta L algoritmo di trasformazione dimostra la precedente 21

22 FORMA RIDOTTA DI UNA GRAMMATICA CF Rimozione delle ε-produzioni che non sono su S Es: A BC bab B B ε ad A BC bab B C ba ε B ad Iterare finché solo S contiene ε-produzioni Rimozione delle produzioni unitarie Es: A B B b A b Rimozione dei simboli inutili, in ordine prima i simboli non fertili e poi i simboli non raggiungibili, poiché alcuni diventano non raggiungibili proprio per l eliminazione dei simboli non fertili. 22

23 FORMA RIDOTTA DI UNA GRAMMATICA CF Rimoz. simboli inutili 1: produz. con simboli non fertili Def. Ricorsiva. Un simbolo A non term è fertile se: Esiste Aα dove α ha solo terminali Esiste Aα dove α ha terminali o simboli fertili Es: S AB b A a S b A a Rimoz. simboli inutili 2: produz. con simboli non raggiung. Def. Ricorsiva. Un simbolo A non term è raggiungibile se: E l assioma Esiste BαAα dove B è raggiungibile Es: S b A a S b 23

24 ESEMPIO G G =RIDOTTA(G) Data la grammatica G: S Xa S V X bs Sc d W w Step 1: (non fertili, nessuna produzione di terminali) ricorsione inutile no produz associata Step 2: (non raggiungibili) S Xa S V X bs Sc d W w S Xa V X bs Sc d W w S Xa X bs Sc d W w S Xa V X bs Sc d W w S Xa X bs Sc d W w S Xa X bs Sc d 24

25 FORMA NORMALE DI CHOMSKY (CNF) Una grammatica di tipo 2 si dice in CNF se Tutte le produzioni sono del tipo seguente: A α dove α contiene solo DUE simboli non terminali A β dove β contiene solo UN simbolo terminale Ogni grammatica di tipo 2 che generi un linguaggio L tale che ε L ha una grammatica equivalente in CNF L algoritmo di trasformazione dimostra la precedente 25

26 CNF DI UNA GRAMMATICA CF Trasformiamo la grammatica in forma ridotta, se non lo è già 1. Trasformiamo ogni produzione che contiene almeno un simbolo terminale in maniera che contenga solo quello o solo simboli non terminali. Es: A b 1 Bb 2 A Z 1 BZ 2 Z 1 b 1 Z 2 b 2 2. Trasformiamo ogni produzione che contiene solo simboli non terminali in maniera che ne contenga solo due. Es: A B 1 B 2 B n A B 1 Z 1 Z 1 B 2 Z 2 Z n 2 B n 1 B n 26

27 ESEMPIO G G =CNF(G ) Data la grammatica G in forma ridotta: S Xa X bs Sc d Step 1: Step 2: S Xa X bs Sc d nop S XA X BS SC d A a B b C c 27

28 FORMA NORMALE DI GREIBACH (GNF) Una grammatica di tipo 2 si dice in GNF se Tutte le produzioni sono del tipo seguente: A aβ dove a V T e β se non è vuota contiene solo simboli non terminali Ogni grammatica di tipo 2 che generi un linguaggio L tale che ε L ha una grammatica equivalente in GNF L algoritmo di trasformazione dimostra la precedente La GNF permette di costruire in maniera automatica l automa che riconosce il linguaggio generato dalla grammatica 28

29 LEMMI UTILIZZATI Sostituzione Lemma. G è equivalente a G dove α 1, α 2 V G = A α 1Bα 2 B β 1 G = A α 1β 1 α 2 B β 1 Ricorsione Sinistra Lemma. G è equivalente a G dove (α, β V ) β non inizia per A G = A Aα β G = A βb β B αb α Dim. Ogni derivazione di G con n applicazioni della ricorsione sinistra su A può essere sostituita con n applicazioni della ricorsione destra di G su B. Ogni derivazione di G Aβ resta uguale in G 29

30 GNF DI UNA GRAMMATICA CF Trasformiamo la grammatica in CNF, se non lo è già Stabiliamo un ordinamento arbitrario sui simboli non terminali di G 1. for k=1 to m A. for j=1 to k-1 applica il lemma di sostituzione a tutte le produzioni A k A j α B. applica il lemma di eliminazione della ricorsione sinistra a A k A k α β introducendo B k 2. for k=m-1 downto 1 for j=m downto k 3. for k=1 to m applica il lemma di sostituzione a tutte le produzioni A k A j α Cerchiamo produzioni con non terminali distinguendo quelle che si possono sistemare con la sostituzione da quelle ricorsive Se G è in CNF, α è un non terminale, mentre β o è una coppia di non terminali o un simbolo terminale for j=1 to m applica il lemma di sostituzione a tutte le produzioni B k A j α 30

31 ESEMPIO G G =GNF(G ) 1/3 Data la grammatica G in CNF: S Xa X bs Sc d A a, B b, C c Per G m=5. Ordinamento: S (m=1), X (m=2), A, B, C. Step 1: (check S) A: (check -) nop B: nop Step 1: (check X) A: (check S) B: S XA X BS SC d A a, B b, C c S XA X BS XAC d A a, B b, C c S XA X BS XAC d A a, B b, C c S XA X BSZ BS dz d Z ACZ AC A a, B b, C c 31

32 ESEMPIO G G =GNF(G ) 2/3 Data la grammatica G in CNF: S Xa X bs Sc d A a, B b, C c Per G m=5. Ordinamento: S (m=1), X (m=2), A, B, C. Step 1: (check A) A: (check S, X) nop B: nop Step 1: (check B) A: (check S, X, A) nop B: nop Step 1: (check C) A: (check S, X, A, B) nop B: nop 32

33 ESEMPIO G G =GNF(G ) 3/3 Data la grammatica G in CNF: S Xa X bs Sc d A a, B b, C c Per G m=5. Ordinamento: S (m=1), X (m=2), A, B, C. Step 2: (check B, A) nop Step 2: (check X) (check C, B, A) Step 2: (check S) (check C, B, A, X) S XA X BSZ BS dz d Z ACZ AC A a, B b, C c S XA X bsz bs dz d Z ACZ AC A a, C c S XA X bsz bs dz d Z ACZ AC A a, B b, C c S bsza bsa dza da X bsz bs dz d Z ACZ AC A a, C c Step 3: (check Z) (check S, X, A, B, C) S bsza bsa dza da Z ACZ AC A a, C c S bsza bsa dza da Z acz ac A a, C c 33

34 ESEMPIO PDA CHE RICONOSCE L(G ) Data la grammatica G in GNF: S bsza bsa dza da Z acz ac A a, C c L automa a pila non deterministico che riconosce L(G ) è direttamente costruibile da G è il seguente. Z 0 =S Accettazione per pila vuota carattere letto q 0 S Z A C b d a a c (q 0,SZA) (q 0,SA) insieme di stati descritti da δ (q 0,ZA) (q 0,A) (q 0,CZ) (q 0,C) (q 0,ε) (q 0,ε) stato corrente simbolo affiorante della pila 34

35 35 ALCUNE OSSERVAZIONI Ambiguità e Decidibilità

36 AMBIGUITÀ Def. Una grammatica G di tipo 2 è ambigua se esiste una stringa x in L(G) derivabile con due diversi alberi sintattici Es. Data la grammatica G e la stringa s L G E E + E E E E a s = a + a a I seguenti sono alberi sintattici per s in G Def. Un linguaggio di tipo 2 è inerentemente ambiguo se tutte le grammatiche che lo generano sono ambigue. Es. Dati il linguaggio L e la stringa s L L = L 1 L 2 = a n b n c m : n, m 1 a m b n c n : n, m 1 s = a 2 b 2 c 2 = aabbcc. La stringa s in qualsiasi G: L(G)=L ha due alberi sintattici 36

37 DECIDIBILITÀ Il problema dell ambiguità di una grammatica e il problema della ambiguità di un linguaggio sono indecidibili. 37

Proprietà dei linguaggi non contestuali

Proprietà dei linguaggi non contestuali Proprietà dei linguaggi non contestuali Argomenti della lezione Pumping lemma per i linguaggi non contestuali Proprietà di chiusura Argomenti della lezione Grammatiche non contestuali in forma ridotta

Dettagli

Informatica Teorica. linguaggi non contestuali

Informatica Teorica. linguaggi non contestuali Informatica Teorica linguaggi non contestuali di tipo 2 context free (CF) 1 linguaggi non contestuali molte frasi in linguaggio naturale hanno una struttura sintattica non contestuale esempio: soggetto

Dettagli

Pumping lemma per i linguaggi Context-free

Pumping lemma per i linguaggi Context-free Pumping lemma per i linguaggi Context-free Sia L un linguaggio context-free. E possibile determinare una costante k, dipendente da L, tale che qualunque stringa z! L con z > k si può esprimere come z=

Dettagli

Esempio stringhe palindrome 1

Esempio stringhe palindrome 1 Esempio stringhe palindrome 1 Automa per il riconoscimento del linguaggio L = {w c w R } A = < {s,f}, {a,b,c}, {a,b},!, s, { f } > con! che contiene le transizioni: 1. (( s, a, " ), (s, a)! [ push a] 2.

Dettagli

a cura di Luca Cabibbo e Walter Didimo

a cura di Luca Cabibbo e Walter Didimo a cura di Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 automi a pila automi a pila e grammatiche non contestuali notazioni sul livello degli esercizi: (*)

Dettagli

Parte n.4 Linguaggi: Gerarchia ed Operazioni

Parte n.4 Linguaggi: Gerarchia ed Operazioni Linguaggi di Programmazione Corso C Parte n.4 Linguaggi: Gerarchia ed Operazioni Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Gerarchia di Chomsky Sia

Dettagli

7. Automi a Pila e Grammatiche Libere

7. Automi a Pila e Grammatiche Libere (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari 20 aprile 2016 1 Automi a Pila Definizione Descrizioni Istantanee Condizioni di Accettazione per PDA Esempi 2 Teorema delle

Dettagli

Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach

Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach Forme Normali A partire da una grammatica Context-free G è sempre possibile costruire una grammatica equivalente G ovvero L(G) = L(G ) che abbiano le produzioni in forme particolari, dette forme normali.

Dettagli

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio 6 aprile 2016 1 Teorema di Kleene 2 3 o 1 o 3 o 8 Teorema di Kleene Vale la seguente equivalenza: L 3 L FSL L REG Dimostrazione.

Dettagli

Quiz sui linguaggi CF

Quiz sui linguaggi CF Fondamenti dell Informatica 1 semestre Quiz sui linguaggi CF Prof. Giorgio Gambosi a.a. 2014-2015 Problema 1: Si consideri la seguente grammatica context free G, dove S, NP, V P, P P, A sono i simboli

Dettagli

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi Linguaggi di Programmazione Corso C Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Grammatiche

Dettagli

Proprieta dei linguaggi liberi da contesto. Proprieta dei linguaggi liberi da contesto

Proprieta dei linguaggi liberi da contesto. Proprieta dei linguaggi liberi da contesto roprieta di CFL Semplificazione di una CFG: se un linguaggio e un CFL, ha una grammatica di una forma speciale. Pumping Lemma per CFL: simile ai linguaggi regolari. Proprieta di chiusura: alcune delle

Dettagli

Forma Normale di Chomsky

Forma Normale di Chomsky 2. Eliminazione delle produzioni unitarie Forma Normale di Chomsky Una produzione si dice unitaria se è della forma A! B. Le produzioni unitarie in pratica consistono in una ridenominazione di variabili,

Dettagli

Proprietà dei linguaggi regolari

Proprietà dei linguaggi regolari Proprietà dei linguaggi regolari Argomenti della lezione Relazione tra automi, grammatiche ed espressioni regolari Pumping lemma per i linguaggi regolari Equivalenza di automi a stati finiti Le seguenti

Dettagli

Linguaggi e Grammatiche Liberi da Contesto

Linguaggi e Grammatiche Liberi da Contesto N.Fanizzi-V.Carofiglio Dipartimento di Informatica Università degli Studi di Bari 22 aprile 2016 1 Linguaggi Liberi da Contesto 2 Grammatiche e Linguaggi Liberi da Contesto G = (X, V, S, P) è una grammatica

Dettagli

Definizione di Grammatica

Definizione di Grammatica Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla ( VN, VT, P, S ) dove: V N e l insieme dei simboli non

Dettagli

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI PARTE I RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI Linguaggi regolari Linguaggi non contestuali Automi 1 1.1 I LINGUAGGI IN INFORMATICA @ Presenti a vari livelli di applicazione linguaggi di

Dettagli

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla V, V, P S ( ) N T, dove: V N e l insieme dei simboli non

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle grammatiche 1

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Potenza espressiva degli automi Potenza espressiva delle grammatiche 9/11/2004 Programmazione - Luca Tesei 1 Linguaggi Regolari Tutti i linguaggi che possono essere

Dettagli

Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini

Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini 04 Giugno 2014 Indice 0.1 Automi.................................

Dettagli

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 proprietà delle grammatiche non contestuali pumping lemma forme normali notazioni sul livello degli

Dettagli

GRAMMATICHE LIBERE DAL CONTESTO

GRAMMATICHE LIBERE DAL CONTESTO GRAMMATICHE LIBERE DAL CONTESTO Una grammatica è, intuitivamente, un insieme di regole che permettono di generare un linguaggio. Un ruolo fondamentale tra le grammatiche è costituito dalle grammatiche

Dettagli

Automi e Linguaggi Formali Automi a stack (Pushdown automata)

Automi e Linguaggi Formali Automi a stack (Pushdown automata) Automi e Linguaggi Formali Automi a stack (Pushdown automata) A.A. 2014-2015 Enrico Mezzetti emezzett@math.unipd.it Automi a stack Un Pushdown Automata (PDA) o Automa a stack Essenzialmente un ɛ-nfa con

Dettagli

Concetti di base sugli automi e sui linguaggi formali

Concetti di base sugli automi e sui linguaggi formali Concetti di base sugli automi e sui linguaggi formali Andrea Burattin 18 marzo 2005 Sommario Piccolo insieme di concetti sul funzionamento degli automi (a stati finiti, a pila,...), delle grammatiche libere

Dettagli

Verificare se una grammatica e LL(1) e costruirne la tabella di parsing. Verificare se una grammatica e LR(0) e costruirne la tabele ACTION e GOTO

Verificare se una grammatica e LL(1) e costruirne la tabella di parsing. Verificare se una grammatica e LR(0) e costruirne la tabele ACTION e GOTO ANALISI SINTATTICA TIPO 1: Data un linguaggio scrivere una grammatica che lo generi TIPO 2: Verificare se una grammatica non contestuale è ambigua TiPO 3: Verificare se una grammatica e LL(1) e costruirne

Dettagli

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli

Dettagli

Le grammatiche formali

Le grammatiche formali Le grammatiche formali Il carattere generativo dei sistemi linguisticii i Consideriamo i la seguente frase: Un gatto rincorre il topo Non facciamo difficoltà a riconoscere che si tratta di una frase sintatticamente

Dettagli

Automa deterministico con prospezione 1. < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R. se a Gui(X α) senza spostamento della testina.

Automa deterministico con prospezione 1. < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R. se a Gui(X α) senza spostamento della testina. Automa deterministico con prospezione 1 < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R δ(a, a) = ε se a Gui(X α) senza spostamento della testina con spostamento della testina Grammatica 1S ( S ) 2S [ S ] 3S

Dettagli

controllo stringa a a b a b b c c b a b x y z pila di memoria

controllo stringa a a b a b b c c b a b x y z pila di memoria Gli automi a pila Dagli automi finiti iti agli automi a pila Possiamo ottenere un automa a pila a partire da un automa finito (così come l abbiamo definito in precedenza), attraverso l introduzione di

Dettagli

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. Automi. Giacomo PISCITELLI

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. Automi. Giacomo PISCITELLI Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Automi Giacomo PISCITELLI Generalità sugli Automi Automi In informatica teorica e in matematica discreta,

Dettagli

Intorno al Lemma d Iterazione per Linguaggi Liberi dal Contesto

Intorno al Lemma d Iterazione per Linguaggi Liberi dal Contesto Intorno al Lemma d Iterazione per Linguaggi Liberi dal Contesto Gabriele Gullà Introduzione Nelle pagine che seguono tratterò, in forma sintetica e il più possibile autocontenuta, le principali proprietà

Dettagli

Automi a Pila e Grammatiche Libere dal Contesto. Automi a Pila e Grammatiche Libere dal Contesto

Automi a Pila e Grammatiche Libere dal Contesto. Automi a Pila e Grammatiche Libere dal Contesto utomi a Pila Un automa a pila (PDA) e una estensione degli automi a stati finiti, che ha una memoria (una pila) Vedremo due modi equivalenti per definire il linguaggio accettato da un PDA Vedremo che la

Dettagli

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora una classe piu ampia di linguaggi, i Linguaggi Liberi da Contesto (CFL) i CFL sono stati

Dettagli

Capitolo 2 Linguaggi e Grammatiche

Capitolo 2 Linguaggi e Grammatiche Università degli Studi di Bologna Scuola di Ingegneria e Architettura Capitolo 2 Linguaggi e Grammatiche Corso di Laurea Magistrale in Ingegneria Informatica Anno accademico 2014/2015 Prof. ENRICO DENTI

Dettagli

11. LINGUAGGI CONTEXT FREE

11. LINGUAGGI CONTEXT FREE 11. LINGUAGGI CONTEXT FREE Linguaggi di tipo 2, non contestuali, context free (CF) I linguaggi non contestuali o context free: - sono generati da grammatiche di tipo 2 - sono riconosciuti da automi a stati

Dettagli

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari roprieta dei Linguaggi Regolari Pumping Lemma. Ogni linguaggio regolare soddisfa una proprieta ben nota, il pumping lemma. Questa tecnica fornisce uno strumento utile per dimostrare che un linguaggio non

Dettagli

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR:

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR: Dispensa 2 2.1 Costruzione Parsing Table LR: generalità Come tutti i parser tabellari predittivi, anche i parser LR possono essere applicati solo a parsing table senza conflitti (ossia entrate multiple)

Dettagli

Costruzione di espressioni regolari 4

Costruzione di espressioni regolari 4 ostruzione di espressioni regolari 4 Indicando con d uno dei possibili digits {,, 2,,9} --possiamo esprimere il sotto linguaggio dei digits come d = ( + + 2 +.. + 9) Quale linguaggio produce l espressione:

Dettagli

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere

Dettagli

Espressività e limitazioni delle grammatiche regolari

Espressività e limitazioni delle grammatiche regolari Espressività e limitazioni delle grammatiche regolari Vantaggi: Le grammatiche regolari consentono di esprimere una significativa classe di linguaggi: linguaggi con un numero di sequenze infinito grazie

Dettagli

LINGUAGGI E GRAMMATICHE FORMALI

LINGUAGGI E GRAMMATICHE FORMALI LINGUAGGI E GRAMMATICHE FORMALI I LINGUAGGI IN INFORMATICA Presenti in tutte le applicazioni Fondamentali nel software di sistema Paradigmatici nella teoria molti importanti problemi teorici son riconducibili

Dettagli

Grammatiche context-free

Grammatiche context-free Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Grammatiche context-free Giacomo PISCITELLI Politecnico di Bari G. Piscitelli pag. 1 di 28 Grammatiche

Dettagli

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Grammatiche Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Esempio dei numeri interi Si consideri il linguaggio

Dettagli

Fondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da:

Fondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da: Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Automi Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università degli Studi di Milano

Dettagli

Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis

Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis Capitolo 2 Grammatiche e Linguaggi Si ringraziano il Prof. Giovanni Semeraro e il Dott. Pasquale Lops per la concessione del

Dettagli

Automi a pila. Automi a pila

Automi a pila. Automi a pila utomi a pila Un automa a pila (PDA) e in pratica un ǫ-nfa con una pila. In una transizione un PDA: 1 Consuma un simbolo di input. 2 Va in un nuovo stato (o rimane dove e ). 3 Rimpiazza il top della pila

Dettagli

Università degli Studi di Udine. 1 Automi e Linguaggi. Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni

Università degli Studi di Udine. 1 Automi e Linguaggi. Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni Università degli Studi di Udine Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni 1 Automi e Linguaggi 1. Sia dato p N, p > 0 dimostri che il linguaggio è regolare. L p = { a 0 a 1... a

Dettagli

(1) Linguaggio L = insieme di stringhe, sequenze finite di elementi del vocabolario

(1) Linguaggio L = insieme di stringhe, sequenze finite di elementi del vocabolario Luigi Rizzi Linguistica computazionale I. Elementi di base sulle grammatiche formali (1) Linguaggio L = insieme di stringhe, sequenze finite di elementi del vocabolario (2) Dato un vocabolario A, l insieme

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Dettagli

GRAMMATICHE LIBERE DAL CONTESTO

GRAMMATICHE LIBERE DAL CONTESTO GRAMMATICHE LIBERE DAL CONTESTO Una grammatica è, intuitivamente, un insieme di regole che permettono di generare un linguaggio. Un ruolo fondamentale tra le grammatiche è costituito dalle grammatiche

Dettagli

Macchine di TURING. Alan Mathison Turing ( )

Macchine di TURING. Alan Mathison Turing ( ) Macchine di TURING Alan Mathison Turing (1912 1954) Macchine di TURING Alan Mathison Turing (1912 1954) matematico, logico e crittanalista britannico, considerato uno dei padri dell informatica e uno dei

Dettagli

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 richiami teorici sulle grammatiche di Chomsky esercizivari esercizi su grammatiche ed espressioni regolari

Dettagli

albero sintattico parser scanner Errori sintattici

albero sintattico parser scanner Errori sintattici albero programma scanner tokens parser sintattico rrori sintattici Un parser deve riconoscere la struttura di una stringa di ingresso, la cui struttura è fornita in termini di regole di produzione di una

Dettagli

AUTOMI A PILA. M.P. Schutzenberger

AUTOMI A PILA. M.P. Schutzenberger UTOMI PIL Introdotti da. G. Oettinger in utomatic Syntactic nalysis and the pushdown store Proc. Symp. pplied Math., 1961 e da M.P. Schutzenberger in Context free languages and pushdown automata Information

Dettagli

MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI

MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI Un linguaggio di programmazione è uno strumento per esprimere algoritmi in una forma adatta allo loro esecuzione da parte di un elaboratore La formulazione

Dettagli

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4 Programmazione Lineare Intera Programmazione Lineare Intera p. 1/4 Programmazione Lineare Intera Problema di PLI in forma standard: max cx Ax = b x 0, x I n I insieme degli interi. Regione ammissibile:

Dettagli

Appunti sulla teoria degli automi, dei linguaggi e della calcolabilità

Appunti sulla teoria degli automi, dei linguaggi e della calcolabilità Appunti sulla teoria degli automi, dei linguaggi e della calcolabilità Marco Liverani Ottobre 2005 1 Introduzione Alla base dell Informatica, a fondamento della teoria su cui viene costruita la cosiddetta

Dettagli

Grammatiche e Linguaggi Context-Free

Grammatiche e Linguaggi Context-Free rammatiche e Linguaggi Context-Free Def.: Una rammatica =(N,Σ,P,S) e detta context-free se ogni produzione in P e del ( ). tipo A α, con A N ed " # N $ % I linguaggi generati da una grammatica context-free

Dettagli

Analisi sintattica. Analisi sintattica. albero. sintattico. parser. scanner. Errori sintattici

Analisi sintattica. Analisi sintattica. albero. sintattico. parser. scanner. Errori sintattici Analisi sintattica Analisi sintattica albero programma scanner tokens parser sintattico rrori sintattici Un parser deve riconoscere la struttura di una stringa di ingresso, la cui struttura è fornita in

Dettagli

Quiz sui linguaggi regolari

Quiz sui linguaggi regolari Fondamenti dell Informatica 1 semestre Quiz sui linguaggi regolari Prof. Giorgio Gambosi a.a. 2016-2017 Problema 1: Data l espressione regolare a, definita su {a, b}, descrivere il linguaggio corrispondente

Dettagli

Riconoscitori e analizzatori sintattici. Scanning e parsing. Funzionamento di un parser: la tecnica Shift/Reduce. Esempio

Riconoscitori e analizzatori sintattici. Scanning e parsing. Funzionamento di un parser: la tecnica Shift/Reduce. Esempio POLITECNICO I TORINO Laboratorio di Compilatori Corso di Linguaggi e Traduttori mail: stefano.scanzio@polito.it sito: Riconoscitori e analizzatori sintattici ata una grammatica non ambigua ed una sequenza

Dettagli

Traduttore diretto dalla sintassi (seconda parte) Giuseppe Morelli

Traduttore diretto dalla sintassi (seconda parte) Giuseppe Morelli Traduttore diretto dalla sintassi (seconda parte) Giuseppe Morelli Traduzione di linguaggi guidata da Grammatiche Context Free La traduzione diretta della sintassi avviene associando regole e/o frammenti

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Dettagli

Grammatiche Parse trees Lezione del 17/10/2012

Grammatiche Parse trees Lezione del 17/10/2012 Fondamenti di Programmazione A.A. 2012-2013 Grammatiche Parse trees Lezione del 17/10/2012 AUTILI MARCO http://www.di.univaq.it/marco.autili/ Riassunto lezione precedente Sintassi vs Semantica Stringhe,

Dettagli

Aniello Murano Automi e Pushdown

Aniello Murano Automi e Pushdown Aniello Murano Automi e Pushdown 2 Lezione n. Parole chiave: Automi e PDA Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Calcolabilità, complessità e macchine computazionali

Dettagli

Parole note, nuovi significati: linguaggio, determinismo e infinito

Parole note, nuovi significati: linguaggio, determinismo e infinito Parole note, nuovi significati: linguaggio, determinismo e infinito Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario Filosofico

Dettagli

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice l linguaggio universale Il linguaggio universale L u e l insieme delle stringhe binarie che codificano una coppia (M,w) dove w L(M). Esiste una TM U, detta TM universale, tale che L u = L(U). U ha tre

Dettagli

Grammatiche. Rosario Culmone, Luca Tesei. 20/11/2006 UNICAM - p. 1/49

Grammatiche. Rosario Culmone, Luca Tesei. 20/11/2006 UNICAM - p. 1/49 Grammatiche Rosario Culmone, Luca Tesei 20/11/2006 UNICAM - p. 1/49 Grammatiche libere dal contesto Ogni linguaggio di programmazione ha delle regole che prescrivono la struttura sintattica dei programmi

Dettagli

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE Cosimo Laneve 1 argomenti 1. linguaggi di programmazione 2. definizione formale di insiemi infiniti 3. la grammatica e la notazione BNF 4. notazioni alternative

Dettagli

Linguaggi regolari e automi a stati finiti

Linguaggi regolari e automi a stati finiti utomi a stati finiti Gli automi a stati finiti sono usati come modello per Software per la progettazione di circuiti digitali. Analizzatori lessicali di un compilatore. Ricerca di parole chiave in un file

Dettagli

10.2 EQUIVALENZA TRA ESPRESSIONI REGOLARI, GRAMMATICHE REGOLARI E AUTOMI

10.2 EQUIVALENZA TRA ESPRESSIONI REGOLARI, GRAMMATICHE REGOLARI E AUTOMI 10.2 EQUIVALENZA TRA ESPRESSIONI REGOLARI, GRAMMATICHE REGOLARI E AUTOMI Sono computazionalmente più potenti gli ASF o gli ASFND? In altre parole, se con L(ASF) indichiamo la classe dei linguaggi riconoscibili

Dettagli

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP Progamma sintetico Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP Un problema classico Un uomo viaggia con un lupo, una pecora

Dettagli

Analisi sintattica. Syntax Analysis. albero. sintattico. parser. scanner. Errori sintattici

Analisi sintattica. Syntax Analysis. albero. sintattico. parser. scanner. Errori sintattici Analisi sintattica Syntax Analysis albero programma scanner tokens parser sintattico rrori sintattici Un parser deve riconoscere la struttura di una stringa di ingresso, la cui struttura è fornita in termini

Dettagli

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2014/2015 Linguaggi formali e compilazione sul corso Sito web: http://algogroup.unimore.it/people/mauro/dida/2014-2015 / Ricevimento:

Dettagli

Linguaggi e Traduttori: Analisi sintattica

Linguaggi e Traduttori: Analisi sintattica Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova

Dettagli

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2015/2016 Linguaggi formali e compilazione sul corso Sito web: http://algogroup.unimore.it/people/mauro/dida/2015-2016 / Ricevimento:

Dettagli

L elaborazione del linguaggio naturale

L elaborazione del linguaggio naturale L elaborazione del linguaggio naturale fondamenti teorici dell intelligenza artificiale: la capacità di elaborare simboli è alla base del comportamento intelligente. L esempio di elaborazione simbolica

Dettagli

Proprieta dei Linguaggi regolari

Proprieta dei Linguaggi regolari Proprieta dei Linguaggi regolari Pumping Lemma. Ogni linguaggio regolare soddisfa il pumping lemma. Se qualcuno vi presenta un falso linguaggio regolare, l uso del pumping lemma mostrera una contraddizione.

Dettagli

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Agenda } Introdurremo } il formalismo delle Macchine di Turing nelle varie versioni } la nozione di calcolabilità e di decidibilità 2 La

Dettagli

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero. ANALISI SINTATTICA Data un linguaggio scrivere una grammatica che lo generi ESERCIZIO 1 Definire una grammatica per il linguaggio L = {ww w appartiene a (a, b)*} ESERCIZIO 2 Dato l alfabeto T=[0,1,2,3,4,5,6,7,8,9,/}

Dettagli

Espressioni Regolari

Espressioni Regolari Espressioni Regolari Le espressioni regolari sono costituite dalle stringhe sull alfabeto Σ = Σ {+,,*,(,),φ} ottenute secondo le seguenti regole: 1. φ e ciascun membro di Σ sono Epressioni Regolari 2.

Dettagli

Dispensa 1. Da un punto di vista logico l architettura di un compilatore si può suddividere in due parti: Analisi e Sintesi.

Dispensa 1. Da un punto di vista logico l architettura di un compilatore si può suddividere in due parti: Analisi e Sintesi. Dispensa 1 1. Introduzione ai compilatori Compilatore Un compilatore è un programma che legge un programma scritto in un linguaggio (sorgente) e lo traduce in un programma equivalente in un altro linguaggio

Dettagli

Un prefisso, un suffisso o una sottostringa di una stringa, quando non sono la stringa stessa, sono detti propri.

Un prefisso, un suffisso o una sottostringa di una stringa, quando non sono la stringa stessa, sono detti propri. SIMBOLI Un simbolo è un entità primitiva astratta non meglio definita. Per ciò che ci concerne, un simbolo è atomico: se anche avesse una struttura interna, noi non la osserviamo. Le uniche caratteristiche

Dettagli

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd Fondamenti d Informatica: linguaggi formali Barbara Re, Phd Agenda } Introdurremo } La nozione di linguaggio } Strumenti per definire un linguaggio } Espressioni Regolari 2 Linguaggio } Da un punto di

Dettagli

Dispense del corso di Linguaggi Formali e Automi

Dispense del corso di Linguaggi Formali e Automi Dispense del corso di Linguaggi Formali e Automi Marco Alfieri, Matteo Bianchi, Grazia D Aversa, Andrea Fumagalli, Emanuele Mornini, Dario Villa, Massimo Vitali 8 settembre 2002 Appunti tratti dalle lezioni

Dettagli

Informatica e Comunicazione Digitale Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione

Informatica e Comunicazione Digitale Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione Principali informazioni sull insegnamento Titolo insegnamento Linguaggi di Programmazione Corso di studio Informatica e Comunicazione Digitale Crediti formativi 9 Denominazione inglese Programming Languages

Dettagli

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. I linguaggi formali. Giacomo PISCITELLI

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. I linguaggi formali. Giacomo PISCITELLI Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2011-2012 Linguaggi Formali e Compilatori I linguaggi formali Giacomo PISCITELLI Traduttori Un traduttore è un programma che effettua la traduzione

Dettagli

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE Ivan Lanese argomenti Grammatiche BNF Varianti: BNF + ε EBNF Remind: cos è una grammatica Una grammatica è uno strumento linguistico per definire insiemi di

Dettagli

Logica proposizionale

Logica proposizionale Logica proposizionale Proposizione: frase compiuta che è sempre o vera o falsa. Connettivi Posti in ordine di precedenza: not, and, or, implica, doppia implicazione Sintassi Le proposizioni sono costituite

Dettagli

Università degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java

Università degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java Università degli studi Roma Tre Linguaggi: Sintassi e Semantica Il A cura di A. Orlandini 1 Obiettivi Distinguere la sintassi dalla semantica di un linguaggio Conoscere le convenzioni del meta-linguaggio

Dettagli

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli

Dettagli

9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY

9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY 9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY Linguaggi e informatica @ Presenti in tutte le applicazioni e in tutte le fasi di uso di un computer: linguaggi di specifica, di programmazione, di scripting

Dettagli

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione Problemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa uello che ci aspettiamo. E facile vedere che il programma Ma il programma in Fig. 8.2 del libro?

Dettagli

Nozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi

Nozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi Nozioni Preliminari e Terminologia Alfabeti Stringhe Linguaggi Insiemi Def. Un insieme è una collezione non ordinata di oggetti o elementi Gli insiemi sono scritti tra { } Gli elementi sono inseriti tra

Dettagli

Definire tramite una grammatica ad attributi il

Definire tramite una grammatica ad attributi il 1 ESERCIZI ESERCIZIO 1 Definire tramite una grammatica ad attributi il linguaggio L = {a n b n c n n 0} Implementare un analizzatore sintattico/ semantico a discesa ricorsiva Costruire le tabelle di analisi

Dettagli

Esercizi di logica. Ivan Valbusa 5 dicembre 2012

Esercizi di logica. Ivan Valbusa 5 dicembre 2012 Esercizi di logica Ivan Valbusa 5 dicembre 2012 Gli esercizi proposti di seguito coprono solo una piccola parte del programma del corso. Sono mediamente più difficili di quelli presenti sul manuale di

Dettagli

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari Esercizi di Fondamenti di Informatica per la sicurezza tefano Ferrari 23 dicembre 2003 2 Argomento 1 Grammatiche e linguaggi Esercizi Es. 1.1 Definiti i linguaggi: L 1 = {aa, ab, bc, c} L 2 = {1, 22, 31}

Dettagli

Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità

Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità Eserciziario per il corso di Verona, Settembre 24 Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità Dott.ssa Isabella Mastroeni Dipartimento di Informatica Università degli Studi di Verona

Dettagli

GRAMMATICA FORMALE. Albero sintattico

GRAMMATICA FORMALE. Albero sintattico GRAMMATICA FORMALE Una quadrupla VT,VN,P,S dove: VT è un insieme finito di simboli terminali VN è un insieme finito di simboli non terminali Pè uninsieme finito di produzioni, ossiadi regole di riscrittura

Dettagli