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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

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

2 Indice 0.1 Automi Automa di Turing Automa lineare limitato Automa a pila Automi a stati finiti e linguaggi regolari Convenzioni tipografiche Nel testo saranno utilizzate le convenzioni tipografiche di seguito elencate grassetto usato per evidenziare i nuovi termini man mano che verranno introdotti nel testo. inclinato usato per evidenziare le espressioni sulle quali si vuol porre lattenzione. monospaced usato per indicare linput/output del sistema (ci che digitato con la tastiera e che visualizzato sullo schermo dal sistema), i nomi ed il contenuto dei file, gli indirizzi di pagine web e quelli di posta elettronica. 0.1 Automi Automa di Turing Gerarchia Chomsky Grammatica Linguaggio Automa 0 Illimitata Ric. enum. Turing Ric. Decider 1 Dipendente dal contesto Dipendente dal contest Automa lineare 2 Libera dal contesto Libera dal contesto Automa a pila ND 3 Regolare Regolare A stati finiti Turing nel 1936 pubblica l articolo On computable numbers, with an application to the Entscheidungsproblem in cui presenta un modello di calcolo che, in linea di principio, può essere eseguito da una macchina. Con calcolo si intende la 1

3 deduzione di formule nel contesto di una logica formale. Questo modello noto come macchina di Turing (MdT) è specificato da tre insiemi finiti Σ, Q e R, nel modo seguente: Σ è un alfabeto, il carattere non appartiene all alfabeto ma lo usiamo ( / Σ); Q è l insieme degli stati della macchina; R è l insieme delle istruzioni. Le istruzioni sono delle quituple < q, s, q, s, ρ >. q, q Q, s, s Σ e ρ {, 0, +}. Una MdT processa un input che è rappresentato da una stringa α costruita sull alfabeto Σ e modifica la sringa stessa producendo l output. La macchina compie due tipi di azioni: una consiste nello spostare la testina di lettura e scrittura sui diversi caratteri della stringa, l altra consiste nello scrivere sulla stringa stessa. Per cancellare un carattere della stringa è sufficiente sovrascrivere il simbolo. Le quituple < q, s, q, s, ρ > sono dette le istruzioni della macchina, in altri termini il programma. Una macchina differisce da un altra per le istruzioni con cui é programmata. Configurazione: se α Σ é la stringa di simboli rappresentante il nastro, posto che α = βγ e che la tastina sia sul primo elemento di γ allora si indica con αqβ la configurazione c della macchina. Transizione: una transizione è il passaggio da una configurazione c i ad una configurazione c j. Configurazione di arresto: questa è una configurazione, cioè una coppia < q, s > per cui non è prevista alcuna istruzione. Computazione o calcolo: è un insieme di transizioni che può essere infinita o finita e in questo caso termina con una configurazione di arresto. Una computazione di lunghezza n può essere indicata come segue: c 0 c 1... c n Una MdT puó essere utilizzata in due diversi modi: come trasduttore o come riconoscitore. Il suo utilizzo come trasduttore ci permette d definire le funzioni Turing calcolabili. Macchina di turing deterministica: una macchina di turing deterministica (MdTD) è una macchina (Σ, Q, R) per cui si ha che per ogni coppia < q, s > esiste al più una istruzione < q, s, q, s, ρ >. Designamo lo stato q 0 a rappresentare lo stato iniziale. Ogni configurazione iniziale sarà quindi della forma q 0 α con α Σ. 2

