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

Documenti analoghi
Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Definizione di Grammatica

Espressioni Regolari

Parte n.4 Linguaggi: Gerarchia ed Operazioni

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

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

Le grammatiche formali

Quiz sui linguaggi CF

Proprietà dei linguaggi non contestuali

Fondamenti d Informatica: lavoriamo con le grammatiche. Barbara Re, Phd

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

Espressività e limitazioni delle grammatiche regolari

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

MODULO 04 ELEMENTI DI TEORIA DEI LINGUAGGI FORMALI

Linguaggi Regolari e Linguaggi Liberi

Nozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi

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

Le grammatiche formali

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Linguaggi e Grammatiche Liberi da Contesto

Costruzione di espressioni regolari 4

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto

Pumping lemma per i linguaggi Context-free

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

Linguaggi, grammatiche, espressioni regolari

Grammatiche Parse trees Lezione del 17/10/2012

Linguaggi, grammatiche, espressioni regolari

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

Linguaggi Regolari e Linguaggi Liberi

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI

L elaborazione del linguaggio naturale

Sipser, Capitolo 0. Alfabeti, Stringhe, Linguaggi

LINGUAGGI CONTEXT FREE. Lezione Lezione

Informatica Teorica. linguaggi non contestuali

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

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

Grammatiche context-free

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

Proprieta dei linguaggi liberi da contesto. Proprieta dei linguaggi liberi da contesto

Insiemi di numeri reali

Logica proposizionale

LINGUAGGI E GRAMMATICHE FORMALI

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

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese

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

Struttura interna dei costituenti e proprietà formali della struttura ad albero

Corso di ALGEBRA (M-Z) INSIEMI PARZIALMENTE ORDINATI E RETICOLI

Corso di Programmazione Linguaggi di Programmazione. Linguaggio. Messaggio

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

1 Principio di Induzione

Logica proposizionale

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Forma Normale di Chomsky

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

INSIEMI E RELAZIONI. 1. Insiemi e operazioni su di essi

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

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

AL220 - Gruppi, Anelli e Campi

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

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

LINGUAGGI DI ALTO LIVELLO

Corso di Programmazione Linguaggi di Programmazione

7. Automi a Pila e Grammatiche Libere

Presentazioni di gruppi: generatori e relazioni

Sviluppi e derivate delle funzioni elementari

Elaborazione di File di Dati. Uso di semplici comandi Espressioni regolari AWK

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Fondamenti di informatica per la sicurezza anno accademico docente: Stefano Ferrari

Esempio stringhe palindrome 1

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

Alberi: definizioni e dimostrazioni induttive.

3.Polinomi ed operazioni con essi

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8

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

9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY

Turing, i nastri e le macchine

Intorno al Lemma d Iterazione per Linguaggi Liberi dal Contesto

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

Linguaggi formali e compilazione

Linguaggi Sintassi e Semantica

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

Automi e Linguaggi Formali Automi a stack (Pushdown automata)

Linguistica Computazionale

Presentazione di gruppi

Logica Computazionale

Fondamenti di Programmazione Recupero Primo Parziale 30 Gennaio 2008 Traccia A

Intelligenza Artificiale. Logica proposizionale: calcolo automatico

Linguaggi formali e compilazione

Proprietà dei linguaggi regolari

Maiuscole e minuscole

GRAMMATICA FORMALE. Albero sintattico

CAPITOLO SECONDO APPLICAZIONI TRA INSIEMI E RELAZIONI DI EQUIVALENZA

L aritmetica degli insiemi infiniti Parte I

Un po di storia sui linguaggi

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

LINGUAGGI FORMALI E AUTOMI

11. Misure con segno.

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

Transcript:

Luigi Rizzi Linguistica computazionale I. Elementi di base sulle grammatiche formali (1) Linguaggio L = insieme di stringhe, sequenze finite di elementi del vocabolario (2) Dato un vocabolario A, l insieme di tutte le stringhe costruite su A (A*) più l operazione di concatenazione (formazione di stringhe complesse a partire da stringhe semplici) costituisce un monoide. (3) Normalmente, non tutte le stringhe del monoide costituiscono frasi ben formate di L: per es, dato un frammento del lessico italiano, non tutte le sequenze arbitrarie sono frasi dell italiano: Il bambino corre Corre il bambino *il corre bambino * bambino corre il.. Quindi L con vocabolario A è in genere un sottoinsieme proprio di A*; compito della grammatica di L è di catturare il sottoinsieme in questione generando tutte e sole le stringhe che lo compongono. Per lo studio delle proprietà formali, è utile considerare linguaggi semplificati, con lessici molto ridotti e sintassi semplice, per es, linguaggi come i seguenti: ab, aabb, aaabbb, aaaabbbb... aa, bb, abba, baab, abaaba,... aa, abab, abbababbab,... (4) Una grammatica formale è un sistema deduttivo di assiomi e regole di inferenza, che genera le frasi della lingua come suoi teoremi. (5) Una grammatica formale è definita da una quadrupla : (i) (ii) (iii) (iv) Un vocabolario terminale V T Un vocabolario non terminale V N Un assioma, o simbolo iniziale S V N Un insieme di regole di riscrittura ϕ ψ (6) Nella sua forma più generale, la parte sinistra e la parte destra della regola di riscrittura sono stringhe qualsiasi costruite sui due vocabolari, con la sola restrizione che la parte sinistra deve contenere almeno un simbolo di V N. (7) Una derivazione è una sequenza di stringhe che parte dall assioma e arriva fino a generare una stringa del linguaggio tramite le regole, eliminando via via i simboli non terminali. 1

Esempio: V T : {a, b} V N : {S, A, B} Assioma: S Regole: S A B S S e AB BA BA AB A a B b Esempio di derivazione: S ABS BAS BAABS BAAB baab baab baab baab (8) e è la stringa vuota, l elementi di identità rispetto alla concatenazione: eϕ = ϕe = ϕ II. Alberi (9) Se si pone la restrizione che la parte sinistra della regola consti di un solo simbolo non terminale, la derivazione si può esprimere in forma di albero. (10) Dominanza (riflessiva, transitiva, antisimmetrica (se x domina y, allora y domina x solo se x=y) e precedenza (irriflessiva, transitiva, asimmetrica (se x precede y, allora y non precede x)) (11) Condizione di esclusività: due nodi qualsiasi in un albero sono in rapporto di precedenza o in rapporto di dominanza. (12) Condizione di non-incrocio: in un albero, se x precede y, allora tutti i nodi dominati da x precedono tutti i nodi dominati da y. (13) x e y sono nodi sorella sse sono immediatamente dominati dallo stesso nodo z (madre) (14) C-comando: x c-comanda y sse il nodo sorella di x domina y 2

(15) Assioma di corrispondenza lineare: siano X, Y, nonterminali, e x, y, terminali tali che X domina x e Y domina y; allora, se X c-comanda asimmetricamente Y, x precede y. (Kayne 1994) (16) Siccome lo specificatore c-comanda asimmetricamente il complemento, segue da (15) che lo specificatore precede il complemento. III. La gerarchia di Chomsky (17) Chomsky (1956, 59) ha osservato che ponendo restrizioni via via più forti sulla forma delle regole si può stabilire una gerarchia di grammatiche di potere generativo decrescente Tipo 0: sistemi di riscrittura non ristretti: ϕ ψ, con ϕ ε (alternativamente, con ϕ contenente almeno un simbolo non terminale. Tipo 1: sistemi di riscrittura contestuali (context-sensitive): A ψ / α β, con ψ ε. Tipo 2: sistemi di riscrittura acontestuali (context free): A ψ. Tipo 3: sistemi regolari: A xb, A x (18) Nelle regole dei linguaggi di tipo 0 qualunque stringa non nulla può essere riscritta come qualunque stringa (inclusa la stringa nulla). Questi sistemi di riscrittura caratterizzano i linguaggi ricorsivamente enumerabili, quelli che possono essere generati da una Macchina di Turing. (19) Un altro modo di concettualizzare le regole dei sistemi di tipo 1 consiste nel notare che riscrivono una sequenza di simboli in un altra sequenza di simboli non decrescente: cioè l output ha almeno tanti simboli quanto l input. (20) I sistemi di tipo 2 riscrivono un simbolo non-terminale come qualunque stringa di terminali o non-terminali, inclusa la stringa nulla. (21) I sistemi di tipo 3 hanno un simbolo non-terminale a sinistra della freccia, e lo riscrivono come una stringa di simboli con un solo non-terminale in fondo (regole lineari a destra). (22) valgono le seguenti relazioni insiemistiche tra i linguaggi generati dai diversi tipi di grammatiche: (i) i linguaggi di tipo 3 sono propriamente inclusi nei linguaggi di tipo 2; (ii) i linguaggi di tipo 2 non contenenti ε sono propriamente inclusi nei linguaggi di tipo 1; (iii) i linguaggi di tipo 1 sono propriamente inclusi nel linguaggi di tipo 0. Alcuni esempi: (23) L = {x {a, b}* x contiene un egual numero di a e di b, in qualsiasi ordine} aaabababbbba 3

G = < {a, b}, {S, A, B}, S, R> S ab S e S ba B b B bs A a A as A baa B abb Questo linguaggio è di tipo 2 e 0; non è di tipo 1 perché ha una regola shrinking, né di tipo 3. (24) L = {x {a, b}* x = a n b n (n 0)} aaaaaabbbbbb G = < {a, b}, {S}, S, R> S asb S e Linguaggio di tipo 2 e 0. Non può essere di tipo 3, intuitivamente, perché una volta generata la stringa di a la grammatica non ha modo di ricordarsi quante occorrenze di a ha prodotto per riprodurle con b. (25) L = {x {a, b}* x = yz, in cui z è l immagine speculare di y} abbababbababba G = < {a, b}, {S}, S, R> S asa S bsb S aa S bb Linguaggio di tipo 2, 1, 0, ma non 3 (26) L = {x {a, b}* x = a n b m } 4

aaaabbbbbbbb G = < {a, b}, {S, T}, S, R> S as S bt T bt S a S b T b Questo è un linguaggio di tipo 3, visto che, una volta passato dalla generazione di a alla generazione di b, non ha il problema di ricordarsi il numero delle occorrenze. Pumping Lemma (27) Come possiamo sapere se un dato linguaggio non è regolare? (28) Pumping Lemma: Supponiamo che L sia un linguaggio regolare infinito. Allora qualunque stringa di L deve poter essere divisa in tre parti x, y, z, tali che la stringa x y n z (ottenuta pompando il segmento di mezzo) apartenga a L. (30) Quindi, a n b n (n 0) non è un linbguaggio regolare: prendiamo una stringa, per es aaaaabbbbb 1. se segmentiamo aaa aa bbbbb, pompando il segmento di mezzo perdiamo l egual numero di a e b; 2. se segmantiamo aaaaa bb bbb, vale la stessa conclusione; 3. se segmentiamo aaaa ab bbbb, perdiamo il fatto che una sequenza continua di a sia seguita da una sequenza continua di b; QED Le lingue naturali sono regolari? (31) L inglese non è una lingua a stati finiti (regolare) (Chomsky 1956, 57, 59) (32)a If S1 then S2 b Either S3 or S4 c The man who said S5 is arriving today (33)Queste opzioni danno luogo a strutture di tipo xx R che non sono regolari. Più semplicemente, ci sono nelle lingua naturali delle strutture di tipo a n b n, che già sappiamo non essere regolari per il Pumping Lemma: 5

(34) Se è vero che, se la ditta è in crisi ci sarà una riduzione di personale, allora ci sarà uno sciopero. (35) Se se se allora allora allora Le lingue naturali sono contex-free? (35) Lingue con due identiche stringhe concatenate (xx) non sono context free (36)Le lingue umane presentano dipendenze attraverso serie di tipo Per esempio, X1, X2, Xn, Y1, Y2, Yn (37) Gianni, Maria, Francesca e Guido sono stati rispettivamente promosso, bocciata, promossa, bocciato Con il participio n accordantesi con il nome n. Complessità nella competenza e nell esecuzione (37)Le lingue naturali ammettono certe strutture grammaticali che sono difficili da utilizzare. Un caso classico è l autoincassamento: (38)Il cane ha inseguito il gatto che ha catturato il topo che ha mangiato il formaggio (39) Il formaggio che il topo che il gatto che il cane ha inseguito ha catturato ha mangiato era sul tavolo Gianni è consapevole del fatto che Mario tema la possibilità che (40) La nonna continuerà a dormire poiché il padre darà una mano se la madre si sveglia quando il bambino piange (41) Poiché se quando il bambino piange la madre si sveglia il padre darà una mano, la nonna continuerà a dormire 6