Docente:
Giuseppe Scollo
Università di Catania
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica, I livello, AA 2009-10
rivediamo alcuni concetti noti e introduciamo convenzioni notazionali comuni nella teoria dei linguaggi formali:
Σ
: un alfabeto (insieme di simboli),
di solito finito
Σ*
: il monoide delle stringhe su
Σ
ε
: la stringa vuota, elemento neutro del monoide
_ _
: concatenazione di stringhe
(operatore binario infisso "invisibile")
Σ+ = Σ*\{ε}
: il semigruppo delle stringhe non vuote su
Σ
|_|
: lunghezza di una stringa (definibile per induzione...
su che cosa?)
Σn
: l'insieme delle stringhe su
Σ
di lunghezza n
altre operazioni e proprietà facilmente definibili (ad es. per induzione sulla lunghezza):
≠ ε
≠ ε
≠ ε
un linguaggio L
sull'alfabeto
Σ
è un insieme di stringhe su
Σ
: L ⊆ Σ*
∅, Σ, Σ*, Σ+,
{ε},
{ x ∈ Σ*|
x è palindroma },
...
operazioni sui linguaggi
(su un alfabeto Σ
):
=
{ xy |
x ∈
L, y ∈
L' }
=
{ x |
x ∈
Ln, n ≥
0 }
=
{ ε
} , Ln+1 =
LnL =
L Ln
=
L* \
L0
perché estendere le operazioni delle stringhe ai linguaggi?
le algebre di interesse a tal fine sono note come algebre di Kleene
proprietà di frequente interesse di linguaggi, ad es. nella codifica dell'informazione, sono le seguenti, raccolte in una sola definizione:
esempio:
=
{a i b |
i ≥
0 }
gode della proprietà prefissa, ma non della proprietà suffissa
si tratta di strutture matematiche atte alla definizione generativa di linguaggi formali
=
(VT, VN, P, s0), quale struttura
di generazione del linguaggio L
una classe più generale di grammatiche, che generano una più ampia classe di linguaggi, si ha dalla definizione di grammatica libera ammettendo nella parte sinistra delle produzioni, invece che solo un simbolo non terminale, una stringa sull'alfabeto VT ∪ VN che contenga almeno un simbolo non terminale
quest'ultima proprietà è definita come segue: siano α, β, γ, δ stringhe di VT ∪ VN :
αβγ
⇒G αδγ
se
β→δ ∈
P
convenzioni notazionali: d'ora innanzi designiamo con
A,B,C,
...: simboli non terminali
a,b,c,
...: simboli terminali
u,v,w,x,y,z,
...: stringhe su
T
α,β,γ,δ,
...:
stringhe su T ∪
N
problema: trovare una grammatica che generi
il linguaggio {a
nb
nc
n |
n ≥
0}
soluzione: con N =
{A,B,C
} e
s0=A
,
la grammatica che ha le seguenti produzioni:
A → aABC
A → aBC
CB → BC
aB → ab
bB → bb
bC → bc
cC → cc
fatto: non è generabile da una grammatica libera (come si vedrà più avanti)
esempio: derivazione della stringa aabbcc
A → aABC → aaBCBC → aaBBCC → aabBCC → aabbCC → aabbcC → aabbcc
classificazione di Chomsky delle grammatiche, per restrizioni crescenti sulla
forma delle produzioni
α→β
:
|α| ≤ |β|
|α| = 1
|α| = 1, β ∈
T* ∪
T*N
si rammenti che α
deve sempre contenere almeno un simbolo di
N
ε
non è derivabile con grammatiche di tipo 1, mentre
può esserlo con quelle degli altri tipi
se si escludono le produzioni aventi
β=ε
,
le suddette classi di grammatiche sono ordinate da inclusione propria,
così come lo sono le corrispondenti classi di linguaggi da esse generabili,
ai quali si applica la stessa terminologia
le grammatiche di tipo 1 devono il loro nome al fatto di avere sempre una
grammatica equivalente le cui produzioni sono della forma γAδ→γβδ
, con A∈
N e β
non vuota
data una grammatica G, il
problema di decisione del linguaggio
LG consiste nel determinare se, data una stringa
x sul suo alfabeto terminale,
x ∈
LG
costituenti essenziali dei riconoscitori:
∈
Q :
uno stato iniziale
⊆
Q :
un insieme di stati finali, o accettanti
δ
: una dinamica, che determina le transizioni
di stato ed eventuali altre azioni del riconoscitore in base all'input e
allo stato corrente
un automa a stati finiti (FSA) non ha altri costituenti, e la sua dinamica è limitata alle transizioni di stato e alla lettura sequenziale dell'input
ulteriori costituenti, e altre possibilità di azione oltre alle transizioni di stato, caratterizzano classi di riconoscitori più sofisticati degli automi:
un riconoscitore accetta una stringa x in input se la sua dinamica permette una sequenza di transizioni dallo stato iniziale a un stato accettante
le classi di linguaggi definite nella gerarchia di Chomsky possono essere caratterizzate in base alle caratteristiche di corrispondenti classi di riconoscitori: