La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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.

Presentazioni simili


Presentazione sul tema: "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."— Transcript della presentazione:

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

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

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

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

5 GERARCHIA DI CHOMSKY

6 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

7 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

8 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

9 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| 

10 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?

11 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

12 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

13 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

14 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

15 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}

16 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

17 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


Scaricare ppt "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."

Presentazioni simili


Annunci Google