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

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Linguaggio regolare - Wikipedia

Linguaggio regolare

Da Wikipedia, l'enciclopedia libera.

Un linguaggio lineare (o linguaggio regolare) è un linguaggio formale (ad esempio un probabile insieme infinito di sequenze finite di simboli da un alfabeto finito) che soddisfa le seguenti proprietà equivalenti:

Indice

[modifica] Linguaggi lineari basati su un alfabeto

L'insieme dei linguaggi lineari basati su un alfabeto Σ è definito ricorsivamente come segue:

  • il linguaggio vuoto Ø è un linguaggio lineare.
  • la stringa vuota { ε } è un linguaggio lineare.
  • per ogni a ∈ Σ, il linguaggio Singleton { a } è un linguaggio lineare.
  • se A e B sono linguaggi lineari allora 'A U B, A B, e A* sono linguaggi lineari.
  • nessun altro linguaggio su Σ è lineare.

Tutti i linguaggi finiti sono lineari. Un altro tipico esempio include il linguaggio che consiste di tutte le stringhe dell'alfabeto {a, b} e che contiene un numero pari di a, o il linguaggio consistente di tutte le stringhe nella forma: alcune a seguite da alcune b.

[modifica] Proprietà di chiusura

I risultati operazioni di unione, intersezione e differenza quando applicati a linguaggi lineari sono essi stessi dei linguaggi lineari; il complemento di ogni linguaggio lineare basato sul proprio alfabeto è lo stesso un linguaggio lineare. Invertire ogni stringa in un linguaggio lineare produce un altro linguaggio lineare. Il concatenamento di due linguaggi lineari (nel senso di concatenare ogni stringa del primo linguaggio con ogni stringa del secondo) produce a sua volta un linguaggio lineare. L'operazione di mischiare, quando applicata a due linguaggi lineari, produce un altro linguaggio lineare. Il quoziente destro e il quoziente sinistro di un linguaggio lineare con un arbitrario linguaggio è lineare.

[modifica] Decidere quando un linguaggio è lineare

Per collocare un linguaggio lineare nella gerarchia di Chomsky, si sa che ogni linguaggio lineare è context-free. L'opposto non è vero: per esempio il linguaggio che consiste di tutte le stringhe aventi lo stesso numero di a e b è context free ma non regolare. Per dimostrare che un linguaggio come il precedente non è lineare, si può usare il teorema di Myhill-Nerode o il pumping lemma.

Ci sono due approcci algebrici puri per definire i linguaggi lineari. Se Σ è un alfabeto finito e Σ* denota il monoide libero su Σ consistente di tutte le stringhe su Σ  f : Σ* → M è un omomorfismo di monoide dove M è un monoide finito, e S è un sottoinsieme di M, dove l'insieme f −1(S) è regolare. Ogni linguaggio lineare si presenta in questa forma.

Se L è un sottoinsieme di Σ*, si può definire una relazione equivalente ~ in Σ* come segue: u ~ v è definita nel senso :uwL se e solo se vwL per tutti i w ∈ Σ* Il linguaggio L è lineare se e solo se il numero di classi equivalenti di ~ è finito; in questo caso, questo numero è uguale al numero degli stati del minimo automa deterministico finito che accetti L.


[modifica] Fonti esterne

  • Dipartimento di informatica University of Western Ontario: Grail+, http://www.csd.uwo.ca/Research/grail/. Un programma per manipolare le espressioni regolari, le macchine a stati finiti e i linguaggi finiti. Libero per usi non commerciali


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 -