Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


dispensa Linguaggi e Traduttori, Esercizi di Elementi di Informatica

Esercitazione Linguaggi e Traduttori - Laurea magistrale in ingegneria informatica - catania

Tipologia: Esercizi

2013/2014

Caricato il 31/07/2014

flaminia.scuderi
flaminia.scuderi 🇮🇹

2 documenti

1 / 17

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1 De#nizione di grammatiche
1.1 Esercizio
Scrivere la grammatica che de-nisce il linguaggio
L
delle stringhe di alfab eto
f
a" b
g
in cui il numero di
a
4e uguale al numero di
b
.
Soluzione 1.1
Sia
x
2
L
, con
x
6
=
%
. Allora
x
pu4o avere come primo carattere una
a
:cio4e
x
=
ay
;
oppure una
b
:
x
=
by
;. Nel caso in cui
x
=
ay
, nel su=sso
y
ci deve essere una
b
in pi4u delle
a
. Certamente deve esistere una
b
in
y
che divide
y
in due parti,
u
e
v
,
ciascuna delle quali contiene lo stesso numero di
a
e di
b
, cio4e:
x
=
ay
=
aubv
, con
u" v
2
L
. Se
x
=
by
, allo stesso mo do si ha che
x
=
buav
. Da queste considerazioni si
deriva facilmente la seguente grammatica:
G
:
S
!
aSbS
j
bSaS
j
%
G
4e ambigua, come si comprende esaminado gli alberi di derivazione possibili per
la stringa
abab
.
La grammatica 4e gi4a molto semplice e sembra di=cilmente sempli-cabile in modo
ulteriore, perlomeno rispetto al numero delle produzioni e dei simboli non terminali
utilizzati.
La grammatica non pu4o essere sempli-cata nemmeno rispetto al numero massimo
di non terminali presenti nelle parti destre delle produzioni: si pu4o dimostrare infatti
che nessuna grammatica lineare 4e in grado di descrivere
L
:ricordiamo che una gram-
matica 4e detta lineare quando vi 4e al pi4u un solo non terminale nelle parti destre delle
produzioni;.
La grammatica data ha il vantaggio di essere compatta. Per costruire una gram-
matica
LL
:1; per lo stesso linguaggio si pu4o far riferimento al modo di operare di un
riconoscitore a pila per il medesimo linguaggio. Il riconoscitore operer4a confrontando
il carattere letto col carattere presente in cima alla pila. Se il carattere in cima alla
pila 4e diverso da quello letto, sulla pila verr4a eseguita un'azione di
pop
, altrimenti :se
la pila 4e vuota o il carattere in cima alla pila 4e lo stesso; il carattere verr4a posto in
cima alla pila. Il riconoscitore 4e un riconoscitore a pila vuota.
Dalla descrizione del riconoscitore 4e possibile costruire la seguente grammatica in
cui vengono rappresentati anche gli insiemi guida:
G
0
=
8
!
"
!
:
S
!
aBS
f
a
g j
bAS
f
b
g j
%
f.g
A
!
a
f
a
g j
bAA
f
b
g
B
!
b
f
b
g j
aBB
f
a
g
3
1.2 Esercizio
Si de$nisca una grammatica per il linguaggio
D
delle parentesi in cui il numero totale
delle parentesi aperte 1e dispari.
Esempi: 56, 565656, 5565665656 sono in
D
, mentre 5656, 55665656 non sono in
D
.
Soluzione 1.2
Il linguaggio
D
1e noncontestuale, poich1e si pu1o ottenere p er intersezione del lin-
guaggio delle parentesi con il linguaggio regolare costituito da qualunque stringa in
f
5
!
6
g
in cui il numero di 5 1e dispari. Si potrebbe ottenere
D
applicando la classica
costruzione usata per dimostrare la chiusura dei noncontestuali per intersezione con
i regolari. La costruzione 1e tuttavia assai complessa e conviene quindi analizzare il
problema nel mo do seguente.
Sia
P
il linguaggio, analogo a
D
, in cui il numero totale delle parentesi aperte
1e pari. Le frasi di
D
possono allora essere caratterizzate induttivamente nel modo
seguente:
1. 56
2
D
B
2. se
p
2
P
allora aggiungendo a
p
una coppia di parentesi esterne si ottiene una
frase di
D
: 5
p
6
2
D
B
3. se
p
2
P
e
d
2
D
, allora
dp
e
pd
sono in
D
, poich1e il numero delle parentesi
aperte in entrambi i casi 1e dispari.
Analogamente, si possono caratterizzare le frasi di
P
:
1.
%
2
P
B
2. se
d
2
D
allora aggiungendo a
d
una coppia di parentesi esterne si ottiene una
frase di
P
: 5
d
6
2
P
B
3. se
p
1
! p
2
2
P
e
d
1
! d
2
2
D
, allora
p
1
p
2
e
d
1
d
2
sono in
P
, poich1e il numero delle
parentesi aperte in entrambi i casi 1e pari.
Si pu1o convincersi 5oppure dimostrare6 che queste caratterizzazioni esauriscono
tutte le p ossibili stringhe di
D
e
P
.
1
E a questo punto immediato ricavare una gram-
matica per
D
, in cui il nonterminale
D
rappresenta l'assioma:
G
=
D
!
5
P
6
j
P D
j
DP
P
!
%
j
5
D
6
j
P P
j
DD
La produzione
D
!
56 1e stata eliminata perch1e inutile.
Si osservi che la seguente grammatica
G
0
, pi1u semplice di
G
,
non
genera il lin-
guaggio corretto:
4
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Anteprima parziale del testo

Scarica dispensa Linguaggi e Traduttori e più Esercizi in PDF di Elementi di Informatica solo su Docsity!

De#nizione

di

grammatic

he

Esercizio

Scriv

ere

la

grammatica

c he

de-nisce

il

linguaggio

L

delle

stringhe

di

alfab

eto

f a"

b g

in

cui

il

n umero

di

a

(^4) e

uguale

al

n umero

di

b 5

Soluzione

Sia

x

"

L

con

x

7

Allora

x

pu

o

a v ere

come

primo

carattere

una

a

:cio

4 e x

7

ay

(^) ;

oppure

una

b

: x

7

by

;

Nel

caso

in

cui

x

ay

(^6) nel

su=sso

y

ci

dev

e

essere

una

b

in

pi

4 u

delle

a 5

Certamen

te

dev

e

esistere

una

b

in

y

c he

divide

y

in

due

parti

u

e

v 6

ciascuna

delle

quali

con

tiene

lo

stesso

n umero

di

a

e

di

b 6 cio

4 e@

x

7

ay

aubv

con

u"

v "

L

Se

x

7

by

(^6) allo

stesso

mo

do

si

ha

c he

x

7

buav

Da

queste

considerazioni

si

deriv

a

facilmen

te

la

seguen

te

grammatica@ G

S

aS

(^) bS

j bS

aS

j %

G

4 e am

bigua

come

si

comprende

esaminado

gli

alb

eri

di

deriv

azione

p ossibili

p er

la

stringa

abab

La

grammatica

4 e gi

a

molto

semplice

e sem

bra

di=cilmen

te

sempli-cabile

in

mo

do

ulteriore

p erlomeno

risp

etto

al

n umero

delle

pro

duzioni

e

dei

sim

b (^) oli

non

terminali

utilizzati

La

grammatica

non

pu

o

essere

sempli-cata

nemmeno

risp

etto

al

n umero

massimo

di

non

terminali

presen

ti

nelle

parti

destre

delle

pro

duzioni@

si

pu

o

dimostrare

infatti

c he

nessuna

grammatica

lineare

4 e in

grado

di

descriv

ere

L

:ricordiamo

c he

una

gramD

matica

4 e detta

lineare

quando

vi

(^4) e

al

pi

4 u

un

solo

non

terminale

nelle

parti

destre

delle

pro

La^ duzioni;

grammatica

data

ha

il

v an

taggio

di

essere

compatta

P

er

costruire

una

gramD

matica

LL

:F;

p er

lo

stesso

linguaggio

si

pu

o far

riferimen

to

al

mo

do

di

op

(^) erare

di

un

riconoscitore

a

pila

p er

il

medesimo

linguaggio

Il

riconoscitore

op

erer

a

confron

tando

il

carattere

letto

col

carattere

presen

te

in

cima

alla

pila

Se

il

carattere

in

cima

alla

pila

4 e div

erso

da

quello

letto

sulla

pila

v err

a

eseguita

unHazione

di

pop

altrimen

ti

:se

la

pila

4 e

vuota

o

il

carattere

in

cima

alla

pila

4 e

lo

stesso;

il

carattere

v err

a

p (^) osto

in

cima

alla

pila

Il

riconoscitore

(^4) e

un

riconoscitore

a

pila

vuota

Dalla

descrizione

del

riconoscitore

(^4) e

p ossibile

costruire

la

seguen

te

grammatica

in

cui

v engono

rappresen

tati

anc

he

gli

insiemi

guida@

G

S

aB

S

(^) f a g j bAS

(^) f b g

j % f&g

A

a f a g

j bAA

f b g

B

b f b g j aB

B

f a g

I

Esercizio

Si

de$nisca

una

grammatica

p er

il

linguaggio

D

delle

paren

tesi

in

cui

il

n umero

totale

delle

paren

tesi

ap

erte

1 e

dispari

Esempi

sono

in

D

men

tre

non

sono

in

D

Soluzione

Il

linguaggio

D

1 e

noncon

testuale

p oic

h 1 e

si

pu

o

ottenere

p (^) er

in

tersezione

del

lin;

guaggio

delle

paren

tesi

con

il

linguaggio

regolare

costituito

da

qualunque

stringa

in

f 5 ! 6 g

in

cui

il

n umero

di

1 e

dispari

Si

p (^) otrebb

e

ottenere

D

applicando

la

classica

costruzione

usata

p (^) er

dimostrare

la

c hiusura

dei

noncon

testuali

p er

in

tersezione

con

i regolari

La

costruzione

1 e

tutta

via

assai

complessa

e

con

viene

quindi

analizzare

il

problema

nel

mo

do

seguen

te

Sia

P

il

linguaggio

analogo

a

D

7 in

cui

il

n umero

totale

delle

paren

tesi

ap

erte

1 e

pari

Le

frasi

di

D

p ossono

allora

essere

caratterizzate

induttiv

amen

te

nel

mo

do

seguen

te

A

D

B

C

se

p

"

P

allora

aggiungendo

a

p

una

coppia

di

paren

tesi

esterne

si

ottiene

una

frase

di

D

p 6 "

D

B

D

se

p " P e d " D

allora

dp

e

pd

sono

in

D

p oic

h 1 e

il

n umero

delle

paren

tesi

ap

erte

in

en

tram

bi

i casi

1 e

dispari

Analogamen

te

si

p (^) ossono

caratterizzare

le

frasi

di

P

A

P

B

C

se

d

"

D

allora

aggiungendo

a

d

una

coppia

di

paren

tesi

esterne

si

ottiene

una

frase

di

P

d 6 "

P (^) B

D

se

p

! (^) p ! " P e d!

(^) d ! "

D

(^7) allora

p

p ! e

d

d !

sono

in

P

p oic

h 1 e

il

n umero

delle

paren

tesi

ap

erte

in

en

tram

bi

i casi

1 e

pari

Si

pu

o

con

vincersi

5oppure

dimostrare

c he

queste

caratterizzazioni

esauriscono

tutte

le

p ossibili

stringhe

di

D

e P (^2)

E 1

a

questo

pun

to

immediato

rica

v are

una

gram;

matica

p er

D

in

cui

il

non

terminale

D

rappresen

ta

lFassioma

G

G

D

P

j P

D

j D

P

P

j 5 D

6 j P (^) P

j D

D

La

pro

duzione

D

1 e

stata

eliminata

p erc

h 1 e

in

utile

Si

osservi

c he

la

seguen

te

grammatica

G

! 7 pi

1 u

semplice

di

G

non

genera

il

lin;

guaggio

corretto

H

G

n

S

j !!

S ""

j ! S " S

j S ! S "

Infatti)

G

non

riesce

a

generare

stringhe)

come

ad

esempio

costituite

da

un

n umero

dispari

di

sottostringhe

di

D

Esercizio

Si

scriv

a la

grammatica

c he

caratterizza

il

linguaggio

delle

stringhe

di

alfab

(^) eto

f a$

(^) b$

c g

c he

non

sono

costituite

da

una

stringa

di

a

e

b

separata

da

una

marca

di

cen

tro

c

dalla

sua

copia

riviolazione>

risp

etto

al

linguaggio

delle

palindromi

con

marca

di

cen

tro

Le

alternativ

e 6B

con

tengono

tutte

le

p ossibili

violazioni

risp

etto

al

linguaggio

delle

palindromi

Dop

o

c he

il

non

terminale

A

:e

stato

utilizzato

una

qualsiasi

stringa

comp

osta

di

a 3 b

e c

pu:

o

essere

generata

dalle

alternativ

e

6758

Esercizio

Scriv

ere

una

grammatica

c he

individui

il

seguen

te

linguaggioA

L

#f

ucu

A

u

%

f a+

b g

g

Soluzione

Il

linguaggio

c he

si

vuole

de=nire

:e

rappresen

tato

dall?insieme

di

stringhe

c he

v eri=cano

almeno

una

delle

seguen

ti

tre

condizioniA

non

vi

:e

nessuna

c in

p osizione

medianaF

vi

:e

almeno

una

c

in

p osizione

non

medianaF

esiste

almeno

una

p osizione

i della

sottostringa

prima

della

marca

di

cen

tro

in

cui

vi

sia

il

carattere

a

e

nella

p (^) osizione

i dop

o

la

marca

di

cen

tro

vi

sia

il

carattere

b

6o

vicev

ersa

La

=gura

rappresen

ta

la

situazione

La

seguen

te

grammatica

am

bigua

risolv

e

il

problema

G

S

W

j X

j Z

W

QW

Q

j a

j b j (

X

QX

Q

j R c j cR

Z

AbR

j B (^) aR

A

QAQ

j aR

c

B

QB

Q

j bR

c

R

QR

j Q

Q

a

j b j c

G

S

A

B

A A

B B

Q

Q

Q

Q

Q

Q

Q

Q

A

B

a

b

i

j

j

i

j

i

Figure

Alb

(^) ero

sin

tattico

p er

una

stringa

di

L

ad

imp

(^) orre

c he

esista

almeno

un

v alore

i" (^6)

i

n$

p (^) er

cui

il

carattere

in

p osizione

i:

i sia

div

erso

dal

carattere

in

p osizione

i ;

n$

cio

! ?

c

i ;

n$

LBesp

edien

te

c he

si

usa

consiste

nellBosserv

are

c he

se

si

prendono

due

stringhe

S

!

di

lunghezza

dispari

n !

ed

S

di

lunghezza

dispari

n

e

si

costruisce

la

stringa

S

S

! " S

di

lunghezza

n

?

n ! ;

(^) n

la

distanza

tra

i due

elemen

ti

cen

trali

Ce

pari

a

d

?

n !

n

n$

Le

stringhe

di

lunghezza

pari

del

linguaggio

cercato

si

p otranno

p erciC

o

costruire

accostando

una

stringa

di

lunghezza

i

6

con

al

cen

tro

il

carattere

a

ad

una

stringa

di

lunghezza

n

(^7) i (^) ;

(^6)

con

al

cen

tro

il

carattere

b @ Scriviamo

la

grammatica

completa'

G

S

AB

j B

A

j D

D

QQD

j Q

A

QAQ

j a

B

QB

Q

j b

Q

a

j b

In

Fgura

Ce

rappresen

tata

una

stringa

di

lunghezza

pari

del

linguaggio

con

il

corrisp

onden

te

alb

(^) ero

sin

tattico@

La

stringa

correttamen

te

non

Ce

inclusa

in

L

G

Il

meto

do

qui

descritto

p er

generare

L

puC

o

essere

applicato

anc

he

al

linguaggio

L

!

dellBesercizio

6@H

p (^) ermettendo

di

ottenere

una

grammatica

di

dimensioni

inferiori

a

quella

presen

tata

nella

sua

soluzione@

Si

lascia

la

costruzione

di

questa

grammatica

p er

esercizio

al

lettore@

J

Esercizio

Si

de$nisca

una

grammatica

p er

il

seguen

te

linguaggio

L

f uu

R

j u

f a#

b g

g

Soluzione

Si

osservi

dapprima

c he

tutte

le

stringhe

di

lunghezza

dispari

sono

in

L

Le

stringhe

di

lunghezza

pari

c he

sono

in

L

con

tengono

almeno

una

violazione

risp

etto

al

linguaggio

delle

palindromi

senza

marca

di

cen

tro

sono

del

tip

o uaw

w ! bu

R

o del

tip

o

ubw

w ! (^) au

R 8 do

v e

u#

w

(^) w

!

f a#

(^) b g

e j w

j 2

j w ! j 6 Di

fatto

la

sottostringa

w

w ! ;e

una

qualunque

stringa

di

lunghezza

pari

Se

denotiamo

allora

con

P

un

non

terminale

da

cui

si

genera

qualunque

stringa

di

lunghezza

pari

e

con

D

un

non

terminale

da

cui

si

genera

qualunque

stringa

di

lunghezza

dispari

una

grammatica

=in

forma

b6n6f

estesa?

p er

L

pu;

o

essere

rica

v ata

immediatamen

te

G

S

aS

(^) a

j bS

(^) b

j aP

b j bP

a j D

P

a &

b ?= a

&

b ??

D

a

&

b ? P

Le

due

pro

duzioni

S

aS

(^) a

j bS

(^) b

p (^) ermettono

di

generare

uS

(^) u R 8 men

tre

le

pro@

duzioni

S

%j

aP

(^) b

j bP

(^) a

in

tro

ducono

una

violazione

risp

etto

al

linguaggio

delle

palin@

dromi

consen

tendo

di

generare

ad

esempio

uaP

(^) bu

R 8 da

cui

si

rica

v a

una

qualunque

frase

del

tip

o

uaw

w ! bu

6

La

grammatica

scritta

in

forma

non

BNF

estesa

non

;e

am

bigua

Alla

grammatica

pu;

o

essere

data

una

forma

ancora

pi

;u

compatta

eliminando

la

diEeren

te

gestione

delle

stringhe

di

lunghezza

pari

e

lunghezza

dispari

una

stringa

di

lunghezza

dispari

;e infatti

rappresen

tabile

come

uau

R 8 ubu

R 8 uaw

(^) bu

R

o

ubw

au

R

= w

;e

una

qualunque

stringa

di

lunghezza

dispari?

Il

risultato

in

forma

b6n6f

estesa

;e

G

n

S

aS

(^) a

j bS

(^) b

j a = a &

b ?

b j b = a &

b ?

a

j a

j b

Esercizio

Si

descriv

a

una

grammatica

lineare

a

destra

c he

genera

il

linguaggio

L

a

ab

bb

?

= aa

c ?? "

Soluzione

P

er

de$nire

una

grammatica

con

viene

costruire

prima

il

riconoscitore

a

stati

$niti

non@deterministico

=rappresen

tato

in

$gura

H

da

cui

;e

rica

v abile

lIinsieme

delle

regole

della

grammatica

BNF

JK

D

C B

A

E

a

a

a

a,b

b

c

ε

Figure

Automa

riconoscitore

di

L

Dall3analisi

del

riconoscitore

si

rica

v a la

grammatica

Il

linguaggio

7 e rappresen

tato

dalle

stringhe

di

caratteri

c he

si

p ossono

ottenere

partendo

dallo

stato

A

Nella

grammatica

comparir

a

la

seguen

te

pro

(^) duzione' S

A

Le

stringhe

c he

v engono

riconosciute

nello

stato

A

sono

uguali

alle

stringhe

c he

v engono

otten

ute

partendo

dallo

stato

B

precedute

dal

terminale

a 5 Questa

osserv

a>

zione

ci

p orta

a

scriv

ere

la

seconda

regola

della

grammatica'

A

aB

A

sua

v olta

le

stringhe

riconosciute

a

partire

dallo

stato

B

corrisp

ondono

alle

stringhe

otten

ute

partendo

dallo

stato

C

precedute

da

a

o

b ?

oltre

c he

le

stringhe

accettate

partendo

dallo

stato

D

precedute

da

a

e

le

stringhe

accettate

partendo

da

E

precedute

da

c 5

Cos

7 A'

B

aC

j bC

j aD

j cE

Si

pu

o

applicare

lo

stesso

pro

cedimen

to

anc

he

agli

stati

C

e

D

ottenendo

altre

due

pro

(^) duzioni

Cin

corrisp

ondenza

degli

altri

due

non

terminali

C

e

D

D

E

(^7) e

in

v ece

uno

stato

Enale

dell3automa

riconoscitore

Una

delle

p (^) ossibile

stringhe

riconosciute

a

partire

da

E

7 e

la

stringa

vuota?

c he

do

vr

a

en

trare

a

far

parte

delle

alternativ

e

In

conclusione

si

ottiene

la

seguen

te

grammatica' II

G

S

A

A

aB

B

aC

j bC

j aD

j cE

C

bB

D

aE

E

A

j

La

grammatica

risulta

del

tip

(^) o

0

della

classi1cazione

di

Chomsky

o vv

ero

lineare

a !" destra:

Esercizio

Rappresen

tare

median

te

una

grammatica

BNF?estesa

le

espressioni

aritmetic

he

con

paren

tesi

gra@e

quadre

e

tonde

ricordando

c he

le

paren

tesi

gra@e

p ossono

con

te?

nere

sia

espressioni

con

paren

tesi

quadre

c he

tonde

men

tre

le

paren

tesi

quadre

e

tonde

p ossono

con

tenere

solo

espressioni

con

paren

tesi

tonde:

Si

rappresen

ti

anc

he

la

tradizionale

gerac

hia

tra

gli

op

eratori

di

addizione

sottrazione

moltiplicazione

e

divisione:

Soluzione

Una

soluzione

p (^) ossibile

Ee la

seguen

teF

Espr

Add

I

JKJ

Add

j J?J

Add

L

Add

F

att

I

JMJ

F

att

j JNJ

F

att

L

F

att

T

erm

j J f J Espr

!

J g J j JPJ

Espr

" JQJ

j JIJ

Espr

JLJ

Espr

!

Add

! I JKJ

Add

!

j J?J

Add

! L

Add

!

F

att

! I JMJ

F

att

!

j JNJ

F

att

! (^) L

F

att

!

T

erm

j JPJ

Espr

"

JQJ

j JIJ

Espr

JLJ

Espr

"

Add

" I JKJ

Add

"

j J?J

Add

" L

Add

"

F

att

" I JMJ

F

att

"

j JNJ

F

att

" (^) L

F

att

"

T

erm

j JIJ

Espr

JLJ

Espr

Add

I JKJ

Add

j J?J

Add

L

Add

F

att

I JMJ

F

att

j JNJ

F

att

(^) L

F

att

T

erm

j JIJ

Espr

JLJ

Esercizio

Il

linguaggio

L

!

f a n b m a^ n b m g^

non

Se

noncon

testuale:

Pro

v are

c he

anc

he

L

"

f uu

j

u

$

f a-

(^) b g

g

non

Se

noncon

testuale:

UV

3

1

0

2

4

a

a

b

b

a

ε

ε

ε

Figure

Automa

non.deterministico

A

Esercizio

E 2

noto

c he

il

linguaggio

L

f a n b^ n

j n

"

g

non

2 e

regolare

Dimostrare

c he

anc

he

L

! 6

f a n b n c m d m

j n'

m

g

non

(^2) e

regolare

Soluzione

P

er

assurdo;

sia

L

! regolare

Allora;

p oic

h 2 e i linguaggi

regolari

sono

c hiusi

risp

etto

all=in

tersezione;

anc

he

L

! $

? a

b

@ sarebb

e

regolare

Ma

questo

linguaggio

2 e

proprio

L

L=ip

otesi

c he

L

! sia

regolare

(^2) e

p ertan

to

scorretta

Esercizio

Si

calcoli

l=espressione

regolare

del

linguaggio

deFnito

dall=automa

A

in

Fgura

e si

trasformi

l=automa

in

uno

equiv

alen

te

deterministico

Si

minimizzi

(^) l=automa

otten

uto

Soluzione

Determinazione

dell1espressione

regolare

P

er

la

determinazione

dell=espressione

regolare

op

eriamo

costruendo

dapprima

la

grammatica

lineare

a

destra

corrisp

onden

te

all=automa;

quindi

calcolando

l=espres.

sione

regolare

a

partire

dalla

grammatica

risolv

endo

le

equazioni

corrisp

onden

ti

La

grammatica

corrisp

onden

te

all=automa

Ie

la

seguen

te'

S

aA

j aC

A

aB

j bD

B

A

j

C

S

j bD

D

B

j

Da

questa

grammatica

Ie

p ossibile

deriv

are

il

seguen

te

insieme

di

equazioni

nelle

v ariabili

A'

B

C

D

ed

S

Ogni

v ariabile

rappresen

ta

un

linguaggio

regolare

K&

S

aA

aC

A

aB

bD

B

A

C

S

bD

D

B

Si

dimostra

c he

questo

tip

o

di

equazioni

rica

v ati

da

una

grammatica

lineare

de

stra

ammettono

sempre

una

e

una

sola

soluzione

nello

spazio

dei

linguaggi

regolari

La

soluzione

p (^) er

il

non

terminale

S

rappresen

ta

proprio

il

linguaggio

cercato

Il

pro

ce

dimen

to

da

seguire

p er

risolv

ere

questi

sistemi

consiste

nel

ridurre

tramite

(^) sostituzioni

successiv

e

il

sistema

a

una

o

pi

(^) :u

equazioni

del

tip

o;

X

X

do

v e

)

:e

una

espressione

regolare

nei

sim

b oli

terminali

e

non

terminali

=div

ersi

da

X

stesso>

e

:e

una

espressione

regolare

nei

soli

sim

b (^) oli

terminali

Questo

tip

(^) o

di

equazioni

infatti

:e

immediatamen

te

risolubile

p onendo

X

Gli

ev

en

tuali

sim

b oli

non

terminali

in

sono

facilmen

te

eliminabili

con

ulteriori

sostituzioni

successiv

e

Risolv

endo

il

sistema

dato

nellCordine

D

B

A+

C

ed

inDne

S

si

ottiene;

D

B

B

A

A

a

b > A a b! A =

a

b > = a

b >

a

b >

C

S

b

A

S

b

a

b >

S

b

a

b >

S

a

a

b >

aS

b

a

b >

S

a

= a = a

b >

ab

= a

b > >

a

a

b > ==

a

b >

b >

a

a

b >

a

a

b >

LCespressione

regolare

cercata

Ee quella

otten

uta

in

corrisp

ondenza

dellCassioma

del

linguaggio

S

o vv

ero

a

a

b >

Si

pu:

o

ora

v eriDcare

la

correttezza

della

soluzione

analizzando

lCautoma

originale

T

rasformazione

nell,automa

deterministico

Il

risultato

della

trasformazione

nellCautoma

deterministico

Ee

rappresen

tato

in

D

gura

F

Minimizzazione

dell,automa

LCautoma

pu:

o

essere

minimizzato

applicando

il

classico

pro

cedimen

to

di

calcolo

delle

classi

di

equiv

alenza

degli

stati

Costruiamo

la

tab

ella

di

equiv

alenza;

HF

b

a

b

a

a

a

a b

b

0,1,2,

1,2, 1,

0,1, 0

Figure

Automa

deterministico

corrisp

onden

te

a

a,b

a,b γ β α

γ β α = {(0,1,2,3),(1,2,4),(1,2)} ={(0,1,3)} = {(0)}

Figure

Automa

deterministico

minimo

X

X

X

X

X

X

X

Quasi

tutta

la

tab

ella

viene

riempita

(^) al

primo

passo

quando

gli

stati

>nali

v engono

distin

ti

dagli

stati

non

>nali?

Gli

stati

f 1 g

e

f 1

3

4 g

v engono

p oi

distin

ti

al

passo

successiv

o

dop

o dic

h Be

la

tab

(^) ella

non

cam

bia?

Si

distinguono

p (^) erciD

o

4 classi

di

equiv

alenza

negli

stati?

Si

p (^) otrD

a

deriv

are

lFautoma

minimo

costituito

da

stati

rappresen

tato

in

>gura

Si

p otev

a

facilmen

te

rica

v are

lFautoma

deterministico

minimo

dallFespressione

reH

golare

otten

uta

p er

S

a I a "

b J

?

Esercizio

Scriv

ere

una

espressione

regolare

p er

il

linguaggio

L

K

L

f a

b g

L

L

linguaggio

riconosciuto

dallFautoma

nella

>gura

M

di

cui

si

rip

orta

qui

anc

he

una

rappresen

tazione

tab

ellare'

3M

D

C B

A

E

a

a

a

b

c a

b

b

Figure

Automa

deterministico

riconoscitore

di

L

D

C B

A

E

a

a

b

b

a

a

b

c

b,c

a,c

b,c

a,b,c c P

Figure

Automa

deterministico

riconoscitore

del

complemen

to

di

L

a,b

a a a,b

e’

c a,b,c c

e"

Figure

Automi

non-deterministici

p (^) er

e

ed

e

Esercizio

Si

costruisca

spiegando

il

pro

cedimen

to

seguito

l6automa

deterministico

minimo

c he

riconosce

il

linguaggio

de8nito

dalla

espressione

regolare

estesa

con

il

complemen

to'

e

9

a (^)!

b ; ! aa^

: a !

b ; ! ;:

cc

: a

!

b !

c ; ! ;

Soluzione

Iden

ti8c

hiamo

i due

comp

onen

ti

e

9

a !

b ; ! aa^

: a !

b ; ! ; ed

e

cc

: a

!

b !

c ; ! ;

dell6espressione

regolare

e 9

e

" e

:si

ricorda

c he

l6op

eratore

di

negazione

ha

la

precedenza

risp

(^) etto

all6op

(^) eratore

di

concatenazione

Si

p ossono

dapprima

de8nire

gli

automi

p er

il

riconoscimen

to

delle

espressioni

regolari

e

ed

e

:8gura

Si

osserv

a

c he

l6automa

riconoscitore

di

e

@e

giA a

deterministico>

Si

puA

o

rendere

deterministico

anc

he

l6automa

riconoscitore

di

e

con

una

semplice

trasformazione

ottenendo

l6automa

rappresen

tato

in

8gura

&C>

Otteniamo

quindi

l6automa

p (^) er

riconoscere

il

complemen

to

di

e > P er

questo

tutti

gli

stati

non-8nali

div

engono

8nali

e

vicev

ersa

e

p er

ogni

sim

b olo

non

riconosciuto

in

uno

stato

del

riconoscitore

si

crea

un

arco

etic

hettato

con

quel

sim

b olo

c he

p orta

dallo

stato

ad

uno

stato

p ozzo

8nale>

Il

risultato

dell6applicazione

di

questo

meto

do

all6automa

e

@e

rappresen

tato

in

8gura

&H>

La

concatenazione

tra

due

linguaggi

si

ottiene

aggiungendo

un

arco

c he

collega

tutti

gli

stati

8nali

del

riconoscitore

del

primo

linguaggio

con

lo

stato

iniziale

del

riconoscitore

del

secondo

linguaggio

:8gura

&J;>

Riducendo

p (^) oi

il

non-determinismo

si

ottiene

l6automa

deterministico

cercato

:8gura

&L;>

CC

a a

b

a,b

e’

b

Figure

Automa

deterministico

p (^) er

e

a a

b

a,b b

c c

a,b,c

c

e’

Figure

Automa

deterministico

p (^) er

e

a,b,c c^ c

a a

b

a,b b

c c

a,b,c

c

e’.e"

ε

ε

ε

Figure

Automa

non/deterministico

p er

e

! e

c

a a

b

a,b b

c

e’.e"

c

c

a,b

c

a,b,c

a,b

Figure

Automa

deterministico

p er

e

! e

S

S

S

S

S

b

b

b

S

S

S

S

S

b

b

b

Figure

Due

alb

eri

di

deriv

azione

distin

ti

p (^) er

la

frase

bbb

della

grammatica

G

dell8esercizio

La

grammatica

la

stringa

bbb

pu<

o

essere

generata

con

le

due

seguen

ti

deriv

azioni

destre

distin

te(

S

S

S

S

(^) b

S

S

b

S

bb

bbb

S

S

S

S

S

S

S

S

b

S

bb

bbb

c he

corrisp

(^) ondono

ai

due

alb

eri

in

.gura

L4am

biguit

a

7 e determinata

dalla

presenza

della

regola

S

S

S

c he

7 e ricorsiv

a

sia

a

sinistra

c he

a

destra

Si

pu

o

dimostrare

c he

ogni

grammatica

in

cui

compare

una

regola

del

tip

o X! X # X

con

V

in

cui

X

7 e

de.nito

e raggiungibile

da

S

7 e

am

bigua

Una

p ossibile

soluzione

in

questo

caso

(^7) e

quella

di

mo

(^) di.care

la

grammatica

G

in

questo

mo

(^) doA G

B

n

S

bS

j < S > S

j &

Dimostriamo

p er

induzione

sulla

lunghezza

n

delle

frasi

di

L

c he

nessuna

frase

generata

dalla

grammatica

G

7 e am

bigua

nell4ip

otesi

c he

G

generi

correttamen

te

il

linguaggio

L

Il

passo

base

n

B

F>

(^7) e

o vvio

in

quan

to

l4unico

mo

(^) do

di

generare

la

stringa

n ulla

7 e

applicare

la

pro

duzione

S

Il

passo

induttiv

o

si

dimostra

in

base

all4ip

otesi

induttiv

a

p (^) er

la

quale

ogni

frase

di

lunghezza

inferiore

a

n

7 e

non

am

bigua

Sia

x

una

frase

di

lunghezza

n 2

Le

frasi

p (^) ossono

cominciare

o

con

il

carattere

G

b G

o

con

il

carattere

G

w

con

v

e w

deriv

ate

da

S

Ma

p (^) er

ip

otesi

induttiv

a

sia

v

c he

w

non

sono

frasi

am

bigue

e

p (^) erci o

non

lo

e

anc

he

x

@

z 6 Non

ci

sono

altri

casi

p ossibili

e

la

dimostrazione

e quindi

conclusa

Sarebb

(^) e

ora

necessario

dimostrare

c he

la

n uo

v a

grammatica

G

e equiv

alen

te

a G

ma

in

questo

caso

ci

si

puo

accon

ten

tare

di

una

&

c (^) %

d > 6

G

e

am

bigua

in

quan

to

le

c

c he

seguono

una

b

e

precedono

la

prima

d

p ossono

essere

generate

sia

dal

non

terminale

E

c he

dal

non

terminale

F

Ad

esempio-

la

frase

cc

puo

essere

generata

con

due

deriv

azioni

sinistre

distin

teD

S

E

F

cE

F

ccE

F

ccE

cc

S

E

F

F

cF

ccF

cc

Una

soluzione

p er

risolv

ere

l:am

biguita

puo

essere

quella

(^) di

considerare

due

insiemi

di

pro

duzioni

distin

ti-

il

primo

p er

generare

solo

stringhe

di

b

e

di

c

il

secondo

p er

generare

una

stringa

di

b

e

di

c

seguita

da

una

d

e

da

un

stringa

di

c

e

di

d 6

Una

grammatica

non

am

bigua

p (^) er

L

G

eD

G

! @

S

E

j E (^) dF

E

bE

j cE

j ,

F

cF

j dF

j ,

GH

Esercizio

Si

considerino

i due

linguaggi

L - b d e L! - f

b n d^ n

j

n

g /

Si

tro

vi

una

grammatica

non

am

bigua

in

forma

b/n/f/

estesa

p (^) er

L

L

L

! e

una

p er

L

S

L^

! /

Soluzione

Si

pu

o

facilmen

te

v eri7care

c he

date

due

grammatic

he

G

e

G

! 9 se

L

L

G

e L! - L :

G

! ;

con

L

L

!

&

e

si

applica

a G e a G!

il

pro

(^) cedimen

to

usuale

p er

la

costruzione

dell=unione

di

due

grammatic

he

la

grammatica

risultan

te

(^6) e

sempre

am

bigua

anc

he

quando

il

linguaggio

non

lo

6 e/

Qualora

in v ece

G

e

G

!

non

siano

am

bigue

e

L

L

!

la

grammatica

unione

non

@e

mai

am

bigua/

Un

problema

analogo

accade

con

la

concatenazione

cio

6 e p er

il

linguaggio

L

L

! (^9) con

L

L

! &

quando

% ( L o % ( L!

In

questo

caso

tutta

via

la

condizione

c he

i due

linguaggi

siano

disgiun

ti

@e

necessaria

ma

non

suCcien

te

p er

garan

tire

la

non

am

biguit@

a

della

grammatica

otten

uta

p (^) er

concatenazione/

Siano

G

e G

! due

grammatic

he

in

forma

b/n/f/

estesa

p er

L

e L ! risp

ettiv

amen

teD

G - n S ) b d

G! - n S )

bS

(^) d

j %

Si

pu

o

rica

v are

immediatamen

te

p er

concatenazione

una

grammatica

in

forma

b/n/f/

estesa

p er

L

L

L

! 9 rinominando

con

E

l=assioma

di

G

! D

G " - " S ) b d E

E

bE

d

j %

G

" 6 e am

bigua

in

quan

to

una

frase

del

tip

(^) o

b m d m

pu

o

essere

rica

v ata

con

due

alb

(^) eri

sin

tattici

distin

ti

corrisp

onden

ti

alle

due

deriv

azioni

seguen

tiD

S

b m d^ m E^

b m d m

S

E

bE

(^) d

b m E^ d m

b m d m

P

er

eliminare

l=am

biguit

a

o ccorre

distinguere

le

deriv

azioni

di

b m d^ m

da

quelle

di

b n d^ m 9 con

n

&

m

/ Una

grammatica

non

am

bigua

in

forma

b/n/f/

estesa

(^6) e

la

seguen

te

in

cui

dal

non

terminale

E

si

deriv

ano

solo

stringhe

del

tip

o

b m d^ m 9 con

m

men

tre

dal

non

terminale

D

si

deriv

ano

solo

stringhe

del

tip

o

b n d m 9 con

n

&

m

/

G

S

D

E

j E

j E E

j D

j % j b $

j d $

D

b $ E^

j E d $

E

bE

(^) d

j bd

Le

pro

duzioni

p er

il

non

terminale

S

si

giusti7cano

subito

notando

c he

da

S

o (^) ccorre

p otere

deriv

are

stringhe

del

tip

o

b n d n b m d^ m

S

E

E

del

tip

o

b n d m b^ k d^ k

con

n

&

m

GH

S

D

E

del

tip

o

b m d^ m " con

m

S

E

del

tip

o

b n d^ m

con

n

!

m

S

D

e

in.ne

dei

tipi

b

e

d

/

La

de.nizione

di

una

grammatica

non

am

bigua

p er

L

S

L^

! 8 e

ora

immediata

G

"

S

E

j D

j

j b

j d

D

b

E

j E (^) d

E

bE

d

j bd

T

utta

via"

essendo

L

!

incluso

in

L

in

questo

caso

L

S

L

! (^8) e

semplicemen

te

L

cio

8 e la

grammatica

G

v a

b ene

anc

he

p er

l?unione/

Esercizio

Costruire

una

grammatica

non

am

bigua

p er

le

espressioni

b o (^) oleane"

con

la

p (^) ossibilit

a

di

paren

tesi"

nelle

v ariabili

p,

q (^) , r e

negli

op

eratori

not

or

and

La

grammatica

dev

e

risp

ettare

la

precedenza

degli

op

eratori"

c he

hanno

le

seguen

ti

priorit

a

A

p er

not

B

p er

and

C

p (^) er

or

Si

vuole

inoltre

c he

or

sia

asso

ciativ

o

a

destra"

and

sia

asso

ciativ

o

a

sinistra/

Si

dia

anc

he

una

v ersione

della

grammatica

in

forma

bnf

estesa"

c he

man

tenga"

qualora

p ossibile"

la

priorit

a

e l?asso

ciativit

a

degli

op

eratori/

Soluzione

Consideriamo

p er

ora

solo

la

generazione

di

espressioni

senza

paren

tesi"

c he

sono

com

unque

frasi

del

linguaggio

in

quan

to

le

paren

tesi

sono

opzionali/

Una

grammatica

am

bigua

e

c he

non

risp

(^) etta

le

precedenze

e

l?asso

ciativit

a

pu

o

essere

rica

v ata

immediatamen

te

G $ - n S S

and

S

j S

or

S

j not

S

j p j q

j r

L?am

biguit

a

deriv

a

dalle

regole

ricorsiv

e

a

sinistra

e

a

destra"

c he

dev

ono

essere

eliminate/

In

questo

caso"

il

mo

do

pi

8 u

semplice

p er

costruire

una

grammatica

non

am

bigua

(^8) e

quello

di

eliminare"

ad

esempio"

le

ricorsioni

sinistre

dalle

regole

ricorsiv

e

a

sinistra

e a

destra"

in

tro

ducendo

opp

ortuni

sim

b (^) oli

non

terminali/

Il

risultato

8 e

la

seguen

te

grammatica

non

am

bigua

ma

c he

ancora

non

risp

etta

le

precedenze!

G

S

A

(^) or

S

j A

(^) and

S

j not

S

j A

A

p

j q

j r

Le

grammatic

he

p (^) er

generare

espressioni

sono

di

solito

c hiamate

Hgrammatic

he

ad

op

(^) eratoriH"

e

p ossono

essere

cos

8 I

caratterizzate

alcuni

terminali

sono

detti

op

er

atori

J

alcuni

non

terminali

sono

detti

o ggetti

J

ci

pu

o

essere

al

pi

8 u

un

op

(^) eratore

nella

parte

destra

di

ogni

regolaJ

A,

p or q or r

interpretata come p or (q or r)

p and q and r

interpretata come (p and q) and r

or

or

A C D

D

(

)

p and (q and r)

S

and

D

and

and

r

S

S

D

D

A C D

A C

A C

A C D

r A C

A C

A C

S

p A C D

S

and

D S

q

q

A C D r

q

p

p

Figure

Alb

(^) eri

di

deriv

azione

p er

la

grammatica

G

dell6esercizio

G

S

D

or

S

j D

D

D

and

C

j C

C

not

C

j A

A

p

j q

j r j < S =

La

grammatica

pu?

o

essere

riscritta

nella

seguen

te

forma

b9n9f

estesa(

G

! ;

S

D

or

D

D

C

and

C

C

not

C

j A

A

p

j q

j r j

! < ! S

!

!

La

precedenza

fra

op

eratori

?e man

ten

uta

dalla

G

! 9 Si

pu?

o

ritenere

c he

l6asso

ciatiC

vit?

a

non

abbia

pi

?u

molto

sensoD

in

quan

to

ad

esempio

una

frase

come

p or

q or

r

viene

generata

in

questo

mo

do(

S

D

(^) or

D

or

"

p or

q (^) or

r (^) (

gli

or

sono

generati

di

fatto

alla

stessa

altezza

nell6alb

(^) ero

sin

tattico

T

utta

viaD

nella

costruzione

di

analizzatori

seman

tici

di

tip

o

discenden

te

p er

grammatic

he

di

questo

tip

oD

la

generazione

e

la

v alutazione

a vv

engono

da

sinistra

v erso

destra.

cio

0 e

in

un

mo

do

c he

realizza

natu

ralmen

te

una

asso

ciativit

a

sinistra

In

realt

a.

non

0 e

di6cile

mo

(^) di7care

l8analizzatore

p er

ottenere

una

asso

ciativit

a

destra.

ad

esempio

usando

una

pila

p (^) er

memorizzare

i

v alori

asso

ciati

ai

terminali

Si

osservi

in7ne

c he

p er

questo

esercizio.

dal

pun

to

di

vista

seman

tico.

0 e irrilev

an

te

quale

sia

la

asso

ciativit

a

dell8op

eratore

or

c he

era

stata

ric

hiesta

solo

allo

scop

o

di

de7nire

il

concetto

relativ

o

p (^) er

le

grammatic

he

a

op

eratori

Esercizio

Rendere

non

am

bigua

la

grammatica

G

G

S

aS

(^) b

j C

C

aD

j &

D

bC

Soluzione

La

grammatica

individua

il

linguaggio

Anon

regolareB>

f a n A ab

B

b n j n

C

g

P

er

frasi

del

tip

o

a n abb^

n

vi

0 e

un8am

biguit

a

su

quale

deriv

azione

(^0) e

stata

eFettiv

a

men

te

seguita

Cos

0 H

alla

stringa

aabb

corrisp

ondono

le

due

deriv

azioni

S

aS

(^) b

aaS

(^) bb

aaC

bb

aabb

e S

aS

(^) b

aC

(^) b

aaD

b

aabC

(^) b

aabb

P

er

evitare

questo

caso

bisogna

mo

(^) di7care

la

grammatica

di

partenza

accedendo

alle

pro

duzioni

dei

non3terminali

C

e

D

solo

quando

si

presen

ta

eFettiv

amen

te

una

sequenza

di

ab

innestati

di

lunghezza

pari

almeno

a

I

Una

soluzione

0 e

oFerta

dalla

seguen

te

grammatica.

in

cui

si

sono

anc

he

sempli7cate

le

pro

duzioni

da

C

e

D

>

G

! ?

S

aS

(^) b

j aababC

(^) b

j &

C

abC

j &

Esercizi

prop

osti

Esercizio

Data

la

grammatica>

G

S

aA

j A

j B (^) b

j B

B

C

j B

b

C

aC

(^) b

j &

A

aA

j C

si

determini

se

G

0 e am

bigua

e si

descriv

a

in

termini

insiemistici

il

linguaggio

L

A

G

B

LM

Esercizio

Mostrare

c he

le

seguen

ti

grammatic

he

sono

am

bigue

e tro

v are

p er

ciascuna

una

forma

non

am

bigua

equiv

alen

te

G

S

aS

T

j $

T

aT

j a

G

! 5

S

aS

j aS

b j T

T

aT

(^) a

j a

G

" 5

S

T

U

T

U

T

aT

j bT

j $

U

bU

j cU

G

5

S

bS

j S (^) d

j E (^) F

E

bE

(^) c

j bc

F

cF

d j cd

Analisi

discenden

te

deterministica

Esercizio

Si

de8niscano

median

te

una

grammatica

il

linguaggio

L

f a n b^ p c^ q j n

(^) n

5

p (^) :

q (^) g

e il

linguaggio

L

L

R

;linguaggio

sp

eculare<

Si

v eri8c

hi

se

tale

grammatic

he

risultino

LL;>

e in

caso

a@ermativ

o se

ne

costruisca

lAanalizzatore

a

discesa

ricorsiv

a

e lAautoma

a

pila

riconoscitore

Soluzione

Una

grammatica

non

am

bigua

G

p er

L

De

la

seguen

teE

G

S

aS

c j T

T

aT

(^) b

j $

Una

deriv

azione

De ad

esempioE

S

aS

(^) c

&

aaS

c &

aaaT

(^) bcc

aaabcc

Calc

olo

insiemi

guida

p er

L

E

G

A

I

se

non

genera

I

S

S^

A

se

FG