Definizione di Grammatica

Похожие документы
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

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

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

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

Linguaggi Regolari e Linguaggi Liberi

Forma Normale di Chomsky

GRAMMATICA FORMALE. Albero sintattico

Grammatiche context-free

Linguaggi Sintassi e Semantica

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

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

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

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

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

Linguaggi e Grammatiche Liberi da Contesto

Linguaggi formali e compilatori

Capitolo 2 Linguaggi e Grammatiche

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

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)

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

Unità Didattica 2 I Linguaggi di Programmazione

Funzioni, Stack e Visibilità delle Variabili in C

Logica proposizionale

Funzioni derivabili (V. Casarino)

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

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

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Algoritmi e Principi dell Informatica

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

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

Fondamenti di Automatica

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.

Транскрипт:

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