Linguaggi Regolari e Linguaggi Liberi

Documenti analoghi
Linguaggi Regolari e Linguaggi Liberi

Espressioni regolari

Parole note, nuovi significati: linguaggio, determinismo e infinito

Linguaggi regolari e automi a stati finiti

Le grammatiche formali

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

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

Pumping lemma per i linguaggi Context-free

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

Forma Normale di Chomsky

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

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

Appunti di informatica. Lezione 7 anno accademico Mario Verdicchio

Definizione di Grammatica

IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE.

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

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Grammatiche Parse trees Lezione del 17/10/2012

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

8. Completamento di uno spazio di misura.

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

Automi a pila. Automi a pila

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

Presentazione di gruppi

Espressioni Regolari

AUTOMI A PILA. M.P. Schutzenberger

Complementi di Analisi Matematica Ia. Carlo Bardaro

Cosa è l Informatica?

Il concetto di calcolatore e di algoritmo

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

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

Costruzione di espressioni regolari 4

Informatica Teorica. Sezione Cremona + Como. Appello del 20 Luglio 2004

(2) se A A, allora A c A; (3) se {A n } A, allora +

Aniello Murano Decidibilità delle teorie logiche

UNA GERARCHIA DI MACCHINE

Aniello Murano Automi e Pushdown

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

Proprieta dei Linguaggi regolari

Linguaggi formali e compilazione

1 Giochi di Ehrenfeucht-Fraissé e Logica del Prim ordine

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F

Proprietà dei linguaggi regolari

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

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

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia

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

1. equivalenze e implicazioni logiche. Esercizio 1.2. Trovare le implicazioni che legano i seguenti enunciati (x, y R):

1 Equazioni parametriche e cartesiane di sottospazi affini di R n

Metodo LALR. Tabelle LALR. Metodo LALR. Idea. Idea. Idea. Costruzione delle tabelle LALR

Espressioni regolari. Espressioni regolari

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese

Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari.

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

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di

Nozioni introduttive e notazioni

Esercitazioni di Reti Logiche

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

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

04 - Logica delle dimostrazioni

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

Appunti di Linguaggi Formali

Sviluppi e derivate delle funzioni elementari

Corso di Crittografia Prof. Dario Catalano. Firme Digitali

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

Quiz sui linguaggi CF

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

3. OPERAZIONI TRA CLASSI 2

ESERCIZI SULLE DISEQUAZIONI I

Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità

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

Corso di Informatica di Base

ALGEBRA I: SOLUZIONI QUINTA ESERCITAZIONE 9 maggio 2011

La codifica digitale

Un insieme si dice ben definito quando si può stabilire in modo inequivocabile se un oggetto appartiene o non appartiene a tale insieme

Alcune Tracce dei Precedenti Esami del Dottorato di Siena in Logica Matematica ed Informatica Teorica

Automi & Morfologia. Marco Pennacchiotti. Tel Ing.dell Informazione, stanza 1035 (primo piano)

Lezione 4. Da questa definizione si ha dunque che le similitudini sono particolari trasformazioni affini.

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

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1

Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori

Sistemi compatibili (Il metodo di Fourier-Motzkin) Claudio Arbib Università degli Studi di L Aquila

Espressività e limitazioni delle grammatiche regolari

Anno 1. Teoria degli insiemi: definizioni principali

1 Se X e Y sono equipotenti, Sym(X) e Sym(Y ) sono isomorfi

Fondamenti di Informatica Programma dettagliato del corso e appunti integrativi del libro di testo consigliato Anno Accademico

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

Parte Seconda. Prova di selezione culturale

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

La cardinalità di Q e R

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

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

INSIEMI E RELAZIONI. 1. Insiemi e operazioni su di essi

LABORATORIO Costruzione di un ipertesto. Studio delle varie specie di numeri dai numeri naturali ai numeri reali

I punti di inizio e di fine della spezzata prendono il nome di estremi della spezzata. lati

Analisi lessicale (scanner)

Successioni, massimo e minimo limite e compattezza in R

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

ESERCIZI SUI PUNTI DI NON DERIVABILITÀ TRATTI DA TEMI D ESAME

Transcript:

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

Linguaggi Regolari Tutti i linguaggi che possono essere accettati da automi a stati finiti non deterministici sono detti Linguaggi Regolari La definizione include linguaggi su tutti i possibili alfabeti Σ finiti 2

Determinismo vs Non determinismo Abbiamo visto che, tramite la costruzione dei sottoinsiemi, un qualsiasi automa non deterministico può essere trasformato in uno deterministico equivalente Inoltre un automa deterministico può essere visto come un particolare automa non deterministico Pertanto in realtà è superfluo dire, nella definizione di linguaggi regolari, che gli automi debbano essere non deterministici La classe di linguaggi accettati da automi deterministici è uguale a quella dei linguaggi accettati da automi non deterministici 3

Potere espressivo In questo caso si dice che i due formalismi, gli automi deterministici e non deterministici, hanno lo stesso potere espressivo Oltre a quello degli automi deterministici, anche il formalismo delle espressioni regolari ha lo stesso potere espressivo degli automi non deterministici Una costruzione per costruire un NFA a partire da una qualsiasi espressione regolare si vedrà nel corso di Compilatori 4

Linguaggi Regolari La classe dei linguaggi regolari può essere quindi specificata equivalentemente con tre tipi diversi di formalismi: Automi non deterministici (NFA) Automi deterministici (DFA) Espressioni Regolari Questi tre formalismi hanno tutti lo stesso potere espressivo 5

Potere espressivo superiore Ma tutti i linguaggi sono regolari? La risposta è NO Ci sono dei linguaggi che non possono essere specificati con NFA (o DFA o espressioni regolari) I linguaggi di questo tipo sono detti non regolari 6

Un esempio classico L esempio classico di linguaggio non regolare è il seguente L = { a n b n n 0 } È impossibile scrivere un automa o un espressione regolare che accetti/denoti questo linguaggio La dimostrazione di questo enunciato è interessante e può essere trovata sulla dispensa alternativa di sintassi 7

Limiti degli automi Intuitivamente il motivo è che gli automi non possono contare, cioè non possono implementare un contatore che possa assumere un qualsiasi valore intero (n) in modo da accettare stringhe in cui ci sia una corrispondenza fra il numero di certi elementi e il numero di altri elementi 8

Potere espressivo delle grammatiche È facile scrivere una grammatica libera dal contesto per il linguaggio visto: S asb ε In effetti si ha che le grammatiche libere dal contesto hanno un potere espressivo maggiore degli automi/espressioni regolari Ciò significa più precisamente che: Ogni linguaggio regolare può essere generato con una grammatica Esiste almeno un linguaggio non regolare che è accettato da una grammatica 9

Potere Espressivo delle grammatiche Universo dei linguaggi Linguaggi generati da grammatiche libere L = { a n b n n 0 } Linguaggi Regolari 10

Potere espressivo delle grammatiche Per mostrare la seconda parte basta usare il linguaggio { a n b n n 0 } Per la prima parte definiamo un algoritmo che, dato un qualsiasi automa (deterministico o no), costruisce una grammatica equivalente 11

Algoritmo: dagli automi alle grammatiche Input: Automa <S, Σ, s0, move, F> Output: Grammatica <V, Σ, S, P> equivalente Costruzione dei simboli non terminali di V e dello stato iniziale: Per ogni stato s di S costruiamo un simbolo non terminale <s> in V Poniamo <s 0 > come simbolo iniziale S della grammatica 12

Algoritmo: dagli automi alle grammatiche Costruzione delle produzioni P: Per ogni s S e per ogni a Σ: Se c è nell automa una transizione etichettata con a che dallo stato s va nello stato s allora inseriamo la produzione <s> a <s > in P Se c è nell automa una transizione etichettata con a che dallo stato s va nello stato s e s F allora inseriamo una produzione <s> a in P Se l'automa accetta anche la stringa vuota ε allora bisogna fare un ulteriore passo e creare un simbolo iniziale fittizio 13

Algoritmo: dagli automi alle grammatiche Se l'automa accetta la stringa vuota: Aggiungere un ulteriore simbolo non terminale <s 0 '> e porlo come simbolo iniziale della grammatica a posto di <s 0 > Inserire la produzione <s 0 '> ε Aggiungere una produzione <s 0 '> α per ogni produzione <s 0 > α che si trova già in P (costruito come nella pagina precedente) 14

Esempio a a b 0 1 2 c {a, b, c} 3 15

Esempio Seguendo le indicazioni dell algoritmo otteniamo la seguente grammatica, al primo passo <0> a <0> a <1> a <1> b <2> <2> c <3> c <3> a <3> b <3> c <3> a b c Ma l'automa accetta anche la stringa vuota Dobbiamo completare come segue 16

Esempio Nuovo simbolo iniziale <0'> <0'> ε a <0> a <1> a <0> a <0> a <1> a <1> b <2> <2> c <3> c <3> a <3> b <3> c <3> a b c 17

Grammatiche regolari Le grammatiche in cui le produzioni sono tutte della forma A ab oppure A a A ε oppure Sono chiamate Grammatiche Regolari e hanno lo stesso potere espressivo degli automi/espressioni regolari L algoritmo visto genera grammatiche regolari 18

Linguaggi liberi Tutti i linguaggi che possono essere specificati attraverso una grammatica libera dal contesto sono detti Linguaggi Liberi I linguaggi liberi, sappiamo dal potere espressivo, includono i linguaggi regolari più altri linguaggi non regolari come { a n b n n 0 } Ma i linguaggi non liberi sono tutti i possibili linguaggi? La risposta è ancora NO 19

Linguaggi non liberi Esistono dei linguaggi che non possono essere generati da nessuna grammatica libera dal contesto, ad esempio: L = {a m b m c m m 0} Esistono infiniti linguaggi non liberi. Esistono infiniti linguaggi non regolari, ma liberi. Esistono gerarchie di formalismi più potenti delle grammatiche libere dal contesto 20

Potere espressivo delle grammatiche libere Universo dei linguaggi Linguaggi generati da grammatiche libere L = { a n b n n 0 } L = {a m b m c m m 0 } Linguaggi Regolari 21