1 / 17

Grammatiche di tipo 3 Queste grammatiche, dette anche regolari , ammettono produzioni del tipo:

justin
Download Presentation

Grammatiche di tipo 3 Queste grammatiche, dette anche regolari , ammettono produzioni del tipo:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. GRAMMATICHE LINEARI Si dice lineareuna 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

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

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

  9. ESERCIZI 1 COMPITINO aa 2002/2003 Dato il linguaggio L = {anbcdm | n 0, m 0} costruire una grammatica che lo genera. 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|e

  10. ESERCIZI 1 COMPITINO aa 2002/2003 Data la grammatica V = {x} N = {S,X,B} P =S  xX X  x X  xB B  xX A) di che tipo e’ la grammatica? regolare, lineare a destra 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? L(G) = {x2n |n>=1} D) Esiste una grammatica context free che lo genera? Se si, dare la sua definizione. S  X X  xXx|xx

  11. ESERCIZI 1 COMPITINO aa 2002/2003 Dato il linguaggio L = {abncdn | 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: V = {a,b} N = {A,S} S assioma P = { S a|aA A  a|b|aA|bA} A) Di che tipo e’ la grammatica? regolare, lineare destra B) Derivazione per baab? Questa stringa non e’ generabile C) Derivazione per abba? S aA abA  abbA  abba Linguaggio generato da G: il linguaggio delle stringhe su {a,b} che iniziano per a

  13. ESERCIZIO V = {a,b,c} N = {S,X} S assioma P = { S X|e A  aXa|bXb|c} A) Di che tipo e’ la grammatica? context free B) Derivazione per abcba? S X aXa  abXba  abcba 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.

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

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

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

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

More Related