Logo dell'Università di Catania: Siciliae Studium Generale 1434 Logo DMI, Fondamenti di informatica
matite e gomma
Loghi istituzionali: Siciliae Studium Generale 1434, Università di Catania, Facoltà di Scienze Matematiche, Fisiche, Naturali, Insegnamento di Fondamenti di Informatica

Linguaggi regolari

Lezione 22 di Fondamenti di informatica

Docente: Giuseppe Scollo

Università di Catania
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica, I livello, AA 2009-10

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0 Validazione XHTML 1.0 Validazione CSS 3

Indice

  1. Linguaggi regolari
  2. algebre di Kleene
  3. espressioni regolari
  4. algebra di Kleene dei linguaggi regolari
  5. equivalenza di espressioni regolari e FSA
  6. espressione regolare di un DFA
  7. dettagli della costruzione
  8. ε-NFA di un'espressione regolare
  9. temi per ulteriori approfondimenti

algebre di Kleene

un'algebra di Kleene è un semianello dotato di una ulteriore operazione unaria, la chiusura di Kleene, che gode le seguenti proprietà:

da questi assiomi discende, fra altre, la proprietà di chiusura dell'operazione unaria:

espressioni regolari

la sintassi delle espressioni regolari è quella dei termini di un'algebra di Kleene, ma con alcune convenzioni notazionali:

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

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

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:

N.B. si noti la seguente equivalenza, deducibile dagli assiomi di algebra di Kleene:  * = ε

equivalenza di espressioni regolari e FSA

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

mostriamo allora l'equivalenza di espressioni regolari e FSA esibendo:

N.B. l'asimmetria in questa scelta obbedisce a un criterio di semplicità della dimostrazione

espressione regolare di un DFA

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:

dettagli della costruzione

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*

ε-NFA di un'espressione regolare

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:

automa per epsilon
automa per linguaggio vuoto
automa per singoletto di un simbolo

passo induttivo: composizione di siffatti automi per gli argomenti degli operatori +_ _*:

automa per somma di espressioni regolari
automa per concatenazione di espressioni regolari
automa per chiusura di Kleene di espressioni regolari

temi per ulteriori approfondimenti

  1. algebre di Kleene
  2. applicazioni e varianti delle espressioni regolari