Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Documenti analoghi
Definizione di Grammatica

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

Espressività e limitazioni delle grammatiche regolari

Grammatiche Parse trees Lezione del 17/10/2012

Linguaggi Regolari e Linguaggi Liberi

Espressioni Regolari

Linguaggi Regolari e Linguaggi Liberi

Parole note, nuovi significati: linguaggio, determinismo e infinito

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI

LINGUAGGI E GRAMMATICHE FORMALI

Pumping lemma per i linguaggi Context-free

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

Linguaggi, grammatiche, espressioni regolari

L elaborazione del linguaggio naturale

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese

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

Linguaggi, grammatiche, espressioni regolari

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

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

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

STRUMENTI FORMALI PER L ANALISI LESSICALE SINTATTICA

GRAMMATICA FORMALE. Albero sintattico

Linguaggi Sintassi e Semantica

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

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

Informatica Teorica. linguaggi non contestuali

Grammatiche context-free

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

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

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

Linguaggi formali e compilatori

November 13, sta ad indicare che la formula B dipende dalle assunzioni occorrenti nell insieme X.

Un po di storia sui linguaggi

Corso di Programmazione Linguaggi di Programmazione

Automi a pila. Automi a pila

Unità Didattica 2 I Linguaggi di Programmazione

Linguaggi e Grammatiche Liberi da Contesto

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

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

Linguaggi formali e compilazione

Capitolo 2 Linguaggi e Grammatiche

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

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

Università degli Studi di Milano

Linguaggi di Programmazione

Logica proposizionale

Proprietà dei linguaggi regolari

Appunti di Linguaggi Formali

La tesi di Church-Turing

UNA GERARCHIA DI MACCHINE

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

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

Parser Bottom UP. Giuseppe Morelli

TEORIA DEGLI AUTOMI PER LINGUAGGI FORMALI T E M I. di Alessandro Aldini

Introduzione al Corso

Derivazione Numerica

Laboratorio di Ingegneria Informatica

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Linguaggi e Traduttori: Analisi sintattica

Corso di Laurea in Fisica. Geometria. a.a Canale 3 Prof. P. Piazza Magiche notazioni

Costruzione di espressioni regolari 4

Funzioni vettoriali di variabile scalare

Linguistica Computazionale

Algoritmi e Principi dell Informatica

! # %# & # & # #( # & % & % ( & )!+!,!++

Algoritmi e Principi dell Informatica

LA METAFORA DELL UFFICIO

9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY

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

Teoria della Programmazione Lineare. Teoria della Programmazione Lineare p. 1/8

Corso di Laurea in Informatica. Insegnamento integrato di Calcolo (Calcolo I, Calcolo II, Esercitazioni di Calcolo) Prof. F.

La rappresentazione dell algoritmo Diagrammi di flusso

Linguaggi e tecnologie per il Web

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

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

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

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

Espressioni regolari

DEDUZIONE DEL TEOREMA DELL'ENERGIA CINETICA DELL EQUAZIONE SIMBOLICA DELLA DINAMICA

LA CORRENTE ELETTRICA

Ragionamento Automatico Calcolo dei Sequenti. Lezione 5 Ragionamento Automatico Carlucci Aiello, 2004/05 Lezione 5 0. Il calcolo dei sequenti

Linguistica Computazionale

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

Sviluppi e derivate delle funzioni elementari

Capitolo 1 Linguaggi e Macchine Astratte

Rappresentazione dei dati in memoria

Linguaggi regolari e automi a stati finiti

DIFFERENZIAZIONE. Sia f una funzione reale di variabile reale con dominio un intervallo. Se f è derivabile in un punto x 0, allora: f(x) f(x 0 ) lim

Introduzione alla codifica binaria

Le Macchine di Turing

Elementi di Algebra Lineare. Spazio Vettoriale (lineare)

Cenni di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B)

Sviluppo di programmi

Il concetto di calcolatore e di algoritmo

Teoria di Lebesgue. P n E = n=1

Analisi Matematica I DISEQUAZIONI Risposte Pagina Es. 1 Es. 2 Es. 3 Es. 4 Es. 5 1

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Argomenti Capitolo 1 Richiami

Esercitazione. Ricorsione. May 31, Esercizi presi dal libro di Rosen

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

Transcript:

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 terminali V T e l insieme dei simboli terminali P e l insieme delle regole di produzione o riscrittura S e il simbolo iniziale (radice) vincoli: V N V T = 2

Regole di Produzione Per comodità si definisce anche il vocabolario V definito come l'unione di simboli terminali e non terminali, ovvero: V = V T V N Sono importanti per la definizione delle varie classi di grammatiche gli insiemi di stringhe che si possono formare a partire da V, ovvero V + e V* V + rappresenta l'insieme delle stringhe che si possono formare a partire da V, esclusa la stringa vuota ε V* rappresenta l'insieme delle stringhe che si possono formare a partire da V, compresa la stringa vuota ε 3

Classificazione di Chomsky Classificazione di Chomsky Le grammatiche possono essere classificate in base alla loro capacità generativa Nel 1957 Chomsky descrive 4 classi di formalismi grammaticali che differiscono soltanto nella forma delle regole di riscrittura 4

TIPO 0 - Ricorsivamente Enumerabili Le regole di riscrittura non hanno alcuna restrizione, e sono del tipo: α β α V +, β V * Classificazione di Chomsky: TIPO 0 Tali grammatiche hanno una capacità espressiva equivalente a quella delle macchine di Turing 5

Classificazione di Chomsky: TIPO 1 TIPO 1 - Sensibili al Contesto Rispetto alle grammatiche ricorsivamente enumerabili viene introdotto il vincolo addizionale che la parte destra deve contenere almeno tanti simboli quanto la parte sinistra, ovvero: α β Sono anche dette grammatiche sensibili al contesto (context-sensitive) poiché storicamente il vincolo addizionale che le caratterizzava è il seguente: * + γχδ γρδ γ, δ, ρ V, χ V Tali grammatiche hanno una capacità espressiva equivalente a quella degli automi limitati lineari 6

TIPO 2 - Non Contestuali Classificazione di Chomsky: TIPO 2 Rispetto alle grammatiche sensibili al contesto viene introdotto il vincolo addizionale che la parte sinistra di una regola sia costituita da un simbolo non terminale; in simboli: α V N L introduzione di tale vincolo impedisce che ci sia un contesto che può influenzare l attivazione di una regola Tali grammatiche hanno una capacità espressiva equivalente a quella degli automi a pila. 7

TIPO 3 - Regolari Classificazione di Chomsky: TIPO 3 Rispetto alle grammatiche di tipo 2 viene introdotto il vincolo addizionale che la parte destra di una regola sia costituita da un simbolo terminale, opzionalmente seguito da un simbolo non terminale Formalmente: β V T oppure β V T V N Tali grammatiche hanno una capacità espressiva equivalente a quella degli automi a stati finiti 8

Tabella Riassuntiva sulle Grammatiche TIPO 0 - ric. enumerabili α β α V, V TIPO 1 - contestuali α β o, in alternativa: * γχδ γρδ γ, δ, ρ V, χ V TIPO 2 - libere da contesto α V N TIPO 3 - regolari β V T oppure + β β * V T V N + Classificazione di Chomsky Macchine di Turing Automi Limitati Lineari Automi a Pila Automi a Stati Finiti 9

Classificazione di Chomsky Linguaggio Generato da una Grammatica Il linguaggio L(G) generato da una grammatica G è definito come l insieme delle stringhe di soli simboli terminali che soddisfano la grammatica, ovvero derivabili dalla radice tramite l applicazione delle regole di riscrittura Per formalizzare L(G) abbiamo bisogno di definizioni preliminari (derivazione semplice e derivazione multipla) 10

Definizioni Preliminari Classificazione di Chomsky Derivazione semplice γ γ se esiste una regola applicabile capace di trasformare γ' in γ'' Derivazione multipla * γ 1 * γ m se esiste una sequenza di regole applicabili capaci di trasformare γ 1 in γ m 11

Classificazione di Chomsky Linguaggio Generato da una Grammatica A questo punto siamo in grado di dare una definizione formale che definisce l'insieme di tutte le stringhe riconosciute da una grammatica G (ovvero il linguaggio L associato a G): + L( G) = { w w VT, S * w } NB Nella definizione abbiamo escluso dal linguaggio la stringa nulla, imponendo che w V + T. Questa limitazione può essere agevolmente rimossa accettando che w V T. Ricordiamo che il simbolo V + T (V T ) denota l'insieme di tutte le stringhe che si possono formare a partire dai simboli di V T, ad eccezione della (compresa la) stringa nulla. 12

Equivalenza tra Grammatiche Classificazione di Chomsky Due grammatiche G1 e G2 sono equivalenti se L(G1) = L(G2) In generale, dato un linguaggio L, ci saranno infinite grammatiche in grado di generarlo 13