Le grammatiche formali

Documenti analoghi
Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Definizione di Grammatica

L elaborazione del linguaggio naturale

Le grammatiche formali

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

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

(1) Linguaggio L = insieme di stringhe, sequenze finite di elementi del vocabolario

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto

Linguaggi formali e compilazione

Espressività e limitazioni delle grammatiche regolari

Linguaggi formali e compilazione

Concetti di base sugli automi e sui linguaggi formali

Parte n.4 Linguaggi: Gerarchia ed Operazioni

Proprietà dei linguaggi non contestuali

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Pumping lemma per i linguaggi Context-free

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

Espressioni Regolari

Linguaggi Regolari e Linguaggi Liberi

Grammatiche context-free

Grammatiche Parse trees Lezione del 17/10/2012

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Quiz sui linguaggi regolari

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR:

Logica proposizionale

DISPENSE SU TEORIA DEGLI INSIEMI E NUMERI

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

Insiemi di numeri reali

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

Quiz sui linguaggi CF

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Esercitazioni di Algebra e Geometria

ELEMENTI di TEORIA degli INSIEMI

Esempio stringhe palindrome 1

Linguaggi e Grammatiche Liberi da Contesto

Università degli Studi di Palermo Facoltà di Economia. CdS Sviluppo Economico e Cooperazione Internazionale. Appunti del corso di Matematica

11. Misure con segno.

LINGUAGGI CONTEXT FREE. Lezione Lezione

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

Linguaggi e Traduttori: Analisi lessicale

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

AUTOMA A STATI FINITI

LINGUAGGI DI ALTO LIVELLO

Automi e Linguaggi Formali Automi a stack (Pushdown automata)

CORSO DI AZZERAMENTO DI MATEMATICA

2. I numeri reali e le funzioni di variabile reale

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.

GRAMMATICA FORMALE. Albero sintattico

Nozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

Matematica e-learning - Corso Zero di Matematica. Gli Insiemi. Prof. Erasmo Modica A.A.

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

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

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

8. Completamento di uno spazio di misura.

MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Matematica per le scienze sociali Elementi di base. Francesco Lagona

Sipser, Capitolo 0. Alfabeti, Stringhe, Linguaggi

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

Esercitazioni di Algebra e Geometria

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

Linguaggi Sintassi e Semantica

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

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

Linguaggi e Ambienti di Programmazione

LEZIONE 11. s V : V V V (v 1, v 2 ) v 1 + v 2 = s V (v 1, v 2 ), p V : k V V. per cui valgono:

Richiami di Matematica. 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica.

NOTE DI ALGEBRA LINEARE v = a 1 v a n v n, w = b 1 v b n v n

Logica proposizionale

Corso di Programmazione Linguaggi di Programmazione

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione

INTRODUZIONE AL TESTO FILOSOFICO

Proprietà commutativa e associativa per le serie

= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con

Forma Normale di Chomsky

Fondamenti di Informatica 2

Alberi: definizioni e dimostrazioni induttive.

Linguaggi, grammatiche, espressioni regolari

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar

Problemi, algoritmi, calcolatore

L algoritmo per la classificazione delle superfici topologiche connesse e compatte

Automi per il riconoscimento di linguaggi.

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g

delta δ mu (mi) µ M iupsilon υ Y eta η H omicron o O psi ψ Ψ 1. Scrivere il proprio nome e cognome in lettere greche.

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Grammatiche. Rosario Culmone, Luca Tesei. 20/11/2006 UNICAM - p. 1/49

Formulario sui Prodotti Hermitiani Marcello Mamino Pisa, 24 v 2010

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

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Proprietà dei linguaggi regolari

Corso di elettrotecnica Materiale didattico: i grafi

Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica. Modulo di Laboratorio di Algoritmi e Strutture Dati

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

SUCCESSIONI E SERIE NUMERICHE E DI FUNZIONI

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

DEFINIZIONE DI INSIEME

Linguaggio della Matematica

1 Ampliamento del piano e coordinate omogenee

Transcript:

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 pure di altre teorie grammaticali non chomskiane, come la Lexical Functional Grammar o la Generalized Phrase Structure Grammar (vedi ). Sul piano pratico hanno dato l avvio allo sviluppo dei compilatori di linguaggi di programmazione, dando così un importante impulso all informatica. Vengono, inoltre, utilizzate come linguaggi di descrizione in numerosi settori (vedi ). In linguistica computazionale hanno fornito il punto di partenza, insieme alla teoria degli automi, della teoria del parsing, o analisi sintattica automatica (vedi ) Descrizione informale La teoria delle grammatiche formali, nella sua formulazione originaria, risponde all esigenza di identificare i fondamenti teorici che giustificaano la nostra capacità grammaticale, cioè la nostra capacità di riconoscere frasi grammaticali appartenenti alla nostra lingua in un insieme di concatenazioni lunghe a piacere di parole. Un punto di partenza intuitivo molto valido è dato dal racconto La biblioteca di Babele di J.L. Borges, che tratta di una mitica biblioteca che si compone d un numero indefinito, e forse infinito, di gallerie esagonali A ciascuna parete di ciascun esagono corrispondono cinque scaffali; ciascuno scaffale contiene trentadue libri di formato uniforme; ciascun libro è di quattrocentodieci pagine; ciascuna pagina, di quaranta righe; ciascuna riga, di quaranta lettere di colore nero..il numero dei simboli ortografici è di venticinque.nel corridoio è uno specchio, che fedelmente duplica le apparenze (la sequenza dei brani è stata ritoccata). Gli uomini che vivono e si aggirano in questa biblioteca, che si identifica con l universo, osservano di tanto in tanto alcuni indizi, relativi al contenuto di questi libri, e formulano diverse teorie, spesso dividendosi in partiti diversi. Le osservazioni che motivano questi dibattiti sono, ad esempio Un altro (libro) è un mero labirinto di lettere, ma l ultima pagina dice Oh tempo le tue piramidi. oppure.trovò un libro tanto confuso come gli altri, ma in cui v erano quasi due pagine di scrittura omogenea, verosimilmente leggibile. Vengono formulate diverse ipotesi che approssimano le dimensioni e le caratteristiche di tale biblioteca. Tra queste, una molto accreditata è che gli scaffali della biblioteca registrano tutte le possibili combinazione dei venticinque simboli ortografici (numero, anche se vastissimo, non infinito) cioè tutto ciò ch è dato di esprimere, in tutte le lingue Spogliando il raccolto delle aggiunte artistiche, come i corridoi esagonali, i tratti salienti di questa narrazione sono: - la biblioteca contiene un numero forse infinito di libri che a loro volta contengono sequenze disordinate di combinazioni di venticinque simboli ortografici - sono presenti nei corridoi degli specchi che sembrano duplicare questo contenuto

- in mezzo a tali sequenze possono comparire sequenze di parole reali; in un caso appaiono addirittura due pagine consecutive. In altre parole, gli osservatori riconoscono sequenze appropriate della propria lingua, oppure sequenze che risultano in ogni caso linguistiche - l ipotesi che viene formulata è che i libri contengano, in mezzo a sequenze senza senso, tutti i possibili enunciati di tutte le possibili lingue. La prospettiva adottata da Borges è quella dell osservatore che si trova in mezzo all universo (alla biblioteca) e inferisce una serie di proprietà di questo universo. La teoria delle grammatiche formali adotta, invece, una prospettiva duplice, quella del creatore della biblioteca e quella dell osservatore. La biblioteca di Babele avrebbe potuto essere costruita con un operazione di estrazione casuale. Supponiamo di aver disposto in un urna venticinque bigliettini ciascuno recante uno dei venticinque simboli. Successivamente estraiamo i simboli ad uno ad uno rigettandoli subito dopo averli trascritti nell urna. Si formeranno, in questo modo, sequenze di lunghezza da 1 a n simboli, che costituiranno un insieme indefinito, certamente illimitato di sequenze, esattamente come la biblioteca di Babele. Il problema dell identificazione di qualcosa che sia esprimibile in tutte le lingue del mondo, presume, come preliminare, che qualcuno, che parli abitualmente una di tali lingue, riconosca una certa sequenza come appartenente alla propria lingua. L insieme delle sequenze riconosciute da tutti i parlanti di tutte le lingue costituisce esattamente ciò che Borges chiama tutto ciò ch è dato di esprimere, in tutte le lingue. Abbiamo identificato sia un operazione di costruzione della biblioteca di Babele sia l operazione che, pur non citata da Borges, sta alla base dell ipotesi più importante che gli uomini formulano su tale biblioteca. La teoria delle grammatiche formali è esattamente una teoria che mira ad identificare il meccanismo attraverso il quale ciascun parlante di una lingua è capace di discriminare le frasi della sua lingua da tutte quelle sequenze che non lo sono. Allo scopo di caratterizzare formalmente il linguaggio naturale, occorre collocarlo tra altri linguaggi formalmente definiti, e confrontarlo con essi. Occorre, quindi, prima di tutto, definire che cosa è un linguaggio formale e poi trattare il linguaggio naturale secondo i parametri stabiliti da tale definizione. La biblioteca di Babele è un monoide Il primo passo per caratterizzare l operazione di discriminazione è definire formalmente la biblioteca di Babele, cioè un insieme di sequenze create attraverso un operazione di estrazione casuale delle combinazioni di simboli. Definiamo prima di tutto Def.n.1 : Un alfabeto A è un insieme non vuoto di elementi detti simboli o caratteri. Si indica come A = { a,b,c...} Questa definizione generalizza i venticinque simboli di Borges; qualunque insieme di simboli scelto arbitrariamente può costituire A. A partire da A si possono formare stringhe, secondo Def.n.2 : Una stringa o parola su A è una sequenza finita o nulla di simboli di A, ottenuta per giustapposizione.

La lunghezza di una stringa è il numero di simboli che la compongono. La lunghezza della stringa x si indica x. Si indica di solito con una lettera greca, spesso λ, la stringa la cui lunghezza è 0. L operazione appena definita, che corrisponde all operazione di estrazione che abbiamo descritto sopra, produce stringhe di lunghezza da 0 a n. L insieme di tali stringhe, detto A*, è praticamente illimitato, soprattutto tenendo conto che la lunghezza n non è definita, ma arbitraria. Su tale insieme è ancora possibile applicare una ulteriore operazione di concatenazione. Def.n.3 : La concatenazione di stringhe è l'operazione che dà luogo ad una stringa formata giustapponendo le stringhe concatenate. Se x = ab e y = ba, xy = abba Questo specifico esempio corrisponde allo specchio di Borges che duplica la visione dei libri della biblioteca. L'operazione di concatenazione ha le seguenti proprietà: se w è l'insieme delle stringhe finite su A, allora: a) x, y w; (z = xy) w; w è chiuso rispetto alla concatenazione. b) v, x, y; (v (xy)) = ((vx) y); proprietà associativa. c) x; (x λ = λ x); λ è l'elemento di identità. d) xy, (xy = yx); la concatenazione non è commutativa. e) xy; ( xy = x + y ) dove = per ogni, = eiste un, = è membro di. L insieme di tutte le stringhe derivabili da A per giustapposizione, detto A* o, qui di seguito, W aggiunte alle stringhe derivabili per concatenazione all interno dello stesso insieme W si chiama monoide. Il monoide, esso stesso rappresentabile come W, è la rappresentazione formale della biblioteca di Babele. La definizione di un linguaggio all interno di un monoide. Il monoide è un insieme soggetto a tutte le proprietà degli insiemi, tra cui quella di permettere al suo interno la delimitazione di sottoinsiemi. Una classe interessante di tali sottoinsiemi sono i linguaggi. Def.n.4 : Un linguaggio L su A è un sottoinsieme di W. Un linguaggio formale, sottoinsieme di W, soggiace alle seguenti proprietà. Def.n. 5: Se L è un linguaggio, /L è il suo complementare e /L = {w} w W, w L Si ricorda che φ = /W, dove φ è il linguaggio vuoto. Def.n. 6: Dati i linguagggi L1 e L2, la loro unione (L1 + L2 o L1 L1 L2 = w w W, w L1 ovv. w L2 L2) è Def. n. 7: Dati i linguaggi L1 e L2, la loro intersezione (L1 L2) è

L1 L2 = w x W, w L1 e w L2 Def.n. 8: Dati i linguaggi L1 e L2, la loro concatenazione (L1. L2) è L1. L2 = w w W, w = xy, x L1 e y L2 Def.n. 9: Si chiama chiusure di L (L*) l'insieme L* = n 0 Ln dove L = λ, cioè il linguaggio costituito dalla parola vuota, e L n = L. L n-1, per n 1. La chiusura positiva di L; L +, è L + =Σ n 1 Ln Ciò significa che L+ = L. L* = L*. L e che L* = L + + λ Ogni linguaggio ottenuto da L per unione o concatenazione è contenuto in L* e W = A*. Le proprietà che abbiamo descritto per la concatenazione di simboli valgono ugualmente per la concatenazione di linguaggi. Dal punto di vista notazionale si dice A k = {w} w = k Le definizioni date sopra definiscono i linguaggi formali, le loro proprietà e le operazioni che possono essere compiute su di essi. Identificazione di un linguaggio W è l insieme di tutte le stringhe possibili. L è un linguaggio, tale che, rimanendo nella metafora di Borges, la somma di tutti gli L chiaramente identificabili costituisce quell insieme di lingue cui allude l autore. Riportando le nozioni fin qui introdotte alla lingua italiana, supponiamo di tagliare un dizionario della lingua italiana in tante striscioline di carta quante sono le parole che esso contiene; mettiamo queste striscioline in un cappello ed estraiamo tutte le sequenze possibili di lunghezza da 1 a n parole, rimettendo sempre nel cappello ogni strisciolina estratta. L insieme delle sequenze, che sarà, evidentemente, illimitato, include sequenze completamente casuali insieme a sequenze che sono frasi dell italiano. Ogni parlante di lingua italiana sarà sempre in grado di discriminare le frasi italiane dalle sequenze casuali. L esempio può essere ripetuto per ciascuna delle lingue del mondo. Il problema è Problema: Quale facoltà posseggono i parlanti di una lingua che permette loro di discriminare le frasi della propria lingua da quelle stringhe che non sono frasi? Questo problema può essere parafrasato in termini formali come: quali meccanismi permettono di identificare, all interno di W tutti gli elementi che fanno parte di L e discriminarli da quelli che non ne fanno parte? Sempre sul terreno formale si possono elencare quattro metodi: - elencazione delle stringhe, un metodo applicabile solo ai linguaggi finiti; - metodo generativo-sintetico, in cui un linguaggio è visto come l'insieme (infinito) di stringhe generate da una grammatica finita; - metodo riconoscitivo- analitico, in cui il linguaggio è visto come l'insieme delle stringhe riconosciute, o accettate, da un dispositivo finito detto automa;

-algebrico. Metodi di riconoscimento Il metodo algebrico non verrà qui trattato in quanto di poco interesse ai fini linguistici e computazionali. Il metodo dell elencazione si applica solo a linguaggi finiti, cioè formati da un insieme finito di stringhe. Questo non è il caso del linguaggio naturale, ad es. l Italiano, in quanto sappiamo per nostra stessa esperienza che il repertorio di frasi di una lingua è esso stesso illimitato, altrimenti non si potrebbe render conto della illimitata creatività della lingua. Restano quindi il metodo generativo-sintetico e quello riconoscitive analitico. Metodo generativo-sintetico: Grammatiche a struttura sintagmatica Una grammatica formale, o grammatica a struttura sintagmatica, è un dispositivo finito che permette di riconoscere un numero illimitato di frasi di una data lingua. Il dispositivo fondamentale delle grammatiche a struttura sintagmatica è la regola di riscrittura o produzione. Le grammatiche a struttura sintagmatica (in inglese Phrase Structure Grammars o PSG's) vennero introdotte da Chomsky per fornireuna classificazione dei linguaggi, preliminarmente alla caratterizzazione formale del linguaggio naturale. Una PSG è costituita dalla quadrupla G = (V, T, S, P) dove V = vocabolario, cioè l'insieme dei simboli coinvolti T V = vocabolario dei simboli terminali, cioè delle parole V - T = vocabàolario dei simboli non terminali, cioè delle categorie strutturali di passaggio S (V - T) = simbolo iniziale o assioma P = insieme di produzioni della forma α --> con α V + e V* Data una grammatica, si dirà che la stringa γ deriva direttamente dalla stringa µ, o che µ genera direttamente γ se e solo se µ = σ α τ, γ = σ τ e α --> P. Così ad esempio se µ = la nonna racconta γ = la mamma del padre racconta dove σ = 'la' e τ= 'racconta', si dice che "la nonna racconta" genera direttamente "la mamma del padre racconta"" se 'nonna' ---> 'mamma del padre' P. Più generalmente si dice che la stringa γ deriva da µ o che µ genera γ se e solo se esiste una sequenza di stringhe ω 1 ω 2...ω n con n > 0 tale che µ = ω 1 γ = ω n e i, 0 < i < n ω i --> ω i +1 Così, ad esempio, se bisnonna ---> nonna della madre P allora

µ = ω 1 = la bisnonna racconta ω 1 = la nonna della madre racconta γ = ω 2 = ω n )= la mamma del padre della madre racconta Si dirà, quindi, L (G) il linguaggio generato da G, l'insieme delle stringhe su T che possono essere derivate da S in G, cioè L (G) = x x T*, S -*-> x Così, ad esempio, se T = {il, cane, gatto, insegue, morde} V - T = {S, NP, VP, Det, N, V} P = {S --> NP VP, NP --> Det N, VP --> V NP, Det --> il, N --> cane, N --> gatto, V --> insegue, V --> morde} avremo L (G) = {il cane rincorre il gatto, il gatto rincorre il cane, il cane morde il gatto, il gatto morde il cane, il cane rincorre il cane, il gatto rincorre il gatto, il cane morde il cane, il gatto morde il gatto} Due grammatiche G1 e G2 si dicono equivalenti se L (G1) = L (G2). Ad esempio, la grammatica G1, formata da V = {A, S, a, b} T = {a, b} P = {S --> a A b a A --> aa A b A --> λ} genera un linguaggio L (G) = a n b n n > 1 ed è equivalente alla grammatica G2, formata da V = {S, a, b} T = {a, b} P = {S --> a S b {S --> ab} che genera lo stesso linguaggio. E' possibile imporre delle restrizioni alla forma delle produzioni, ottenendo così famiglie diverse di linguaggi. Tali famiglie, dette globalmente i linguaggi di Chomsky, vengono classificate in tre tipi diversi a seconda delle restrizioni imposte alle produzioni. Vengono detti linguaggi di tipo 0 quelli generati da produzioni senza alcuna restrizione. Un tipico linguaggio di tipo 0 è un linguaggio ricorsivamente enumerabile e non ricorsivo. Vengono detti linguaggi di tipo 1 quelli generati da grammatiche monotone e da grammatiche dipendenti dal contesto (context sensitive o CS). Le produzioni di una grammatica monotona hanno la forma α --> con α < cioè la stringa generata non può mai accorciarsi. Le grammatichge CS hanno produzioni della forma γ A δ --> γ δ, con γ,, δ V +, A (V - T).

Si può dimostrare che per ogni grammatica monotona esiste una grammatica CS equivalente. Un tipico linguaggio del tipo 1 è a n b n c n, n > 1. Vengono dette di tipo 2 le grammatiche libere, o libere da contesto o context-free (CF). Si tratta delle grammatiche più utilizzate sia nella definizione di linguaggi di programmazione che per lo studio del linguaggio naturale. La produzione tipica ha la forma A --> con A (V - T) e V + Un linguaggio CF tipico è a n b n, n > 1. Si dicono di tipo 3 i linguaggi lineari, le cui produzioni hanno la forma A --> con A (V -T) e V +, non può contenere più di un B (V-T). I linguaggi lineari possono essere lineari a destra o regolari, con produzioni della forma A --> a B opp. A --> a o lineari a sinistra, con produzioni della forma A --> B a opp. A --> a Si può dimostrare che per ogni grammatica lineare a destra esiste una grammatica lineare a sinistra equivalente. Un tipico linguaggio regolare è a n b m, con n, m > 1. I linguaggi finiti sono un sottoinsieme dei linguaggi lineari, del tipo (a, ab, bc). La relazione in cui stanno i linguaggi tra loro è L0 L1 L2 L3 L finiti Una notazione per grammatiche di tipo 2 spesso utilizzata nella definizione di linguaggi di programmazione o di altri linguaggi di rappresentazione, anche di uso linguistico, come i frames o le ATN (vedi sotto), è il Backus Naur ( o Normal) Formalism (BNF), in cui --> e notato ::= e si legge "è sostituito da", e più produzioni di uguale parte sinistra possono essere fattorizzate usando il simbolo "oppure". I simboli non terminali si scrivono tra <>. In questo modo le produzioni S --> NP VP S --> NP V si scrivono <S> ::= <NP> <VP> <NP> <V> <V> S --> V Data una grammatica formale, si dirà che una stringa appartiene al linguaggio corrispondente se esiste una derivazione nella grammatica dal simbolo iniziale a quella stringa. L'ordine di applicazione delle produzioni è irrilevante, mentre è rilevante la relazione che ogni produzione istituisce fra i simboli. Per le grammatiche CF e quelle regolari tale relazione è esprimibile mediante una struttura detta "ad albero". Data la grammatica G = (V, T, S, P) l'albero di derivazione di una stringa si ottiene nel modo seguente: a) ogni suo nodo ha un'etichetta che è un simbolo di V b) l'etichetta della radice è S

c) ogni nodo non terminale ha un'etichetta che è in (V -T) d) ogni nodo terminale ha un'etichetta che è in T e) se un nodo con etichetta x ha come discendenti diretti, nell'ordine i nodi con etichetta x 1,..., x k allora x --> x 1...x k è in P. L'ordine delle produzioni è irrilevante. Es.: G = ( {S, A, a, b}, {a, b}, S, P) P = {S --> a A S a A --> S b A SS ba} cioè (1) S --> a A S S --> a (3) A --> S b A (4) A --> S S (5) A --> b a una possibile derivazione è

S (1) a A S (3) a S b A S a S b A a (5) a S b b a a a a b b a a Si chiama, invece, derivazione canonica sinistra quella ottenuta sostituendo sempre il primo simbolo a sinistra: S (1) a A S (3) a S b A S a a b A S (5) a a b b a S a a b b a a Al contrario, si chiama derivazione canonica destra quella ottenuta espandendo sempre il primo simbolo a destra: S (1) a A S a A a (3) a S b A a (5) a S b b a a a a b b a a Indipendentemente dal tipo di derivazione che possa generare una stringa, ad essa è sempre associato un unico albero. Si può dire, quindi, che ad ogni albero possono corrispondere una o più derivazioni. Nel caso del nostro esempio l'albero è il seguente

Si dice che una grammatica G è ambigua, se esiste una sequenza di L (G) generata da due derivazioni caniche sinistre distinte. L è non ambiguo se esiste una grammatica CF non ambigua che la generi, altrimenti si dice intrinsecamente ambigua. La rappresentazione ad albero evidenzia il fenomeno della ricorsione in una produzione, cioè il fatto che nella parte destra appaia, tra gli altri, anche il simbolo a sinistra. La ricorsione viene detta - ricorsione destra A --> A che dà luogo ad alberi del tipo - ricorsione sinistra A --> A che dà luogo ad alberi del tipo

Le grammatiche di tipo computazionale sono scritte o fanno comunque riferimento ad una grammatica Context Free e restituiscono in ogni caso un albero sintattico a struttura sintagmatica.