See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Gerarchia di Chomsky - Wikipedia

Gerarchia di Chomsky

Da Wikipedia, l'enciclopedia libera.

La gerarchia di Chomsky è un insieme di classi di grammatiche formali che generano linguaggi formali. La gerarchia di queste grammatiche, chiamate anche grammatiche a struttura sintagmatica (phrase structure grammars), fu descritta da Noam Chomsky nel 1956[1][2].

Indice

[modifica] Grammatiche formali

Una grammatica formale consiste di un insieme finito di simboli terminali (le lettere di una parola nel linguaggio formale), un insieme finito di simboli non terminali, un insieme finito di regole di produzione (con un lato sinistro ed un lato destro), ed infine un simbolo iniziale. Una regola di produzione può essere applicata ad una parola rimpiazzando il lato sinistro con il lato destro. Una derivazione è una sequenza di regole di produzione. In questo modo una grammatica definisce un linguaggio formale con tutte le parole costituite dai soli simboli terminali che possono essere raggiunti dal simbolo iniziale attraverso derivazioni.

I simboli non terminali sono genericamente rappresentati da lettere in maiuscolo, i terminali da lettere in minuscolo, e il simbolo iniziale da S. Per esempio, la grammatica con simboli terminali {a,b}, e simboli non terminali {S,A,B}, e regole di produzione

SABS
S → ε (dove ε è la stringa vuota)
BAAB
BSb
Bbbb
Abab
Aaaa

e il simbolo iniziale S, definisce il linguaggio composto da tutte le parole nella forma anbn (Ad esempio n ripetizioni di a seguite da n ripetizioni di b).

Quella seguente è una semplice grammatica che definisce un linguaggio simile: Simboli terminali {p,q}, simboli non terminali {S}, simbolo iniziale S, regole di produzione

SpSq
S → ε

Vedi la voce sulla grammatica formale per una spiegazione più elaborata.

[modifica] La gerarchia

La gerarchia di Chomsky è composta dai seguenti livelli:

  • Grammatiche di tipo-0 (grammatiche illimitate) include tutte le grammatiche formali. Queste grammatiche generano esattamente tutti i linguaggi che possono essere riconosciuti da una Macchina di Turing. Questi linguaggi sono anche conosciuti come linguaggi ricorsivamente enumerabili. Da notare che questi linguaggi sono differenti dai linguaggi ricorsivi che possono essere riconosciuti da una macchina di Turing che termina sempre.
  • Grammatiche di tipo-1 (grammatiche sensibili al contesto) generano linguaggi sensibili al contesto. Queste grammatiche hanno regole della forma \alpha A\beta \rightarrow \alpha\gamma\beta con A simbolo non terminale e α, β e γ stringhe di simboli terminali e non terminali. Le stringhe α e β possono essere vuote, ma la γ non deve essere vuota. La regola di produzione S \rightarrow \epsilon è permessa se S non appare nel lato destro delle regole di produzione. I linguaggi descritti da queste grammatiche sono esattamente tutti i linguaggi che possono essere riconosciuti da una macchina di Turing non deterministica nella quale il nastro è limitato da un numero costante di volte la lunghezza dell'input.
  • Grammatiche di tipo-3 (grammatiche lineari (o regolari)) generano linguaggi lineari (o linguaggi regolari). Questo tipo di grammatiche restringe le sue regole ad un singolo simbolo non terminale nel lato sinistro della produzione e nel lato destro un singolo simbolo terminale, possibilmente seguito (o preceduto, ma non entrambe le forme nella stessa grammatica) da un singolo simbolo non terminale. La regola S \rightarrow \epsilon è permessa anche qui se S non compare nel lati destri delle regole di produzione. Questi linguaggi sono esattamente tutti i linguaggi riconosciuti da un automa a stati finiti. Oltretutto, questa famiglia di linguaggi formali può essere ottenuta con espressioni regolari. I linguaggi lineari sono comunemente usati per definire modelli di ricerca (search patterns) e la struttura lessicale dei linguaggi di programmazione (Analisi lessicale (informatica)).

Nota che l'insieme delle grammatiche corrispondente ai linguaggi ricorsivi non è un membro di questa gerarchia.

Ogni linguaggio lineare è libero dal contesto, ogni linguaggio libero dal contesto è sensibile al contesto e ogni linguaggio sensibile al contesto è ricorsivo, ed in fine ogni linguaggio ricorsivo è enumerabile ricorsivamente. Queste sono inclusioni proprie, nel senso che esistono linguaggi enumerabili ricorsivamente che sono non ricorsivi, linguaggi ricorsivi che sono non sensibili al contesto, linguaggi sensibili al contesto che sono non liberi dal contesto e linguaggi liberi dal contesto che sono non regolari.

La seguente tabella riassume i quattro tipi di grammatiche secondo Chomsky, la classe dei linguaggi generati, il tipo di automa che li riconosce e la forma che devono avere le sue regole.


Grammatica Linguaggio Automa Regole di produzione
Tipo-0 Ricorsivamente enumerabile Macchina di Turing Nessuna restrizione
Tipo-1 Sensibile al contesto Macchina di Turing non deterministica e limitata linearmente \alpha A\beta \rightarrow \alpha\gamma\beta
Tipo-2 Libero dal contesto Automa a pila non deterministico A \rightarrow \gamma
Tipo-3 Lineare (o Regolare) Automa a stati finiti A \rightarrow a e

o A \rightarrow aB
o A \rightarrow Ba

[modifica] Note

  1. ^ Noam Chomsky: Three models for the description of language, IRE Transactions on Information Theory, 2 (1956), pagine 113-124
  2. ^ Noam Chomsky: On certain formal properties of grammars, Information and Control, 1 (1959), pagine 91-112

[modifica] Collegamenti esterni

Teoria degli automi: linguaggi formali e grammatiche formali
gerarchia
di Chomsky
Grammatiche Linguaggi automa minimo
Tipo-0 (illimitato) Ricorsivamente enumerabile Macchina di Turing
(illimitato) Ricorsivo Decider
Tipo-1 Sensibile al contesto Sensibile al contesto Lineare-limitato
Tipo-2 Libero dal contesto Libero dal contesto Automa a pila
Tipo-3 Lineare (o Regolare) Lineare (o Regolare) A stati finiti
Ciascuna categoria di linguaggio o grammatica è un sottoinsieme del proprio sovrainsieme di categoria direttamente sottostante.


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -