In generale, con il termine di grammatica si intende un formalismo che permette di definire un insieme di stringhe mediante l’imposizione di un particolare.

Slides:



Advertisements
Presentazioni simili
Progetto lauree scientifiche
Advertisements

Calcolo Combinatorio.
Gli aspetti produttivi Sistemi colturali risicoli Tecniche di coltivazione e di gestione dei residui colturali a confronto.
Alfabeti, Stringhe e Linguaggi
1 A B C D … a b c d … Il concetto di insieme 1
COSTRUZIONI GEOMETRICHE ELEMENTARI 3
Sintassi (prima parte)
Traduttore diretto dalla sintassi (seconda parte)
Parser Bottom UP Giuseppe Morelli. Parser Bottom UP Un parser Bottom Up lavora costruendo il corrispondente albero di parsing per una data stringa di.
Linguaggi Regolari e Linguaggi Liberi
Costruzione delle tabelle di parsing LR canoniche
Automi e Linguaggi Regolari Alberto Cuesta Cañada.
Sistemi di Lindenmayer
INSIEMI INSIEME= gruppo di oggetti di tipo qualsiasi detti elementi dell’insieme. Un insieme è definito quando viene dato un criterio non ambiguo che.
1 Linguaggi di Programmazione - elementi Corso di Laurea in Informatica (AA 2005/2006) Gabriella Pasi e Carla Simone
Il ragionamento classico
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Liceo Scientifico "A.Volta" Reggio Calabria
Alfabeti, Stringhe e Linguaggi Def: un insieme è una collezione non ordinata di oggetti o elementi Gli insiemi sono scritti tra { }. Gli elementi sono.
-calcolo Vogliamo studiare le problematiche relative al meccanismo di chiamata di funzione (eg differenze fra binding statico e dinamico) in isolamento.
Implementazione di Linguaggi 2
SPECIFICA DELLE MAPPE FINITE Gianna Reggio
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
LINGUAGGI DI PROGRAMMAZIONE
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Introduzione ~ 1850 Boole - De Morgan – Schroeder ALGEBRA BOOLEANA
Fondamenti di Comunicazione Digitale
Logica Matematica Seconda lezione.
Linguaggi e Modelli Computazionali LS - Prof E.Denti
S ::= Formazione Formazione ::= NomeSquadra Team NomeSquadra ::= Team ::= Schema Tabellino | Tabellino Schema ::= Difesa Tabellino ::= ElencoTitolari.
Introduzione ai linguaggi formali e alle stringhe
Alfabeti Linguaggi Automi Grammatiche e Compilatori
BIOINFO3 - Lezione 281 PATTERN MATCHING E sicuramente una delle cose più utili del Perl, che lo rende un linguaggio estremamente potente. Permette di cercare.
Interpolazione e regressione
Grammatiche, Linguaggio e Automi R. Basili TAL - a.a
Università degli Studi di Bologna Facoltà di Ingegneria Anno Accademico 2007/2008 Laurea Specialistica in Ingegneria Informatica Linguaggi e Modelli Computazionali.
Sistemi di Numerazione
Che cosa è un insieme convesso?
COSTRUZIONI GEOMETRICHE ELEMENTARI 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Progetto esame Tecnologie Web Anno: 2014 A cura di: Salvatore Giovanni De Vivo Matricola: Strumenti utilizzati: Html, ASP.NET, C#.
Sistemi basati su conoscenza Linguaggio naturale: grammatiche Prof. M.T. PAZIENZA a.a
1 Informazioni sull’esame §Esame orale su tutti gli argomenti trattati a lezione §Seminario: studio di un argomento avanzato, tipicamente di un formalismo.
MATEMATIZZAZIONE Con il termine “Matematizzazione” intendiamo quel processo attraverso il quale si tenta di “tradurre” nel formalismo matematico un problema.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 19 Prof. M.T. PAZIENZA a.a
Algebra di Boole.
FRAZIONI E NUMERI DECIMALI
4 < 12 5 > −3 a < b a > b a ≤ b a ≥ b
Elaborazione del linguaggio naturale automi & morfologia Maria Teresa PAZIENZA a.a
Antonio Pio Urzino 1 A A.S. 2009/10
Fondamenti dei linguaggi di programmazione: automi.
Fondamenti di Informatica1 Memorizzazione su calcolatore L'unità atomica è il bit (BInary DigiT) L'insieme di 8 bit è detta byte Altre forme di memorizzazione:
Linguaggi di programmazione: panoramica Linguaggi di programmazione ad alto livello: – –Programmazione procedurale – –Programmazione object oriented –
Automi a pila (1) Un automa a pila (PDA) è M = (Q, S, G, d, q0, Z0, F) dove: Q insieme finito di stati S alfabeto finito di input 3. G alfabeto di pila.
Grammatiche Grammatiche libere da contesto Grammatiche regolari
Grammatiche non contestuali (1)
Macchine di Turing (1) Il modello di base ha un controllo finito, un nastro di input diviso in celle e una testa di lettura che esamina una cella alla.
Modelli A Stati Finiti Per Il Linguaggio Naturale A cura di De Pascalis Roberto.
Automi temporizzati.
Algebra di Boole ?.
TEORIA ELEMENTARE DEGLI INSIEMI
Linguaggi e Grammatiche Alfabeto : insieme non vuoto di elementi detti simboli A = { a, b, c } Stringa : sequenza di simboli di un alfabeto ab abc abcab.
Linguaggi, stringhe e alfabeti. Linguaggi e grammatiche Un linguaggio è un sistema di comunicazione tra persone che permette di trasmettere informazioni.
Teoremi sulle funzioni derivabili 1. Definizione di massimo globale x0x0 f(x 0 ) Si dice massimo assoluto o globale di una funzione il più grande dei.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
I PARALLELOGRAMMI PARALLELOGRAMMI
Algebra e logica Ragionare, simbolizzare, rappresentare.
Prof. Cerulli – Dott. Carrabs
Tipo String String è una classe predefinita
Transcript della presentazione:

In generale, con il termine di grammatica si intende un formalismo che permette di definire un insieme di stringhe mediante l’imposizione di un particolare metodo per la loro costruzione. Tale costruzione si effettua partendo da una stringa particolare e riscrivendo via via parti di essa secondo una qualche regola specificata nella grammatica stessa.

Le grammatiche formali generalmente studiate nel contesto informatico sono denominate Grammatiche di Chomsky perchè furono introdotte appunto dal linguista Noam Chomsky con lo scopo di rappresentare i procedimenti sintattici elementari che sono alla base della costruzione di frasi della lingua inglese. Pur essendosi presto rivelate uno strumento inadeguato per lo studio del linguaggio naturale, le grammatiche formali hanno un ruolo fondamentale nello studio delle proprietà sintattiche dei programmi e dei linguaggi di programmazione.

Grammatiche di tipo 3 Queste grammatiche, dette anche regolari, ammettono produzioni del tipo: Il termine “regolare” deriva dal fatto che tali linguaggi sono rappresentabili per mezzo di espressioni regolari. Le grammatiche regolari possono essere lineari destre o lineari sinistre. Il termine “lineare” deriva dal fatto che al lato destro (o sinistro) di ogni produzione compare al più un simbolo non terminale. I linguaggi generabili da grammatiche di tipo 3 vengono detti linguaggi di tipo 3 o regolari.

Esempio: Grammatica lineare destra con P che contiene: Grammatica lineare sinistra con P che contiene: per ogni grammatica lineare destra ne esiste una lineare sinistra equivalente e viceversa.

GERARCHIA DI CHOMSKY

Si dice lineare una grammatica non contestuale in cui la parte destra di ogni produzione contenga al pi`u un non terminale. Le grammatiche di tipo 3 sono tutte grammatiche lineari: in particolare esse sono lineari destre se le produzioni sono del tipo A  aB e lineari sinistre se le produzioni sono del tipo A  Ba. Grammatica lineare NON regolare GRAMMATICHE LINEARI

Esempio Esempio: V = {a,b,c,d} N = {A,S} P = {S  cAd; A  bAb|a} Linguaggio generato da G: L(G) = {cb n ab n d |n  0} ESEMPI Grammatica di tipo context free Derivazione per cbabb?Non esiste! Derivazione per cbbbabbbd? S  cAd  cbAbd  cbbAbbd  cbbbAbbbd  cbbbabbbd

Dato il linguaggio L = {a n bcd n | n  0} costruire una grammatica che lo genera. ESERCIZI 1 COMPITINO aa 2002/2003 V = {a,b,c,d} N = {A,S} P = {S  A; A  aAd|bc} E’ possibile utilizzare una grammatica regolare? Se si, dare la sua definizione. NO

Dato il linguaggio L = {a n bcd m | n  0, m  0} costruire una grammatica che lo genera. ESERCIZI 1 COMPITINO aa 2002/2003 V = {a,b,c,d} N = {A,S} P = {S  A; A  aAd|bc|aA|Ad} P = {S  A A  aA|bc|Ad} E’ possibile utilizzare una grammatica regolare? Se si, dare la sua definizione. SI S  A A  aA|bC C  cD D  dD| 

Data la grammatica V = {x} N = {S,X,B} P = S  xXX  xX  xBB  xX A) di che tipo e’ la grammatica? ESERCIZI 1 COMPITINO aa 2002/2003 regolare, lineare a destra D) Esiste una grammatica context free che lo genera? Se si, dare la sua definizione. L(G) = {x 2n |n>=1} S  X X  xXx|xx B) mostrare una derivazione per xxxxx e una per xxxx S  xX  xxB  xxxX  xxxx Non esiste derivazione per xxxxx C) qual’e’ il linguaggio generato?

ESERCIZI 1 COMPITINO aa 2002/2003 Dato il linguaggio L = {ab n cd n | n  0} costruire una grammatica che lo genera. V = {a,b,c,d} N = {A,S} P = {S  aA; A  bAd|c} E’ possibile utilizzare una grammatica regolare? Se si, dare la sua definizione. NO

Esempio Esempio: V = {a,b} N = {A,S} S assioma P = {S  a|aA A  a|b|aA|bA} Linguaggio generato da G: il linguaggio delle stringhe su {a,b} che iniziano per a A) Di che tipo e’ la grammatica? B) Derivazione per baab?Questa stringa non e’ generabile C) Derivazione per abba? S  aA  abA  abbA  abba regolare, lineare destra

V = {a,b,c} N = {S,X} S assioma P = {S  X|  A  aXa|bXb|c} Linguaggio generato da G: il linguaggio delle stringhe palindrome su {a,b,c} con una e una sola c al centro, piu’ la stringa vuota. A) Di che tipo e’ la grammatica? B) Derivazione per abcba? S  X  aXa  abXba  abcba context free ESERCIZIO

Dato il linguaggio L = {a n b 2n | n > 0} costruire una grammatica che lo genera. V = {a,b} N = {S,X} P = {S  X; X  aXbb|abb} ESERCIZIO

ESERCIZIO V = {a,b,c} N = {S,A} S assioma P = {S  aSc|A A  bAc|  } Linguaggio generato da G? L(G) = {a n b m c n+m |n,m  0} P = {S  A A  aAc|  B  bBc|  } Regole di produzione senza ricorsione su S: N = {S,A,B}

Il linguaggio L(G) = {a n b |n  0} puo’ essere generato da una grammatica regolare? V = {a,b} N = {S,A} S assioma P = {S  Ab|b A  Aa|a} ESERCIZIO

Definire una grammatica che generi il linguaggio L(G) = {a n b n |n  0} V = {a,b} N = {S,A} S assioma P = {S  A A  aAb|ab} ESERCIZIO