Definizione di Grammatica

Documenti analoghi
Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

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

Le grammatiche formali

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

Espressioni Regolari

Le grammatiche formali

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

Linguaggi Regolari e Linguaggi Liberi

LINGUAGGI E GRAMMATICHE FORMALI

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

Automi e Linguaggi Formali Automi a stack (Pushdown automata)

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI

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

Pumping lemma per i linguaggi Context-free

Parole note, nuovi significati: linguaggio, determinismo e infinito

Linguaggi, grammatiche, espressioni regolari

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

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

Linguaggi Regolari e Linguaggi Liberi

Forma Normale di Chomsky

GRAMMATICA FORMALE. Albero sintattico

Linguaggi, grammatiche, espressioni regolari

L elaborazione del linguaggio naturale

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

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese

Un po di storia sui linguaggi

Grammatiche context-free

Informatica Teorica. linguaggi non contestuali

Linguaggi Sintassi e Semantica

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

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

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

AUTOMI A PILA. M.P. Schutzenberger

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

Programmazione Lineare

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

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

STRUMENTI FORMALI PER L ANALISI LESSICALE SINTATTICA

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

Linguaggi formali e compilazione

Corso di Programmazione Linguaggi di Programmazione

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

Automi a pila. Automi a pila

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

Quiz sui linguaggi CF

Linguaggi e Grammatiche Liberi da Contesto

Linguaggi formali e compilatori

Capitolo 2 Linguaggi e Grammatiche

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

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

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

9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY

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

Università degli Studi di Milano

Proprietà dei linguaggi regolari

Appunti di Linguaggi Formali

La tesi di Church-Turing

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

Funzioni vettoriali di variabile scalare

Parser Bottom UP. Giuseppe Morelli

Linguaggi e Traduttori: Analisi sintattica

Unità Didattica 2 I Linguaggi di Programmazione

Funzioni, Stack e Visibilità delle Variabili in C

Logica proposizionale

Funzioni derivabili (V. Casarino)

Automi a Pila e Grammatiche Libere dal Contesto. Automi a Pila e Grammatiche Libere dal Contesto

UNA GERARCHIA DI MACCHINE

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

Introduzione al Corso

Laboratorio di Ingegneria Informatica

Derivazione Numerica

Costruzione di espressioni regolari 4

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

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

Algoritmi e Principi dell Informatica

Corso di Programmazione Linguaggi di Programmazione. Linguaggio. Messaggio

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

Linguaggi di Programmazione

AUTOMA A STATI FINITI

Problemi, algoritmi, calcolatore

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

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

Università degli Studi di Udine Prova Scritta di Fondamenti dell Informatica (e annessi) 28 Giugno 2011

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

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

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

Corso di Analisi Matematica Calcolo differenziale per funzioni di una variabile

Fondamenti di Automatica

Esercizi di logica. Ivan Valbusa 5 dicembre 2012

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

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

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

Algoritmi e Principi dell Informatica

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

Introduzione al Metodo agli Elementi Finiti (FEM) (x, y) Γ Tale formulazione viene detta Formulazione forte del problema.

Transcript:

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 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 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 * : TIPO 0 equivalente a quella delle macchine di Turing 5 : 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 equivalente a quella degli automi limitati lineari 6

TIPO 2 - Non Contestuali : 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 equivalente a quella degli automi a pila. 7 TIPO 3 - Regolari : 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 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 + Macchine di Turing Automi Limitati Lineari Automi a Pila Automi a Stati Finiti 9 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 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 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 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