RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI"

Transcript

1 PARTE I RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI Linguaggi regolari Linguaggi non contestuali Automi 1

2 1.1 I LINGUAGGI IN Presenti a vari livelli di applicazione linguaggi di programmazione linguaggi di script linguaggi di marcatura protocolli di comunicazione sequenze di operazioni interazione uomo macchina 2

3 @ Fondamentali nel software di sistema compilatori interpreti tools per la generazione di analizzatori lessicali e sintattici (Lex, YACC, GNU Bison, Luthorj, Saxj ecc.; più in generale: compiler Paradigmatici nella teoria molti importanti problemi teorici sono riconducibili a quello dell'appartenenza di una stringa a un linguaggio un ruolo importante in informatica teorica hanno i metodi di descrizione di linguaggi 3

4 Metodi di descrizione di linguaggi Approccio generativo: i linguaggi possono essere definiti mediante formalismi (metalinguaggi) che specificano la struttura sintattica delle loro stringhe. Esempi di metalinguaggi Grammatiche di Chomsky Forma di Backus Naur (BNF) Linguaggi di marcatura (HTML, XML) 4

5 Approccio riconoscitivo: un linguaggio può essere definito mediante macchine astratte (automi) o algoritmi che accettano le stringhe che ne fanno parte e rifiutano quelle che non ne fanno parte. Esempi Automi a stati finiti Analizzatori lessicali (scanner) Automi a pila Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere definito mediante una espressione algebrica che specifica come esso è costruito a partire da linguaggi elementari. Esempio Espressioni regolari (vedi anche Lex o Luthorj) 5

6 ESPRESSIONI REGOLARI Def. Dato un alfabeto Σ, chiamiamo espressione regolare una stringa r che utilizza i simboli dell alfabeto stesso e i simboli Ø, +,., *, (, ) e che rispetta le seguenti strutture: 1. r = Ø oppure 2. r Σ oppure 3. r= (s+t) oppure r= (s.t) oppure r=s*, con s e t espressioni regolari 6

7 espressione linguaggio Ø Λ a {a} a Σ (s+t) L(s) L(t) dove s, t sono e.r. (s.t) L(s) L(t) s* L(s)* Esempio: (a* + ((a.a). b*)) 7

8 Per semplificare la scrittura delle espressioni regolari possiamo sfruttare: eliminazione del simbolo della concatenazione, cioé (st) anziché (s.t) precedenze tra operatori: * >. > + Esempi. (a+b)* rappresenta il linguaggio L=({a} {b})* cioe il linguaggio costituito da stringhe di a e di b di lunghezza qualunque (inclusa la stringa vuota, cioè la stringa di lunghezza zero). 8

9 (a+b)*a rappresenta il linguaggio L={x x ({a} {b})* "x termina con a"} cioè stringhe arbitrarie di a e di b che terminano con il carattere a. (a* + ((a.a). b*)) = a* + aab* cioè il linguaggio il linguaggio costituito da sequenze di un numero arbitrario (anche nullo) di a oppure sequenze costituite da due a iniziali seguite da un numero arbitrario (anche nullo) di b. 9

10 1.2 GRAMMATICHE FORMALI Metodo di costruzione delle stringhe del linguaggio basato sul concetto di riscrittura (nato nel contesto di studi di algebra e di logica formale) Axel Thue studia i primi problemi di riscrittura Emil Post definisce sistemi di produzione (lavori del 1920) A.A. Markov definisce algoritmi basati su regole di riscrittura N. Chomsky introduce le grammatiche formali nell'ambito degli studi sul linguaggio naturale J. W. Backus e P. Naur introducono la BNF per descrivere la sintassi del linguaggio Algol. 10

11 Le Grammatiche di Chomsky Def. Una grammatica formale G = <VT,VN,P,S> è caratterizzata da: VT (Σ) alfabeto finito di simboli detti terminali, VN alfabeto di simboli non terminali (variabili, categorie sintattiche), P, detto insieme di produzioni, è una relazione binaria: α e β sono stringhe di terminali o non terminali α contiene almeno un non terminale <α,β> P si indica con α β S VN e' detto assioma. 11

12 Le grammatiche di Chomsky costituiscono un metalinguaggio poiché ogni grammatica descrive un linguaggio (il linguaggio che può essere generato in base alle sue regole) Def. Il linguaggio generato da una grammatica è l'insieme delle stringhe di terminali ottenibili con una sequenza finita di passi di riscrittura consistenti nell'applicazione delle regole di produzione 12

13 Più formalmente: Def. Derivazione diretta: relazione su (V* VN V*) V* <φ,ψ> appartiene alla relazione se α V* VN V* e β,γ,δ V* tali cheφ = γαδ ψ = γβδ e α β P In tal caso si scrive φ ψ. Def. Derivazione: chiusura riflessiva e transitiva della derivazione diretta, si rappresenta con *. Def. Data una grammatica G = <{a,b},{s,b,c},p,s>, una forma di frase è una qualunque stringa x tale che x V*e S *x. 13

14 Il linguaggio generato da G e' l'insieme di particolari forme di frase: Def. Il linguaggio generato da G è L(G) = {x x VT * S *x} Def. Due grammatiche G1 e G2 si dicono equivalenti se L(G1) = L(G2). 14

15 Esempio. La grammatica G=<{a,b,c},{S,A,B,C},P,S> con le produzioni: 1 S asbc 2 S abc 3 CB BC 4 ab ab 5 bb bb 6 bc bc 7 cc cc genera il linguaggio {anbncn n 1} 15

16 Per generare 'aaabbbccc' si effettua la seguente derivazione (la stringa che viene riscritta è sottolineata, il numero rappresenta la produzione applicata): S (1) asbc (1) aasbcbc (2) aaabcbcbc (3) aaabcbbcc (3) aaabbcbcc (3) aaabbbccc (4) aaabbbccc (5) aaabbbccc (5) aaabbbccc (6) aaabbbccc (7) aaabbbccc (7) aaabbbccc 16

17 1.3 CLASSI DI GRAMMATICHE DI CHOMSKY E CLASSI DI LINGUAGGI di tipo 0, non limitate di tipo 1, contestuali (context sensitive: CS) di tipo 2, non contestuali (context free: CF), di tipo 3, regolari 17

18 Def. Le grammatiche di Chomsky di tipo 0, sono basate sulle produzioni piu' generali, del tipo: α β, α V* VN V*, β V* NOTA BENE. Le grammatiche di tipo 0 ammettono anche derivazioni che accorciano stringhe. Def. I linguaggi di tipo 0 sono i linguaggi generati da grammatiche di tipo 0. Def. Le grammatiche di Chomsky di tipo 1, (dette context sensitive o contestuali) sono basate su produzioni del tipo: α β, α V* VN V*, β V + con α β 18

19 Def. I linguaggi di tipo 1 (context sensitive o contestuali) sono i linguaggi generati da grammatiche di tipo 1. Def. Le grammatiche di Chomsky di tipo 2, (dette context free o non contestuali) sono basate su produzioni del tipo: A β, A VN, β V + Def. I linguaggi di tipo 2 (context free o non contestuali) sono i linguaggi generati da grammatiche di tipo 2. 19

20 Esempio. Generazione di espressioni aritmetiche con la variabile i, assioma E E E+T T T T * F F F i (E) Esempio. Grammatica delle parentesi ben bilanciate: S () S SS S (S) 20

21 Perche' le grammatiche di tipo 1 sono chiamate contestuali e quelle di tipo 2 non contestuali? Nell'originaria formulazione data da Chomsky le grammatiche di tipo 1 sono definite come quelle grammatiche le cui produzioni hanno la forma: α γ con α=φ1αφ2 e γ=φ1βφ2, e con Α VN, φ1,φ2 V*, β V + Quindi, se φ1 1 o φ2 1, la produzione esprime il fatto che il non termina A viene rimpiazzato dalla stringa β solo se appare nel contesto delle stringhe φ1 e φ2. Per tale motivo quelle produzioni (e le relative grammatiche) sono chiamate "contestuali". 21

22 Esempio. Le produzioni ab ab, bb bb, bc bc, cc cc della grammatica per il linguaggio {anbncn n 1} sono contestuali secondo Chomsky. 22

23 Teorema. Le grammatiche di tipo 1 e le grammatiche contestuali secondo Chomsky consentono di generare la stessa classe di linguaggi. Dim. i) Le produzioni contestuali di Chomsky sono di tipo 1. ii) Le produzioni di tipo 1 possono essere facilmente trasformate in produzion contestuali di Chomsky. (Esercizio) Ad esempio la produzione CB BC puo' essere trasformata nella sequenza d produzioni (contestuali secondo Chomsky): CB CX CX BX BX BC 23

