Docente:
Giuseppe Scollo
Università di Catania
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica, I livello, AA 2009-10
un'algebra di Kleene è un semianello dotato di una ulteriore operazione unaria, la chiusura di Kleene, che gode le seguenti proprietà:
=
x
≤
y ⇔
x + y =
y
≤
x*
≤
x*
≤
y →
x*⋅y ≤
y
≤
x →
x⋅y* ≤
x
da questi assiomi discende, fra altre, la proprietà di chiusura dell'operazione unaria:
=
x*
la sintassi delle espressioni regolari è quella dei termini di un'algebra di Kleene, ma con alcune convenzioni notazionali:
ε
designa il neutro del monoide moltiplicativo
("1" negli assiomi precedenti)
∅
designa il neutro del monoide additivo
si ha così la notazione vista per l'algebra delle stringhe,
estesa con gli operatori
∅
, +, *,
con le regole di precedenza già indicate, sovvertibili mediante
l'uso di parentesi
la semantica di un'espressione regolare è data da
un linguaggio sull'alfabeto costituito
dai suoi simboli di costante (esclusi i simboli
∅, ε
,
che designano linguaggi e non sono elementi dell'alfabeto)
per rendere esatta questa definizione dobbiamo definire l'interpretazione che i suddetti operatori hanno nell'algebra di Kleene dei linguaggi regolari
le operazioni sui linguaggi, su un alfabeto Σ
, viste in una lezione precedente, offrono
una naturale interpretazione agli operatori dell'algebra di Kleene
Σ
, ha inoltre i singoletti dei simboli di
Σ
quali
costanti, oltre all'insieme vuoto e all'insieme {ε
} quali elementi neutri, risp., delle operazioni binarie
di unione e di concatenazione di insiemi di stringhe
uno stesso linguaggio può essere specificato da diverse espressioni regolari, che sono pertanto equivalenti
esempio: il linguaggio delle stringhe binarie a bit alterni, cioè nelle quali i bit in posizioni consecutive sono sempre diversi, può essere descritto dalla seguente espressione regolare:
o, equivalentemente, dalla seguente espressione regolare:
ε
)(01)*(0+ε
)
N.B. si noti la seguente equivalenza, deducibile dagli
assiomi di algebra di Kleene:
∅ * = ε
espressioni regolari e automi a stati finiti definiscono la stessa classe di linguaggi, ovvero la classe dei linguaggi regolari, che coincide con la classe dei linguaggi di tipo 3 nella gerarchia di Chomsky
ε
-NFA
mostriamo allora l'equivalenza di espressioni regolari e FSA esibendo:
ε
-NFA che accetta il
linguaggio da essa definito
N.B. l'asimmetria in questa scelta obbedisce a un criterio di semplicità della dimostrazione
si ha una dimostrazione per induzione sul numero di stati, ma è alquanto intricata (seppur interessante proprio per questo)
una alternativa più pratica è la costruzione dell'espressione regolare per progressiva eliminazione di stati del DFA
la struttura della costruzione è la seguente:
≠
q0,
a un solo stato altrimenti
eliminazione di uno stato in un FSA esteso
estensione delle etichette di archi fra stati adiacenti:
R'ij =
Rij + Pi S*Qj
FSA esteso, ridotto a due stati
espressione regolare equivalente: (R + SU*T)*SU*
FSA esteso, ridotto a uno stato
espressione regolare equivalente: R*
la costruzione di un ε
-NFA che accetta il linguaggio di una data
espressione regolare E procede per
induzione sulla struttura di E,
rispettando un invariante che vale per qualsiasi ε
-NFA così costruito:
base dell'induzione: siffatti automi per le
espressioni regolari ε
, ∅
, a,
rispettivamente:
passo induttivo:
composizione di siffatti automi per gli argomenti degli operatori
+, _ _
, *: