Le grammatiche formali
|
|
|
- Adamo Catalano
- 9 anni fa
- Просмотров:
Транскрипт
1 Le grammatiche formali
2 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 corretta, al contrario della seguente espressione: Gatto il un topo rincorre Dato un insieme finito di elementi di partenza (le parole della nostra lingua), siamo in grado di comprendere e produrre un insieme praticamente illimitato di enunciati
3 Linguaggi i e grammatiche Sia Σ = {un, il, gatto, topo, rincorre} Le espressioni un gatto rincorre il topo e gatto il un topo rincorre appartengono entrambe all insieme delle stringhe generabili a partire da Σ Le espressioni che diremmo sintatticamente corrette costituiscono un sottoinsieme proprio di tutte le stringhe generabili a partire da Σ Come definire questo sottoinsieme? Possiamo definirlo mediante una grammatica formale
4 Un esempio di grammatica formale 1. E SN SV 2. SN ARTICOLO NOME 3. SV VERBO 4. SV VERBO SN 5. ARTICOLO un 6. ARTICOLO il 7. NOME gatto 8. NOME topo 9. VERBO rincorre
5 Un esempio di grammatica formale 1. E SN SV 2. SN ARTICOLO NOME 3. SV VERBO 4. SV VERBO SN 5. ARTICOLO un Una grammatica formale è un insieme di espressioni dette regole di produzione Ogni regola assume la forma e 1 e 2 6 ARTICOLO il Nelle espressioni e 1 ed e 2 compaiono: 6. ARTICOLO il 7. NOME gatto 8. NOME topo 9. VERBO rincorre Simboli non terminali (espressi in maiuscolo nell esempio) Simboli terminali (alfabeto)
6 Un esempio di grammatica formale 1. E SN SV 2. SN ARTICOLO NOME 3. SV VERBO La regola e 1 e 2 indica che, ogni volta che si trova l espressione e 1, si può sostituire il simbolo non terminale in e 1 4. SV VERBO SN con e 2 5. ARTICOLO un esempio: sostituire SV con 6. ARTICOLO il VERBO SN 7. NOME gatto A ogni grammatica è associato 8. NOME topo un simbolo non terminale detto 9. VERBO rincorre simbolo iniziale. In questo caso il simbolo iniziale è E
7 Un esempio di grammatica formale Per generare una stringa a partire 1. E SN SV da questa grammatica: 2. SN ARTICOLO NOME 1. Si prende in considerazione il 3. SV VERBO simbolo iniziale 4. SV VERBO SN 2. Si sceglie una regola che abbia 5. ARTICOLO un quel simbolo a sinistra della 6. ARTICOLO il freccia 7. NOME gatto 3. Si effettua la sostituzione 8. NOME topo 4. Nella stringa così ottenuta,si 9. VERBO rincorre selezionano gli eventuali simboli non terminali e si torna al passo 2, finchè rimangono solo simboli terminali
8 Un esempio di grammatica formale 1. E SN SV 2. SN ARTICOLO NOME 3. SV VERBO 4. SV VERBO SN 5. ARTICOLO un 6. ARTICOLO il 7. NOME gatto 8. NOME topo 9. VERBO rincorre Esempio di derivazione (1,2,5,7,4,9,2,6,8): E SN SV (regola 1) ARTICOLO NOME SV (regola 2) Un NOME SV (regola 5) Un gatto SV (regola 7) Un gatto VERBO SN (regola 4) Un gatto rincorre SN (regola 9) Un gatto rincorre ARTICOLO NOME (regola 2) Un gatto rincorre il NOME (regola 6) Un gatto rincorre il topo (regola 8)
9 Un esempio di grammatica formale 1. E SN SV 2. SN ARTICOLO NOME 3. SV VERBO 4. SV VERBO SN 5. ARTICOLO un 6. ARTICOLO il 7. NOME gatto 8. NOME topo 9. VERBO rincorre Quali altre espressioni possiamo generare a partire da questa grammatica? Un topo rincorre Un topo rincorre il gatto Il topo rincorre un gatto Esempi di espressioni i non generabili? Un rincorre gatto topo
10 La gerarchia di Chomsky Possiamo definire i vari tipi i di grammatiche Grammatiche di livello 0 non esiste alcun vincolo sulla forma delle produzioni: non esiste alcun vincolo sulla forma delle produzioni: può essere usata qualunque regola e 1 e 2
11 La gerarchia di Chomsky Possiamo definire i vari tipi i di grammatiche Grammatiche di livello 1 Dette anche grammatiche non decrescenti. Non sono permesse regole e 1 e 2 tale che e 2 sia più corta di e 1 Esempio: non è permessa una regola del tipo NOME gatto topo Tutte le grammatiche di livello 1 sono anche di livello 0, ma non viceversa!
12 La gerarchia di Chomsky Possiamo definire i vari tipi i di grammatiche Grammatiche di livello 2 Dette anche grammatiche libere da contesto. Le regole hanno la forma S γ dove S è un simbolo non terminale e γ è una stringa di simboli terminali e/o non terminali La grammatica vista in precedenza è libera da contesto Tutte le grammatiche libere da contesto sono non Tutte le grammatiche libere da contesto sono non decrescenti, ma non viceversa!
13 La gerarchia di Chomsky Possiamo definire i vari tipi i di grammatiche Grammatiche di livello 3 Dette anche grammatiche lineari. Una grammatica lineare destra include regole della forma S t B oppure S t Una grammatica lineare sinistra include regole della forma S B t oppure S t dove S e B sono simboli non terminali e t è un simbolo terminale
14 La gerarchia di Chomsky Grammatiche di livello 0 Grammatiche di livello 1 (o non decrescenti) Grammatiche di livello 2 (o libere da contesto) Grammatiche di livello 3 (o lineari) Gerarchia: tutte le stringhe generate da una grammatica di livello i sono generate dalla grammatica di livello i-11
15 Una grammatica lineare destra S 0S S 1S S 1 Una grammatica lineare destra include regole della forma S t B oppure S t Quale linguaggio è generato da questa grammatica? Questa grammatica genera solo stringhe che terminano per Esiste un automa finito it che riconosce questo linguaggio! q 1 q 2 0
16 Grammatiche e automi Alcuni teoremi (che non dimostriamo): i Tutti i linguaggi generati da grammatiche lineari sono Tutti i linguaggi generati da grammatiche lineari sono riconosciuti da automi finiti
17 Linguaggi liberi da contesto e automi a pila Sappiamo che esiste un automa a pila che riconosce il linguaggio {w b m n m } La grammatica che genera questo linguaggio è S bsn S bn Stringhe generate: bn bbnn bbbnnn Grammatiche libere da contesto Le regole hanno la forma S γ dove S è un simbolo non terminale e γ è una stringa di simboli terminali e/o non terminali
18 Grammatiche e automi Alcuni teoremi (che non dimostriamo): i Tutti i linguaggi generati da grammatiche lineari sono riconosciuti da automi finiti Tutti i linguaggi generati da grammatiche libere da contesto sono riconosciuti da automi a pila
19 Grammatiche e automi Linguaggi Automi Grammatiche di livello ll 0 Grammatiche di livello 1 (o non decrescenti) Grammatiche di livello 2 (o libere da contesto) Grammatiche di livello 3 (o lineari) Automi a pila Automi finiti
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
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
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
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,
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=
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
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
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
GRAMMATICA FORMALE. Albero sintattico
GRAMMATICA FORMALE Una quadrupla VT,VN,P,S dove: VT è un insieme finito di simboli terminali VN è un insieme finito di simboli non terminali Pè uninsieme finito di produzioni, ossiadi regole di riscrittura
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.
Grammatiche context-free
Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Grammatiche context-free Giacomo PISCITELLI Politecnico di Bari G. Piscitelli pag. 1 di 28 Grammatiche
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)
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.................................
Le basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
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 Fortran Cobol Basic Pascal Python C
Appunti di Linguaggi Formali
Appunti di Linguaggi Formali A cura di Roberta Prendin [email protected] Appunti delle lezioni di Calcolabilità e Linguaggi Formali tenute dal professor Antonino Salibra, anno accademico 2013/2014.
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
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 ([email protected]) Dipartimento di Informatica Università degli Studi di Bari Grammatiche
Linguaggi formali e compilatori
POLITECNICO DI MILANO Linguaggi formali e compilatori Appunti Stefano Invernizzi Anno accademico 2010-2011 Corso del prof. Angelo Morzenti Sommario Introduzione ai linguaggi... 5 Terminologia di base...
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
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,
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
Linguaggi Sintassi e Semantica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 4 Linguaggi Sintassi e Semantica Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Linguaggi - Sintassi
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
Le macchine di Turing
Le macchine di Turing Alan Turing (1912-1954) 1954) Il problema della decisione i L Entscheidungsproblem [il problema della decisione] è risolto se si conosce una procedura che permette di decidere la
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)
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
Linguaggi, grammatiche, espressioni regolari
Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Linguaggi, grammatiche, espressioni regolari Giacomo PISCITELLI Modello formale di un linguaggio Un linguaggio
Informatica e Comunicazione Digitale Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione
Principali informazioni sull insegnamento Titolo insegnamento Linguaggi di Programmazione Corso di studio Informatica e Comunicazione Digitale Crediti formativi 9 Denominazione inglese Programming Languages
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
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.
Espressioni regolari
spressioni Regolari Un FA (NFA o DFA) e una macchina a stati finiti che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo (o algebrico) per descrivere un linguaggio regolare.
Unità Didattica 2 I Linguaggi di Programmazione
Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche
Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari.
Espressioni regolari descrivono i linguaggi regolari Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo per descrivere
8. Completamento di uno spazio di misura.
8. Completamento di uno spazio di misura. 8.1. Spazi di misura. Spazi di misura completi. Definizione 8.1.1. (Spazio misurabile). Si chiama spazio misurabile ogni coppia ordinata (Ω, A), dove Ω è un insieme
Programmazione. Marco Anisetti. Università degli Studi di Milano, Dipartimento di Informatica
Programmazione Marco Anisetti Università degli Studi di Milano, Dipartimento di Informatica [email protected] http://homes.di.unimi.it/anisetti/ Marco Anisetti - 1 / 40 Riepilogo lezione 1 Ruolo
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
Descrizione delle operazioni di calcolo. Espressioni costanti semplici
Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette
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.
La codifica digitale
La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore
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 ([email protected])
1 Giochi di Ehrenfeucht-Fraissé e Logica del Prim ordine
1 Giochi di Ehrenfeucht-Fraissé e Logica del Prim ordine In questo tipo di giochi l arena è costituita da due grafi orientati G = (V, E), G = (V, E ). Lo scopo del I giocatore è di mostrare, in un numero
Linguaggio della Matematica
Linguaggio della Matematica concetti primitivi: elementi fondamentali di natura intuitiva (punto, retta, insieme, elemento di un insieme,...). assiomi: enunciati, proposizioni vere a priori (gli assiomi
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
Linguistica Computazionale
Linguistica Computazionale Laboratorio espressioni regolari (2) 09 ottobre 2014 Esercizi Formalizzare con le espressioni regolari i patterns per trovare le seguenti stringhe: tutte le vocali minuscole
Linguaggio della Matematica
Linguaggio della Matematica concetti primitivi: elementi fondamentali di natura intuitiva (punto, retta, insieme, elemento di un insieme,...). assiomi: enunciati, proposizioni vere a priori (gli assiomi
Le grammatiche formali
Le grammatiche formali Le grammatiche formali costituiscono la base di numerose teorie ed applicazioni. Sul piano teorico costituiscono la base della teoria della grammatica generativa di Chomsky, come
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,
Funzioni: definizioni e tipi. Prof.ssa Maddalena Dominijanni
Funzioni: definizioni e tipi Definizione di funzione Dati due insiemi non vuoti A e B, si dice funzione o applicazione da A a B una relazione che associa ad ogni elemento dell insieme A uno ed un solo
Automi. Rosario Culmone, Luca Tesei. 20/10/2009 UNICAM - p. 1/55
Automi Rosario Culmone, Luca Tesei 20/10/2009 UNICAM - p. 1/55 Storia Dal latino automatus "che si muove da sé" Macchine o dispositivi reali o ipoteticamente realizzabili, i quali siano in grado di eseguire
0.1 Esercizi calcolo combinatorio
0.1 Esercizi calcolo combinatorio Esercizio 1. Sia T l insieme dei primi 100 numeri naturali. Calcolare: 1. Il numero di sottoinsiemi A di T che contengono esattamente 8 pari.. Il numero di coppie (A,
Maiuscole e minuscole
Maiuscole e minuscole Abilità interessate Distinguere tra processi induttivi e processi deduttivi. Comprendere il ruolo e le caratteristiche di un sistema assiomatico. Riconoscere aspetti sintattici e
MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI
MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI Un linguaggio di programmazione è uno strumento per esprimere algoritmi in una forma adatta allo loro esecuzione da parte di un elaboratore La formulazione
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
Linguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
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
STRINGHE di un ALFABETO. Consideriamo un alfabeto di simboli V V è un insieme finito e non vuoto. Alfabeto della lingua inglese I={a,b,c,..
STRINGHE di un ALFABETO Consideriamo un alfabeto di simboli V V è un insieme finito e non vuoto Alfabeto binario A={0,1} Alfabeto della lingua inglese I={a,b,c,..z} Stringhe o parole Gli elementi di V