24 NOTA BENE. Le produzioni di tipo 2 corrispondono al caso particolare in c sia φ1 che φ2 sono stringhe vuote. Tali produzioni consentono dunque di rimpiazzare un nonterminale con una stringa di caratteri, indipendentemente dal contesto in cui esso si trova. Per tale motivo esse (e le relative grammatiche) si chiamano "non contestuali". 24

25 Def. Le grammatiche di Chomsky di tipo 3, (dette regolari) sono basate su produzioni del tipo: con A, B VN, a VT A ab oppure A a, Def. I linguaggi di tipo 3 (regolari) sono i linguaggi generati da grammatiche tipo 3. Esempio. Il linguaggio {anb n 0} e' di tipo 3 in quanto e' generato dalla grammatica con le produzioni: S as S b 25

26 Le grammatiche di tipo 3 sono chiamate anche lineari destre (LD). Le grammatiche di tipo 3 vengono chiamate lineari perche' nel lato destro di ogni produzione compare al piu' un solo non terminale (variabile); inoltre vengono chiamate lineari destre perché il non terminale compare a destra del terminale. Si possono anche definire grammatiche lineari sinistre (LS) con produzioni d tipo: con A, B VN, a VT A Ba oppure A a, 26

27 Esempio. Il linguaggio {anb n 0} puo' essere anche generato da una grammatica lineare sinistra con le seguenti produzioni: S Tb b T Ta a Teorema. Le classi di linguaggi generabili con grammatiche LD e LS coincidono. 27

28 Def. Un linguaggio e' strettamente di Tipo n se esiste una grammatica di tipo che lo genera e non esiste nessuna grammatica di tipo m>n che lo genera. Esempi. Il linguaggio {anbn n 1} e' generato da una grammatica di tipo 2 e non e' generabile con nessuna grammatica di tipo 3. Il linguaggio {anbncn n 1} e' generato da una grammatica di tipo 1 e non e' generabile con nessuna grammatica di tipo 2 o di tipo 3. NOTA BENE. La dimostrazione dei suddetti risultati e basata sui noti pumping lemma basati sulle proprietà strutturali dei linguaggi di vario tipo. Per mostrare linguaggi strettamente di tipo 0 è necessario introdurre ulteriori concetti. 28

29 1.4 LINGUAGGI LINEARI I linguaggi lineari sono quei linguaggi CF generati da grammatiche lineari, in cui, cioe', la parte destra di ogni produzione contiene al piu' un non terminale Le grammatiche di tipo 3 sono lineari; come si e' detto, in particolare, lineari destre (LD). Esempio. La grammatica seguente, che genera {ancbn n 0} e' lineare: S asb c Si noti che tale linguaggio e' strettamente CF. I linguaggi lineari sono un sottoinsieme dei linguaggi CF (ad esempio il linguaggio delle parentesi ben bilanciate non è un linguaggio lineare) e un soprainsieme di quelli regolari. NOTA BENE: Fondendo produzioni lineari destre e lineari sinistre si possono generare linguaggi non regolari. 29

30 1.5 RICONOSCIMENTO DI LINGUAGGI Dato un linguaggio L, il problema del riconoscimento di L e' il problema decisionale seguente: data una stringa x, stabilire se essa appartiene ad L. Tal problema e' noto anche come problema dell'appartenenza (membership). I linguaggi di tipo 3 sono riconosciuti in tempo lineare da dispositivi con memoria costante (automi a stati finiti). I linguaggi di tipo 2 sono riconosciuti in tempo lineare da dispositivi nondeterministici dotati di una memoria gestita come una pila (automi a pila non deterministici). 30

31 I linguaggi di tipo 1 sono riconosciuti da dispositivi nondeterministici con memoria che cresce linearmente con la lunghezza della stringa da esaminare: automi non deterministici lineari (linear bounded automata). Per alcuni linguaggi strettamente di tipo 0 e' possibile che non esista un algoritmo di decisione ma esiste comunque un processo semidecisionale, in cui, se la stringa fa parte del linguaggio essa viene riconosciuta ma se non fa parte del linguaggio non e' detto che la computazione termini. I dispositivi ch consentono di riconoscere o di attuare un procedimento di semidecisione per linguaggi di tipo 0 sono le macchine di Turing. In generale non e' possibile stabilire un limite alle quantita' di risorsa tempo o memoria che si rende necessario per riconoscere un linguaggio di tipo 0. 31

32 1. 6 LINGUAGGI REGOLARI E AUTOMI A STATI FINITI I linguaggi regolari: sono generabili con grammatiche di tipo 3 coincidono con i linguaggi definibili con espressioni regolari coincidono con i linguaggi riconoscibili con automi a stati finiti deterministici o non deterministici 32

33 AUTOMI A STATI FINITI (ASF) nastro di input unidirezionale a 1 a 2 a n testina di lettura meccanismo di controllo schema di automa a stati finiti 33

34 Def. Automa a stati finiti (ASF): Σ = {σ 1,...,σ n } alfabeto di input A=<Σ,K,δ,q 0,F> K = {q 0,...,q n } insieme finito non vuoto di stati K F insieme di stati finali q 0 K stato iniziale δ : K Σ K funzione di transizione, funzione totale che determina lo stato successivo 34

35 Def. Funzione di transizione estesa alle stringhe: δ : K Σ* K δ(q,ε) = q δ(q,ax) = δ(δ(q,a),x), con x Σ* e a Σ Def. Linguaggio riconosciuto da un automa A: L(A) = { x Σ* δ(q0,x) F} 35

36 Esempio. Dato il linguaggio {anb n 0} generato da S as b, l'automa che lo riconosce e' l'automa <{a,b}, {q0,q1,q2}, δ, q0, {q1}> δ a b q0 q0 q1 q1 q2 q2 q2 q2 q2 36

37 37

38 Nei compiler compiler e nei generatori di analizzatori lessicali (Lex, Luthorj) si utilizzano tutti i diversi formalismi di definizione dei linguaggi regolari. Definiamo il linguaggio per cui vogliamo costruire l analizzatore lessicale mediante una espressione regolare. Il generatore prende in input l espressione regolare e: - costruisce l automa a stati finiti non deterministico corrispondente - lo trasforma in automa a stati finiti deterministico - fornisce come output il programma di analisi lessicale (scanner) per il linguaggio dato. 38

39 1.7 LINGUAGGI NON CONTESTUALI ED AUTOMI A PILA I linguaggi non contestuali (context free): sono generabili con grammatiche di tipo 2 coincidono con i linguaggi riconoscibili con automi a pila non deterministici alcune loro sottoclassi sono sufficientemente ampie da consentire di descrivere linguaggi di programmazione e al tempo stesso sufficientemente ristrette da consentire la costruzione di analizzatori sintattici (parser) che operano in tempo lineare 39

40 Forme normali per i linguaggi non contestuali Forma ridotta: grammatiche - prive di ε-produzioni, - prive di produzioni unitarie, - prive di produzioni che contengono simboli inutili (cioè simboli non generabili partendo dall assioma o simboli non fecondi, dai quali non si generano stringhe di soli terminali). 40

41 Forma normale di Chomsky: grammatiche di tipo 2 le cui produzioni sono del tipo Α ΒC con Α, Β, C VN o del tipo Α a con a Σ Forma normale di Greibach: grammatiche di tipo 2 le cui produzioni sono del tipo Α a β con a Σ, β V* 41

42 I linguaggi non contestuali sono tutti e soli i linguaggi che vengono riconosciuti da un automa a pila non deterministico (o automa "pushdown", PDA) Def. Automa a pila non deterministico (PDA) M=<Σ,Γ,Z 0,Q,q 0,F,δ> Σ alfabeto di input Γ alfabeto dei simboli della pila Z 0 Γ simbolo di pila iniziale Q insieme finito di stati q 0 Q stato iniziale Q F insieme di stati finali δ : Q (Σ {ε}) Γ P(Q Γ*) funzione di transizione 42

43 Se abbiamo una regola di transizione δ(q i,a,a)={(q j,ba),(q h,ε)} essa significa che se nello stato interno q i, leggiamo a sul nastro ed A e' il simbolo affiorante sulla pila, si realizzano, non deterministicamente, due transizioni; la prima sostituisce il simbolo affiorante sulla pila con la stringa di caratteri BA e si porta nel nuovo stato interno q j, la seconda sostituisce il simbolo affiorante sulla pila con la stringa vuota ε, in altre parole cancella A dalla pila, e si porta nel nuovo stato interno q h. NOTA BENE. La testina sul nastro di ingresso può anche non spostarsi. Questa situazione è espressa dicendo che la testina legge ε sul nastro di ingresso. Convenzione: se metto BA in pila, B è il nuovo simbolo affiorante. 43

44 Esempio. Automa a pila M che riconosce anbn M = <{a,b},{z 0,A 0,A},Z 0,{q 0,q 1,q 2 },q 0,{q 2},δ> - il simbolo A serve a ricordare la presenza delle a - nello stato q 0 si memorizzano le a, nello stato q 1 si confrontano le b con cio' che si e' memorizzato, lo stato q 2 e' lo stato finale. NOTA BENE. In questo caso l'automa ha un comportamento deterministico 44

45 Z 0 A 0 A a b a b a b q 0 A 0 AA 0 A 0 AA ε q 0 q 0 q q0 2 q 1 q 1 A 0 ε q 1 q 2 q 2 45

46 Def. Configurazione di automa a pila: tripla <q,x,γ> con q Q stato interno, x Σ* stringa da leggere in input e γ Γ* stringa attualmente in pila relazione di transizione per automa a pila: relazione binaria sulle configurazioni <q,x,γ> <q',x',γ'> significa che: ((x=ax' γ=zη γ'=ζη <q',ζ> δ(q,a,z)) (x=x' γ=zη γ'=ζη <q',ζ> δ(q,ε,z))) computazione: chiusura transitiva e riflessiva di, indicata con * 46

47 Def. Linguaggio accettato dall'automa a pila: due definizioni alternative accettazione per pila vuota: una stringa è accettata da un automa a pila M se e solo se al termine della scansione della stringa la pila è vuota N(M) = {x <q0,x,z0> *<q,ε,ε>} accettazione per stato finale: una stringa è accettata da un automa a pila M se e solo se al termine della scansione della stringa M si trova in uno stato finale L(M) = {x <q0,x,z0> *<q,ε,γ>,q F,γ Γ*} 47

48 NOTA BENE. Si può dimostrare che le due definizioni sono equivalenti. Teorema. Se L(G) è non contestuale esiste un automa a pila M tale che L(G)=N(M) Dim. Sia G=<Σ,VN,P,S> tale che ε L(G) e supponiamo G in GNF. In questo caso il PDA ha un solo stato e i non terminali della grammatica possono essere usati come simboli di pila. Costruiamo M=<Σ,Γ,Z 0,Q,q 0,F,δ> Γ=VN, Z 0 =S, Q={q}, q 0 =q, F= Per ogni A aγ con γ V N * abbiamo che <q,γ> δ(q,a,a) 48

49 Esempio: il linguaggio { wwr w (a+b)+} è generabile con la seguente grammatica in forma di Greibach: S asa bsb aa bb A a B b Ed è riconoscibile (per pila vuota) con il seguente automa a pila: q S A B a b a b a b SA, q SB, q ε, q ε, q A, q B, q 49

50 Per consentire un efficiente e corretta analisi sintattica i linguaggi di programmazione devono essere linguaggi CF - non ambigui (ogni stringa deve essere generabile con un solo albero di derivazione) - analizzabili in modo deterministico in tempo lineare (linguaggi LL(k), LR(K), LALR(k) ecc.) 50

51 Proprietà decidibili per i linguaggi regolari e CF: - L è vuoto, L è finito, L è infinito - due automi a stati finiti dati sono equivalenti - due grammatiche CF deterministiche date sono equivalenti Proprietà non decidibili: - una grammatica CF è ambigua - un linguaggio CF è ambiguo (tutte le sue grammatiche lo sono) - due grammatiche CF (non deterministiche) date sono equivalenti - l intersezione di due linguaggi CF è vuota, ecc. 51

10. LINGUAGGI REGOLARI

10. LINGUAGGI REGOLARI 10. LINGUAGGI REGOLARI I linguaggi regolari: Sono i linguaggi generati da grammatiche di Chomsky di tipo 3. Vari elementi sintattici di base dei linguaggi di programmazione sono regolari (es. identificatori)

Dettagli

Fondamenti d Informatica: Grammatiche. Barbara Re, Phd

Fondamenti d Informatica: Grammatiche. Barbara Re, Phd Fondamenti d Informatica: Grammatiche Barbara Re, Phd Grammatiche } Con il termine grammatica s intende } Un formalismo che permette di definire un insieme di stringhe mediante l imposizione di un particolare

Dettagli

Programmazione Teoria dei linguaggi formali

Programmazione Teoria dei linguaggi formali Programmazione Teoria dei linguaggi formali Rosario Culmone rosario.culmone@unicam.it 18/11/2009 UNICAM - p. 1/42 Linguaggi Definizione di grammatica di Chomsky Derivazione di stringhe e generazione di

Dettagli

Informatica e Laboratorio di Programmazione Automi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Informatica e Laboratorio di Programmazione Automi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione Informatica e Laboratorio di Programmazione Automi Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione automa o automa: macchina astratta o realizza un certo algoritmo, secondo

Dettagli

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

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

Linguaggi e grammatiche

Linguaggi e grammatiche Linguaggi e grammatiche Corso di Fondamenti di Informatica - 1 modulo Corso di Laurea in Informatica Università di Roma Tor Vergata a.a. 2017-2018 Prof. Giorgio Gambosi Alfabeti e linguaggi Alfabeto Un

Dettagli

Esercizi di Informatica Teorica

Esercizi di Informatica Teorica Esercizi di Informatica Teorica Linguaggi non contestuali: automi a pila 1 Automa a pila richiami un automa a pila non deterministico è una settupla: A = dove èl alfabeto (finito)

Dettagli

Parte n.7 Automi a Pila e Grammatiche Libere

Parte n.7 Automi a Pila e Grammatiche Libere Linguaggi di Programmazione Corso C Parte n.7 Automi a Pila e Grammatiche Libere Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Automi a Pila Per il teorema

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

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

Backus Naur Form. Paolo Bison. Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova. BNF, Paolo Bison, A.A ,

Backus Naur Form. Paolo Bison. Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova. BNF, Paolo Bison, A.A , p.1/19 Backus Naur Form Paolo Bison Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova Linguaggio di programmazione p.2/19 strumento linguistico per scrivere una sequenza di istruzioni (programma)

Dettagli

Linguaggi regolari e automi a stati finiti

Linguaggi regolari e automi a stati finiti Linguaggi regolari e automi a stati finiti Argomenti della lezione Linguaggi regolari e automi a stati finiti Automi a stati finiti non deterministici Relazione tra automi deterministici e non deterministici

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

Quiz sui linguaggi CF

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

Dettagli

AUTOMI A STATI FINITI

AUTOMI A STATI FINITI AUTOMI A STATI FINITI I linguaggi regolari godono di interessanti proprietà algebriche: Sono defnibili con le espressioni regolari Sono generati da grammatiche di Chomsky di tipo 3. Sono riconoscibili

Dettagli

LINGUAGGI CONTEXT FREE. Lezione Lezione

LINGUAGGI CONTEXT FREE. Lezione Lezione LINGUAGGI CONTEXT FREE Lezione 25-11-2010 Lezione 30-11-2010 2 INTRODUZIONE GERARCHIA DI CHOMSKY 3 4 DEFINIZIONE DEI LINGUAGGI CONTEXT FREE LINGUAGGI CF I linguaggi di tipo 2 sono detti context free (CF)

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

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 automi a pila automi a pila e grammatiche non contestuali notazioni sul livello degli esercizi:(*)facile,

Dettagli

Linguaggi di Programmazione Corso C. Parte n.2 Introduzione ai Linguaggi Formali. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.2 Introduzione ai Linguaggi Formali. Nicola Fanizzi Linguaggi di Programmazione Corso C Parte n.2 Introduzione ai Linguaggi Formali Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Definizioni Preliminari Un

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 FORMALI. Introduzione

LINGUAGGI FORMALI. Introduzione LINUAI FORMALI Introduzione Alfabeto : un qualunque insieme di simboli. (Tratteremo solo alfabeti finiti). Esempio: {a,b,c,,,x,w,y,z} {0.1.2.3.4.5.6.7.8.9} {0,1} Stringa (su un alfabeto) : una sequenza

Dettagli

Linguaggio Formale 2

Linguaggio Formale 2 Linguaggio Formale 2 Ex: Per generare il linguaggio L(G 1 ) = {a n b n c n } si può usare la grammatica G 1 = < {A,B,C}, {a,b,c}, P, A > Con regole di produzione P: 1. A abc 2. A abbc 3. Bb bb 4. Bc Cbcc

Dettagli

Fondamenti d Informatica: Simulazione d esame. Barbara Re, Phd

Fondamenti d Informatica: Simulazione d esame. Barbara Re, Phd Fondamenti d Informatica: Simulazione d esame Barbara Re, Phd 2 Parte teorica (1 punto per ogni domanda) Domande Parte Teorica } Che cosa s intende per teoria della computabilità? Cosa è computabile? Chi

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

Introduzione al corso

Introduzione al corso Introduzione al corso Argomenti della lezione Obiettivi e programma del corso Alfabeti, stringhe, linguaggi Operazioni su linguaggi Espressioni regolari Per studiare le proprietà fondamentali di algoritmi,

Dettagli

ESERCITAZIONE II. Linguaggi Context Free

ESERCITAZIONE II. Linguaggi Context Free ESERCITAZIONE II Linguaggi Context Free 2 INTRODUZIONE 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

Dettagli

Non determinismo e grammatiche. Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano

Non determinismo e grammatiche. Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano Non determinismo e grammatiche Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano Modelli non deterministici - Macchine Automa a stati niti non deterministico (AFN) A =

Dettagli

Fondamenti di Informatica. per la Sicurezza. a.a. 2003/04. Grammatiche. Stefano Ferrari

Fondamenti di Informatica. per la Sicurezza. a.a. 2003/04. Grammatiche. Stefano Ferrari Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Grammatiche Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università degli Studi

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

Automi a stati finiti

Automi a stati finiti Automi a stati finiti Definizioni preliminari Il modello: la definizione formale, esempi. Le definizioni utili per descrivere e provare proprietà degli automi: diagramma degli stati, configurazioni, relazione

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

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

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

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

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

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

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

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello AN - 1995 Linguaggi di alto livello AN - 1995 Evoluzione dei

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

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

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

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi. Linguaggi Liberi da Contesto (CFL) sono stati usati nello

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

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

Linguaggi di Programmazione Corso C. Parte n.6 Linguaggi Regolari ed Espressioni Regolari. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.6 Linguaggi Regolari ed Espressioni Regolari. Nicola Fanizzi Linguaggi di Programmazione Corso C Parte n.6 Linguaggi Regolari ed Espressioni Regolari Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Linguaggi Regolari

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

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

non è lineare destro. (PUNTI 15)

non è lineare destro. (PUNTI 15) 6 Giugno 2005 (h.1.00) 1) Dimostrare formalmente che il seguente linguaggio: L = {a i b j c k : k = i+ j, i, j, k 0} non è lineare destro. 2) Progettare, commentando opportunamente, l automa a stati finiti

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

Automi a stati finiti

Automi a stati finiti Automi a stati finiti Il modello: la definizione formale, esempi. Le definizioni utili per descrivere e provare proprietà degli automi: configurazioni, relazione porta a e relative definizioni di linguaggio

Dettagli

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi Linguaggi Liberi da Contesto (CFL) sono stati usati nello

Dettagli

Aumentare il potere degli FSA

Aumentare il potere degli FSA PDA 1 Aumentare il potere degli FSA Punto di vista meccanico Nastro d ingresso Dispositivo di controllo a stati finiti Nastro d uscita PDA 2 Ora arricchiamolo a Nastro d ingresso Memoria a pila (stack)

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. Determinismo vs Non determinismo. Potere espressivo

Linguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle Tutti i linguaggi che possono essere

Dettagli

Grammatiche e Linguaggi Liberi da Contesto

Grammatiche e Linguaggi Liberi da Contesto Grammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi più grandi di linguaggi. I Linguaggi Liberi da Contesto (CFL) sono stati usati

Dettagli

Analisi Sintattica. Maria Rita Di Berardini. Universitá di Camerino Ruolo del parser

Analisi Sintattica. Maria Rita Di Berardini. Universitá di Camerino Ruolo del parser Ruolo del parser Analisi 1 1 Dipartimento di Matematica e Informatica Universitá di Camerino mariarita.diberardini@unicam.it Ruolo del parser Ruolo dell analisi sintattica Ruolo del parser Metodologie

Dettagli

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI ESEMPIO

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI ESEMPIO 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

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

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

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal

Dettagli

Automi a pila. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017

Automi a pila. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017 Automi a pila Dipartimento di Elettronica e Informazione Politecnico di Milano 17 marzo 2017 Aumentiamo la potenza di un FSA Descrizione operativa dei limiti Un FSA ha un Organo di Controllo (OC) con memoria

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic

Dettagli

Un messaggio di posta elettronica è costituito da una testata e da un corpo La testata contiene indirizzo,.

Un messaggio di posta elettronica è costituito da una testata e da un corpo La testata contiene indirizzo,. 1 Grammatiche Gli automi sono un modello riconoscitivo/traduttivo/elaborativo (di linguaggi): essi ricevono una stringa nel loro ingresso e la elaborano in vari modi Passiamo ora ad esaminare un modello

Dettagli

Fondamenti dell Informatica

Fondamenti dell Informatica Fondamenti dell Informatica Compito scritto 28 settembre 2005 Cognome: Nome: Matricola: Note 1. Per i quiz a risposta multipla, fare una croce sulla/e lettera/e che identifica/no la/e risposta/e desiderata/e.

Dettagli

Algoritmi e Principi dell'informatica

Algoritmi e Principi dell'informatica Algoritmi e Principi dell'informatica Alessio Massetti 15 Novembre 2011 Contents 1 Linguaggi 3 1.1 Tipi di linguaggi............................ 3 1.1.1 Linguaggio regolare...................... 3 1.1.2

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

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

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

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

Linguaggi di Programmazione e Compilatori

Linguaggi di Programmazione e Compilatori Maria Rita Di Berardini Linguaggi di Programmazione e Compilatori Raccolta Esercizi 10 giugno 2009 Università di Camerino Dipartimenento di Matematica e Informatica Indice 1 Analisi Lessicale...........................................

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

Fondamenti teorici e programmazione

Fondamenti teorici e programmazione Fondamenti teorici e programmazione FTP(A) - modb Lezione 16 Grammatiche Libere da Contesto Alberi di derivazione sintattica Linguaggio generato F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione

Dettagli

Fondamenti dell Informatica a.a. 2013/14 Prova scritta 30 luglio 2014

Fondamenti dell Informatica a.a. 2013/14 Prova scritta 30 luglio 2014 Fondamenti dell Informatica a.a. 2013/14 Prova scritta 30 luglio 2014 Il compito è diviso in due parti come i compitini: 1) Automi e Linguaggi e 2) Macchine di Turing e Calcolabilità. Si può consegnare

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 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

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

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

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

Limiti della calcolabilità

Limiti della calcolabilità Limiti della calcolabilità Argomenti della lezione Macchina di Turing universale Il problema della terminazione Altri problemi indecidibili Macchine di Turing in forma ridotta Per ogni MT M esiste una

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

Grammatiche libere da contesto. Grammatiche libere da contesto

Grammatiche libere da contesto. Grammatiche libere da contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi. Linguaggi Liberi da Contesto (CFL) sono stati usati nello

Dettagli

Prefazione all edizione italiana

Prefazione all edizione italiana Questo è l'indice del libro, in cui sono evidenziati i paragrafi corrispondenti agli argomenti trattati nel corso e che costituiscono il programma d'esame. Si noti che la presentazione di alcuni argomenti

Dettagli

Formali. Corso di Automi e Linguaggi. Gennaio- Marzo Docente: Francesca Rossi,

Formali. Corso di Automi e Linguaggi. Gennaio- Marzo Docente: Francesca Rossi, Corso di Automi e Linguaggi Formali Gennaio- Marzo 2004 Docente: Francesca Rossi, frossi@math.unipd.it Corso di Automi e Linguaggi Formali Gennaio-Marzo 2004 p.1/30 Dati del corso Orario: Lunedi 15:50-17:30,

Dettagli

Grammatiche. Dipartimento di Elettronica e Informazione Politecnico di Milano. 27 marzo 2017

Grammatiche. Dipartimento di Elettronica e Informazione Politecnico di Milano. 27 marzo 2017 Grammatiche Dipartimento di Elettronica e Informazione Politecnico di Milano 27 marzo 2017 Modelli Generativi Grammatiche I modelli di linguaggio/calcolo visti finora definiscono un linguaggio tramite

Dettagli

Barriera di astrazione. Barriera di astrazione. macchina virtuale. non sono quelle della macchina hardware. Algol. Ada. Lisp. Lisp.

Barriera di astrazione. Barriera di astrazione. macchina virtuale. non sono quelle della macchina hardware. Algol. Ada. Lisp. Lisp. LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Cobol Basic Pascal Python Modula-2

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

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

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 Generalità delle ǫ-transizioni Gli automi non deterministici, come abbiamo visto, possono

Dettagli

Limiti di un Elaboratore

Limiti di un Elaboratore Limiti di un Elaboratore Lemma There are problems that cannot be solved by any model of computation. Such problems are called undecidable (indecidibili). Example Input: 1 Dato un (generico) programma Prog

Dettagli

Proprietà di CFL. C. Bodei Fondamenti di Programmazione a.a. 17/18

Proprietà di CFL. C. Bodei Fondamenti di Programmazione a.a. 17/18 Proprietà di CFL Pumping Lemma per CFL: simile ai linguaggi regolari. Proprietà di chiusura: alcune delle proprietà di chiusura dei linguaggi regolari valgono anche per i CFL. Proprietà di decisione: possiamo

Dettagli

Linguaggi e Traduttori: Analisi lessicale

Linguaggi e Traduttori: Analisi lessicale Linguaggi e Traduttori: Analisi lessicale Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-La) 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

Algoritmi e Complessità

Algoritmi e Complessità Algoritmi e Complessità Università di Camerino Corso di Laurea in Informatica (tecnologie informatiche) III periodo didattico Docente: Emanuela Merelli Email:emanuela.merelli@unicam.it a.a. 2002-03 e.merelli

Dettagli

Modelli per i linguaggi

Modelli per i linguaggi Grammatiche 1 Modelli per i linguaggi Modelli adeguati per riconoscere/accettare, tradurre, calcolare linguaggi Ricevono una stringa di ingresso e la elaborano Modelli operazionali (Automi) Modelli adeguati

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