4 Data una MdTD per ogni configurazione iniziale esiste un unica computazione. Vediamo ora la relazione tra una funzione e una MdTD. Sia f : Σ Σ. Diciamo che una MdTD calcola f se per ciascun α Σ si ha che la computazione inizia nella configurazione q 0 α e termina nella configurazione finale qβ e sia f (α) = β Una funzione si dice T-calcolabile se esiste una macchina di Touring che la calcola. Esempio, MdT per la funzione successore: la MdT: Σ = {1} Q = {q 0, q 1 } R = {< q 0, 1, q 0, 1, + >, < q 0,, q 1, 1, 0 >} calcola il successore m del numero n, dove m è un numero naturale espresso da un sequenza di 1. Verifica 14 scrivere una MdT per la funzione doppio sui naturali. MdT con stati di accettazione Per definire una MdTA servono sette elemeti, quindi si dice che è una settupla. Gli elementi che servono sono: L insieme Q degli stati della macchina, l alfabeto Σ di input del nastro l alfabeto Γ del nastro (input e output) con Γ e Σ Γ, uno stato iniziale q 0, uno stato di accetazione q acc, uno stato di rifiuto q ri f. Una MdTA M viene definita con la settupla < Q, Σ, Γ,, q 0, q a cc, q r i f >. Entrambi gli tati q a cc e q r i f sono stati di arresto e quindi qualsiasi configurazione che comprenda uno di questi due stati non prevede transizioni verso altre configurazioni. Accettazione di una stringa: una MdTA M accetta una stringa w se esiste una sequenza c 1,..., c n di configurazioni tali che c 1 è la configurazione iniziale, ciascun c i ammetta una transizione a c i+1 e c n è una configurazione di accettazione. L insieme L(M) delle stringhe accettato da M è il linguaggio di M 3

5 Alfabeto e linguaggio In matematica, logica, informatica e linguistica, per linguaggio formale si intende un insieme di stringhe di lunghezza finita costruite sopra un alfabeto finito, cioè sopra un insieme finito di oggetti che vengono chiamati caratteri, simboli o lettere (da wikipedia). Un alfabeto Σ é un insieme finito di simboli per esempio Σ = {a, b, c, d} (1) L insieme di tutte le stringhe di linghezza finita é definito su A con un processo induttivo. Definiamo: Σ 0 = {ɛ} la stringa vuota non contenuta in Σ Σ 1 = Σ Σ 2 = {σ σ = a σ con a Σ e σ Σ 1 } Σ 3 = {σ σ = a σ con a Σ e σ Σ 2 }... Σ n+1 = {σ σ = a σ con a Σ e σ Σ n } Abbiamo definito l insieme Σ 0 costituito dalla sola stringa vuota, l insieme Σ 1 delle stringhe di lunghezza al massimo 1 fino ad Σ n delle stringhe di lunghezza al massimo n. Definizione Σ è l insieme Σ = n Σ n (2) Σ é detto l insieme delle stringhe (o parole) di lunghezza arbitraria ma finita. Definizione Definiamo inoltre l insieme Σ + = Σ ɛ Vediamo di seguito alcuni alfabeti e stringhe di esempio: Σ é l alfabeto latino e σ 1 = Didattica, σ 2 = In f ormatica Σ = 0, 1 e σ = n. Definizione Se w è una stringa con w = x 1 x 2...x n, essa ha lunghezza w = Grammatica non limitata Definiamo una grammatica G una quadrlupa V T, V N, S, P dove V T e V S sono insiemi disgiunti finiti e non vuoti e inoltre: 1. V T é detto alfabeto terminale 2. V N é detto alfabeto non terminale 3. S é il simbolo iniziale o assioma e S V N 4. P é un insieme finito di produzioni, cioé di coppie v, w con v (V T V N ) + e contiene almeno un simbolo non terminale e w (V T V N ) 4

6 Una grammatica genera un linguaggio Esempio La quadrupla: {{(, )}, {S}, S, {S (), S (S), S SS}} é la grammatica per le parentesi bilanciate. Esempio Grammatica per le stringhe palindrome su Σ = {a, b} Sia V N = {S}, V T = {a, b} e P = {S asa bsb a b ɛ} Definizione Sia G una grammatica e siano y e z due stringhe formate da siboli in (V T V N ). Scriviamo: y z e diciamo che z deriva direttamente da y sse esistono α e β stringhe con simboli in (V T V N ), y puó essere scritta come αlβ, z puó essere scritta come αrβ ed eiste in Sia G la produzione l r Definizione Sia G una grammatica e siano y e z due stringhe formate da siboli in (V T V N ). Scriviamo: y z e diciamo che z deriva da y sse y = z oppure esiste una sequenza di stringhe w 1..., w n tali che w 1 = y e w n = x e per ogni < i n si ha che w i deriva direttamente da w i 1. Definizione Una grammatica illimitata è una grammatica le cui regole di produzione non sono soggette a nessun vincolo. Lemma Per ogni linguaggio L accettato da una MdT esiste una grammatica illimitata che lo genera. Il lemma ci dice che non è possibile inventare un linguaggio che sia accettato da una MdT e non esista una grammatica di tipo-0 che lo genera. Definizione Una grammatica illimitata genera linguaggi ricorsivamente numerabili, cioè linguaggi per cui esiste una funzione di enumerazione f di cui L è il codominio Automa lineare limitato Un LBA (linear bounded automata) è una MdTND in cui la lunghezza del nastro è una funzione lineare dell input. Può quindi essere definiti analogamente ad una MdTND come una settupla < Q, Σ, Γ,, q 0, q a cc, q r i f > in cui la testina deve muoversi entro un numero di celle che sia multiplo della lunghezza dell input. Per ogni LBA questo multiplo è data. 5

7 Nota Per un input di lunghezza k, scegliendo opportunamente l alfabeto, la lunghezza del nastro può sempre essere ridotta a k. Grammatica contestuale I linguaggi accettati da un LBA sono i linguaggi contestuali o dipendenti dal contesto (contest sensitive language CSL). Definizione Una grammatica G si dice contestuale se ciascuna produzione ha una delle seguenti forme: 1. yaz ywz con A V N, y, z (V T V N ) e w (V T V N ) + Le stringhe y e z sono il contesto in cui A viene riscritta in w. 2. S ɛ, a condizione che S non compaia nella parte destra di alcuna produzione. Nota Questa grammatica non permette di creare stringhe la cui lunghezza sia minore della lunghezza produzione stessa. Problema della fermata Per i CSL il problema della fermata ha soluzione. Infatti, data una parola w, la macchina o si ferma dopo α( w ) iterazioni o non si ferma. Questo ci permette, dopo α( w ) iterazioni di stabilire se la parola sarà accettata o meno Automa a pila Un automa a pila o push down automata (PDA) è un automa che oltre a disporre del nastro da cui leggere l input dispone di una pila o stack. Transizioni Una transizione è definita in base alla terna {q, σ, γ} dove q é lo stato dell automa, σ è il simbolo letto sull input e γ è il simbolo presente sulla cima della pila. Scelta transizione Legge il proprio stato interno Legge il simbolo corrente sull input. Legge il simbolo corrente sulla pila. Transizione Inserisce un simbolo nella pila o elimina un simbolo dalla pila oppure lascia inalterata la pila. Cambia il suo stato interno 6

8 avanza la testina di lettura sul simbolo successivo Definizione Un automa a pila è una sestupla < Q, Σ, Γ, δ, q 0, F > Q è l insieme degli stati Σ è l alfabeto di input Γ è l alfabeto della pila δ : Q (Γ ɛ) (Γ ɛ) P(Q (Γ ɛ)) è la funzione di transizione q 0 Q è lo stato iniziale. F Q è l insieme degli stati finali. Esempio Consideriamo le seguenti transizioni: {q 1, a, b} {q 2, c} Il PDA é nello stato q 1, sull input é presente a e in cima alla pila c é b. Transizione cambia lo stato in q 2, legge l input a (quindi avanza la testina), elimina b dalla pila (quindi fa il pop) e inserisce c nella pila, quindi fa il push. {q 1, ɛ, b} {q 2, c} Il PDA é nello stato q 1, sull input é presente qualcosa e in cima alla pila c é b. Transizione cambia lo stato in q 2, non legge l input (quindi non avanza la testina), elimina b dalla pila (quindi fa il pop) e inserisce c nella pila, quindi fa il push. {q 1, a, ɛ} {q 2, c} Il PDA é nello stato q 1, sull input é presente a e in cima alla pila c é qualcosa oppure no. Transizione cambia lo stato in q 2, legge l input a (quindi avanza la testina), inserisce c nella pila, quindi fa il push. Esempio automa: si vuole costruire un automa a pila A che accetti una stringa del linguagio a n b n per qualsiasi n 0. (Fig vedi appunti a lezione) Grammatica non contestuale I linguaggi accettati dagli automi a pila sono i linguaggi non contestuali. Definizione: Una grammatica G si dice non-contestuale se tutte le sue produzioni sono del tipo L r dove L è un singolo simbolo non terminale e r (V T V N ) ; Una proprietà importante delle grammatiche non-contestuali é che generano stringhe che possono essere derivate da un albero τ che ha le seguenti proprietà: 1. La radice dell albero è l assioma iniziale S 7

9 2. Ogni nodo che non sia anche una foglia é etichettato con un simbolo non terminale. 3. Ogni nodo foglia é etichettato con un simbolo terminale o con la stringa vuota. 4. Se un nodo é etichettato con con il simbolo non terminale A e ha k figli α 1...α k allora esiste una produzione della forma A α 1...α k. 5. Se S w e w è una stringa in forma enunciativa terminale allora w è rappresentata dalle foglie dell albero associato alla derivazione. Esercizio 14: si tracci l albero di derivazione (o albero sintattico) delle stringhe binarie 0101, 0011 della grammatica G = {{0, 1}, {A, B, S}, S, {S 0B 1A, A 0 0S 1AA, B 1 1S 0BB}}. La teoria dei linguaggi formali offre una metodologia utile a specificare la sintassi dei linguagi di programmazione e a costruire degli analizzatori che permettono di controllare la sintassi di un programma. Per esempio dato l alfabeto V T = L D dove L = {a,..., z, A,..., Z, } e D = {0, 1,..., 9} e l espressione regolare l + d definiscono il linguaggio degli identificatori (nomi delle variabili e delle funzioni) per i linguaggi come il C e il Pascal. Un altro esempio é dato dalle seguenti regole di produzione: S if C then S else S if C then S a b C p q dove S e C sono non-terminali, a e b sono espressioni e p e q sono espressioni booleane. Sostituzioni Dato un albero di derivazione τ relativo ad una data grammatica non contestuale G se si sotituisce un sottoalbero τ con un sottoalbero τ si ottiene ancora un albero di una stringa generabile da G. Osservazione (spiegazione pumping lemma): sia z = uvwxy una stringa di L generata da G. Sia A un simbolo non terminale che compare più volte nella produzione di z. E possibile usare il principio di sostituzione per sostituire diverse produzioni di A ottenendo così la stringa uv 2 wx 2 y. Pumping lemma per linguaggi non-contestuali Se L è un linguaggio non contestuale e z L, eiste una costante p con z p tale che z puó essere riscritta come z = uvwxy con: vwx p. v e x non sono entrambe stringhe vuote. Per i 0 si ha che le stringhe uv i wx i y appartengono a L. 8

10 0.1.4 Automi a stati finiti e linguaggi regolari Un automa é composto da un insieme di stati e da un insieme di regole di transizione. Gli stati possono essere di accettazione o di non accettazione, le regole determinano la transizione dell automa da uno stato all altro in base a ciò che riceve in input. L elaborazione dell automa comincia nello stato iniziale e consiste nel legere l input e transitare di stato secondo le regole date. Se al termine della lettura l automa si trova in uno stato di accettazione allora si dice che l automa ha accettato l input altrimenti che l ha rifiutato. Un automa a stati finiti puó essere definito come una quintupla Q, Σ, δ, q 0, F dove: 1. Q è un insieme finito di stati 2. Σ è un alfabeto non vuoto 3. δ : Q Σ Q 4. q 0 Q 5. F Q é l insieme degli stati di accettazione Consideriamo il seguente esempio, sia M = {q 1, q 2, q 3, {0, 1}, δ, q 1, {q 2 }. La funzione di transizione δ è definita dalla matrice 0 1 q 1 q 1 q 2 q 2 q 3 q 2 q 3 q 2 q 2 Scopo: questo automa accetta le stringhe composte di simboli 1 o terminate da un numero pari di simboli 0 oppure terminanti con un 1. Presentando in input all automa la stringa 1101 l automa si pone nello stato finale q 2, siccome questo è uno degli stati di accetazione (l unico) allora la stringa 1101 è stata accettata. Se X è l insieme delle stringe accettate dall automa M, allora diciamo che X è il linguaggio dell automa e scriviamo L(M) = X. Nel caso specifico questo automa accetta tutte le stringhe che terminano con 1 o con un numero pari di 0. Considerazione: (spiegazione del punmping lemma) Consideriamo la grammatica Q, Σ, δ, q 0, F. Sia Q = n e sia z Σ con z = m > n. Per il principio della piccionaia si ha che esiste uno stato q j che viene attraversato piú di una volta. Non importa se q j F o se q j / F. Posta z = z 1, z 2,..., z m poniamo u = z 1,..., z j e x = z j+1,..., z m. Abbiamo z = ux. u è il minimo prefisso che porta l automa in q j. A sua volta possiamo riscrivere x = vw con v il minimo prefisso che riporta l automa in q j e w la stringa che porta l automa nello stato s Z. 9

11 Possiamo allora scrivere z = uvw ma se z è accettata allora lo sarà anche qualsiasi stringa z = uv i w in quanto la substringa v ha come unico effetto di portare l automa dallo stato q j allo stato q j. Espressioni regolari e linguaggi regolari Si è visto la definizione di linguaggio su un insieme di stringhe e come una grammatica possa generare un linguaggio. Ci chiediamo ora quali sono le condizioni che un linguaggio deve soddisfare per essere generabile da una grammatica. Anzitutto definiamo gli operatori regolari come segue: Unione: L 1 L2 = {w w L 1 oppure w L 2 } Concatenazione: L 1 L 2 = {w 1 w 2 w 1 L 1 e w 2 L 2 } Complementazione: L 1 = {w Σ w / L 1 } Stella: L = n L n dove: L 0 = {ɛ} : L n+1 = L n L per n 0 Definiti gli operatori regolari, possiamo definire un linguaggio regolare in maniera induttiva come segue: 1. Il linguaggio vuoto è regolare. 2. il linguaggio formato dalla sola stringa vuota {ɛ} è regolare. 3. Se L 1 e L 2 sono linguaggi regolari allora L = L 1 L2, L = L 1 L e L = (L 1 ), sono regolari. I linguaggi sono insiemi di stringhe, va da se che le operazioni sui linguaggi sono associate ad operazioni sulle stringhe. Le quattro operazioni definite prima sono quindi definite anche sulle stringhe e vengono usate per definire le espressioni regolari, vediamo alcuni esempi di espressioni regolari: 1. (a + b) l insieme delle stringhe sull alfabeto {a, b}. 2. (a b ) sempre l insieme delle stringhe sull alfabeto {a, b}. 3. (aa + bb) l insieme delle stringhe sull alfabeto {a, b} formate da coppie di a e da coppie di b. 4. aa (b + aaa) c 10

12 Esercizio 12: per ognuno dei quattro esempi di espresioni regolari si chiarisca quale classe di stringhe viene genrata. Una espressione regolare R genera un linguaggio regolare S(R). Dato un linguaggio regolare, esiste una grammatica che lo genera. Le grammatiche che generano i linguaggi regolari sono dette grammatiche regolari. Una grammatica G = V T, V N, S, P è detta essere lineare destra se ciascuna produzione è del tipo: A bc oppure A b dove A e C appartengono a V N e b V T {ɛ}. Una grammatica è detta lineare sinistra se ciascuna produzione è del tipo: A Cb oppure A b Per esempio la grammatica G = {0, 1}, {}, S, {S ɛ 0 S0 1 S1} è una grammatica lineare sinistra. Pumping lemma per linguaggi regolari Se L è un linguaggio regolare e s L, allora esiste una costante p con s p tale che s puó essere riscritta come s = uvy con uv p e v > 0 e per tutti gli i 0 si ha che uv i w L. 11

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

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

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

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

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

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

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

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi Sommario Codifica dei dati Macchina Astratta Definizioni Esempi 1 2 Codifica dei dati È possibile introdurre la teoria della computabilità facendo riferimento ad algoritmi che elaborano numeri naturali

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

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

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

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

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

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

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

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

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

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

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

ITLCC 2006/10/6 19:09 page 7 #3

ITLCC 2006/10/6 19:09 page 7 #3 ITLCC 2006/10/6 19:09 page 7 #3 Capitolo 2 Macchine di Turing SOMMARIO In questo capitolo introdurremo il modello di calcolo proposto dal logico matematico inglese Alan Turing, in un suo famoso articolo

Dettagli

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29 Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,

Dettagli

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 3

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 3 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 3 Alberto Carraro 26 ottobre 2011 DAIS, Università Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Automi a a pila deterministici e

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

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

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

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

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

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

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

AUTOMA A STATI FINITI

AUTOMA A STATI FINITI Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate

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

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

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

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di

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

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

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 Esercizio 1 } Consideriamo una MdT che modifica una sequenza di A rimpiazzando ogni A in posizione dispari con una B (la prima A ha posizione

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

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

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

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

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE ELEMENTI DI PROGRAMMAZIONE a.a. 23/4 UNA GERARCHIA DI MACCHINE Andrea Prevete, UNINA2 24 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine

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

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

Capitolo 8: Teoria della complessitá

Capitolo 8: Teoria della complessitá Capitolo 8: Teoria della complessitá 1 La Teoria della calcolabilitá considera aspetti qualitativi della soluzione di problemi. Distingue il calcolabile dal non calcolabile. La Teoria della complessitá

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

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Analizzatore lessicale o scanner Dispensa del corso di Linguaggi e Traduttori A.A. 2005-2006 Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner,

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

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

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)

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

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

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

Alberi: definizioni e dimostrazioni induttive.

Alberi: definizioni e dimostrazioni induttive. Alberi: definizioni e dimostrazioni induttive. Gennaio 2005 Iniziamo con l introdurre la nozione di albero. Con N indichiamo l insieme dei numeri naturali (zero escluso) e con N l insieme delle liste finite

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

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale

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

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

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

UNA GERARCHIA DI MACCHINE

UNA GERARCHIA DI MACCHINE ELEMENTI DI PROGRAMMAZIONE a.a. 2015/16 UNA GERARCHIA DI MACCHINE UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine di Turing Macchine di

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

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Alberi binari Lab15 12 Maggio 2017 Outline Correzione esercizi per oggi Alberi binari Teoria Esercizi Esercizi per casa Saluti Esercizio 1 per casa Scrivere una funzione palindroma(s)

Dettagli

Sipser, Capitolo 0. Alfabeti, Stringhe, Linguaggi

Sipser, Capitolo 0. Alfabeti, Stringhe, Linguaggi Sipser, Capitolo 0 Alfabeti, Stringhe, Linguaggi Def. Un insieme è una collezione non ordinata di oggetti o elementi Gli insiemi sono scritti tra { } Gli elementi sono inseriti tra le parentesi Insiemi

Dettagli

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 2

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 2 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 2 Alberto Carraro 12 ottobre 2011 DAIS, Università Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Automi a stati finiti deterministici

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

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

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

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

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Nome..Cognome.Matr. Laureando Avvisi importanti Il tempo a disposizione è di 1 ora e 30 minuti. Se non verranno risolti

Dettagli

Principio di composizione delle MT

Principio di composizione delle MT Principio di composizione delle MT La definizioni date fanno riferimento a situazioni in cui la macchina sia capace di risolvere problemi singoli. E possibile far sì che macchine progettate per problemi

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

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

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

MODULO 07 LA MACCHINA DI TURING

MODULO 07 LA MACCHINA DI TURING MODULO 07 LA MACCHINA DI TURING Nel 1936 Alan Turing presenta una definizione di computabilità basata sull osservazione del comportamento di un agente umano che sta eseguendo un calcolo (algoritmo) con

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

Costruzione dell insieme dei Follow

Costruzione dell insieme dei Follow Costruzione dell insieme dei Follow E! T E - T E E! + T E - T E " T! F T T! *F T " F! (E) i Per evitare che alcuni insiemi siano vuoti si aggiunge per default il simbolo speciale $ che demarca la fine

Dettagli

Precorsi di matematica

Precorsi di matematica Precorsi di matematica Francesco Dinuzzo 12 settembre 2005 1 Insiemi Il concetto di base nella matematica moderna è l insieme. Un insieme è una collezione di elementi. Gli elementi di un insieme vengono

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

Linguaggi e Ambienti di Programmazione

Linguaggi e Ambienti di Programmazione Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi

Dettagli

Università degli Studi di Palermo Facoltà di Economia. CdS Sviluppo Economico e Cooperazione Internazionale. Appunti del corso di Matematica

Università degli Studi di Palermo Facoltà di Economia. CdS Sviluppo Economico e Cooperazione Internazionale. Appunti del corso di Matematica Università degli Studi di Palermo Facoltà di Economia CdS Sviluppo Economico e Cooperazione Internazionale Appunti del corso di Matematica 02 - I Numeri Reali Anno Accademico 2013/2014 D. Provenzano, M.

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

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

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 Linguaggi e Complessità : Lezione 1 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 1 Logica proposizionale Linguaggio matematico

Dettagli

Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.

Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Algoritmi e Strutture Dati + Lab A.A. / Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro ALBERO

Dettagli

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. Fondamenti di Informatica Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. 2011-2012 Algoritmo L algoritmo è una sequenza finita di istruzioni, mediante le quali un qualunque operatore

Dettagli

Certificati dei problemi in NP

Certificati dei problemi in NP Certificati dei problemi in NP La stringa y viene in genere denominata un certificato Un Certificato è una informazione ausiliaria che può essere utilizzata per verificare in tempo polinomiale nella dimensione

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

Esercizi di Informatica Teorica

Esercizi di Informatica Teorica Esercizi di Informatica Teorica Linguaggi non contestuali: proprietàe forme normali 1 Grammatiche non contestuali richiami grammatica non contestuale (CFG o tipo 2): A β con A V N, β (V T V N )+ osservazione:

Dettagli

Prima lezione. Gilberto Bini. 16 Dicembre 2006

Prima lezione. Gilberto Bini. 16 Dicembre 2006 16 Dicembre 2006 Vediamo alcune nozioni di teoria ingenua degli insiemi. Vediamo alcune nozioni di teoria ingenua degli insiemi. Un insieme è una collezione di oggetti di cui possiamo specificare una proprietà

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

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

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) DISPENSA N. 4 Sommario. Dimostriamo il Teorema di Completezza per il Calcolo dei Predicati del I ordine. 1. Teorema di Completezza Dimostriamo il Teorema

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Espressioni aritmetiche

Espressioni aritmetiche Espressioni aritmetiche Consideriamo espressioni costruite a partire da variabili e costanti intere mediante applicazione delle operazioni di somma, sottrazione, prodotto e divisione (intera). Ad esempio:

Dettagli

Macchine di Turing: somma di due numeri

Macchine di Turing: somma di due numeri Informatica Teorica 2/2 M.Di Ianni Macchine di Turing: somma di due numeri Vogliamo definire una macchina di Turing che, presi in input due numeri n e m espressi in notazione binaria, calcola il valore

Dettagli

Registro Lezioni di Algebra lineare del 15 e 16 novembre 2016.

Registro Lezioni di Algebra lineare del 15 e 16 novembre 2016. Registro Lezioni di Algebra lineare del 15 e 16 novembre 2016 Di seguito si riporta il riassunto degli argomenti svolti; i riferimenti sono a parti del Cap8 Elementi di geometria e algebra lineare Par5

Dettagli

Verifica di programmi

Verifica di programmi Verifica di programmi Informalmente, un programma è corretto se l output prodotto è quello atteso rispetto all input. La correttezza dei programmi può essere espressa mediante formule per la correttezza

Dettagli