esercizi - unibg · grammatica p er il seguen te linguaggio l f uu u a b g soluzione il linguaggio...

98

Upload: vuongnhi

Post on 16-Feb-2019

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Esercizi di Linguaggi e Traduttori

Stefano Paraboschi� Pierluigi San Pietro

Dipartimento di Elettronica e Informazione

Politecnico di Milano

Page 2: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Contents

� De�nizione di grammatiche ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizi proposti � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

� Automi� linguaggi� espressioni regolari ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizi proposti � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

� Eliminazione ambiguit�a ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizi proposti � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

� Analisi discendente deterministica ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizi proposti � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

Page 3: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

� Analisi sintattica ascendente ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizi proposti � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

Traduzioni sintattiche ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizi proposti � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

Grammatiche ad attributi ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Esercizio � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ Esercizi proposti � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

Page 4: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

� De�nizione di grammatiche

��� Esercizio

Scrivere la grammatica che de�nisce il linguaggio L delle stringhe di alfabeto fa� bgin cui il numero di a �e uguale al numero di b�

Soluzione ���

Sia x � L con x �� �� Allora x pu�o avere come primo carattere una a �cio�e x � ay�oppure una b �x � by�� Nel caso in cui x � ay nel su�sso y ci deve essere una bin pi�u 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 cio�e� x � ay � aubv conu� v � L� Se x � by allo stesso modo si ha che x � buav� Da queste considerazioni sideriva facilmente la seguente grammatica�

G � S � aSbS j bSaS j �

G �e ambigua come si comprende esaminado gli alberi di derivazione possibili perla stringa abab�

La grammatica �e gi�a molto semplice e sembra di�cilmente sempli�cabile in modoulteriore perlomeno rispetto al numero delle produzioni e dei simboli non terminaliutilizzati�

La grammatica non pu�o essere sempli�cata nemmeno rispetto al numero massimodi non terminali presenti nelle parti destre delle produzioni� si pu�o dimostrare infattiche nessuna grammatica lineare �e in grado di descrivere L �ricordiamo che una gram�matica �e detta lineare quando vi �e al pi�u un solo non terminale nelle parti destre delleproduzioni��

La grammatica data ha il vantaggio di essere compatta� Per costruire una gram�matica LL��� per lo stesso linguaggio si pu�o far riferimento al modo di operare di unriconoscitore a pila per il medesimo linguaggio� Il riconoscitore operer�a confrontandoil carattere letto col carattere presente in cima alla pila� Se il carattere in cima allapila �e diverso da quello letto sulla pila verr�a eseguita un�azione di pop altrimenti �sela pila �e vuota o il carattere in cima alla pila �e lo stesso� il carattere verr�a posto incima alla pila� Il riconoscitore �e un riconoscitore a pila vuota�

Dalla descrizione del riconoscitore �e possibile costruire la seguente grammatica incui vengono rappresentati anche gli insiemi guida�

G� �

�����

S � aBSfag j bASfbg j �f�gA� afag j bAAfbgB � bfbg j aBBfag

Page 5: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

��� Esercizio

Si de�nisca una grammatica per il linguaggio D delle parentesi in cui il numero totaledelle parentesi aperte �e dispari�

Esempi� �� ������ ���������� sono in D mentre ���� �������� non sono in D�

Soluzione ���

Il linguaggio D �e noncontestuale poich�e si pu�o ottenere per intersezione del lin�guaggio delle parentesi con il linguaggio regolare costituito da qualunque stringa inf�� �g� in cui il numero di � �e dispari� Si potrebbe ottenere D applicando la classicacostruzione usata per dimostrare la chiusura dei noncontestuali per intersezione coni regolari� La costruzione �e tuttavia assai complessa e conviene quindi analizzare ilproblema nel modo seguente�

Sia P il linguaggio analogo a D in cui il numero totale delle parentesi aperte�e pari� Le frasi di D possono allora essere caratterizzate induttivamente nel modoseguente�

�� �� � D�

�� se p � P allora aggiungendo a p una coppia di parentesi esterne si ottiene unafrase di D� �p� � D�

�� se p � P e d � D allora dp e pd sono in D poich�e il numero delle parentesiaperte in entrambi i casi �e dispari�

Analogamente si possono caratterizzare le frasi di P �

�� � � P �

�� se d � D allora aggiungendo a d una coppia di parentesi esterne si ottiene unafrase di P � �d� � P �

�� se p�� p� � P e d�� d� � D allora p�p� e d�d� sono in P poich�e il numero delleparentesi aperte in entrambi i casi �e pari�

Si pu�o convincersi �oppure dimostrare� che queste caratterizzazioni esaurisconotutte le possibili stringhe di D e P � �E a questo punto immediato ricavare una gram�matica per D in cui il nonterminale D rappresenta l�assioma�

G �

�D� �P � j PD j DPP � � j �D� j PP j DD

La produzione D� �� �e stata eliminata perch�e inutile�Si osservi che la seguente grammatica G� pi�u semplice di G non genera il lin�

guaggio corretto�

Page 6: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

G� �nS � �� j ��S�� j �S�S j S�S�

Infatti G� non riesce a generare stringhe come ad esempio ������ costituite da unnumero dispari � � di sottostringhe di D�

��� Esercizio

Si scriva la grammatica che caratterizza il linguaggio delle stringhe di alfabeto fa� b� cgche non sono costituite da una stringa di a e b separata da una marca di centro cdalla sua copia ri�essa �

L � �fucuR � u � fa� bg�g

Soluzione ���

Costruiamo dapprima la grammatica che riconosce il complemento del linguaggiocercato ovvero il linguaggio delle palindromi con marca di centro�

G �nS � aSa j bSb j c

Il complemento di un linguaggio libero non �e in generale libero� In questo casoper�o il passaggio dal linguaggio al suo complemento risulta possibile� Osserviamoche vi sono tre casi possibili in cui una stringa x � L ciascuno corrispondente a unadi�erente �violazione� rispetto al linguaggio delle palindromi�

�� in x non vi �e nessuna c in posizione mediana �questo include anche il caso incui in x non vi sono c�

�� in x vi �e almeno una c in posizione non mediana �questo include anche il casoin cui vi siano due o pi�u c�

�� in x vi sono almeno due caratteri distinti in posizione simmetrica�

La seguente grammatica G� genera L�

G� �

�����

S � QSQ j � j a j b j QRc j cRQ j aRb j bRaR� QR j �Q� a j b j c

Dal nonterminale Q si generano i caratteri a b e c mentre da R si genera qua�lunque stringa in fa� b� cg� � Per generare una frase a partire da S occorre dapprimaapplicare zero una o pi�u volte la produzione S � QSQ e poi applicare una dellealtre produzioni sulla forma di frase del tipo uSv con j u j � j v j� Le produzioniS � � j a j b permettono di generare le frasi corrispondenti al caso ��� le produzioniS � QRc j cRQ considerano il caso ��� �inserisono una c in posizione non centrale e

Page 7: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

completano la frase con una stringa di lunghezza qualunque � � a sinistra o destradella c� mentre S � aRb j bRa corrispondono al caso ����

La grammatica �e ambigua in quanto una stringa in cui sono veri�cate due o pi�ucondizioni pu�o essere generata in vari modi�

La seguente grammatica G� �e invece non ambigua in quanto riconosce la primacondizione che si veri�ca nella stringa �procedendo dall�esterno verso l�interno�

G� �

�����

� � S � aSa j bSb j A� � A� a j b j aBb j aBc j bBa j bBc j cBa j cBb j cBc j �� � B � aB j bB j cB j �

L�alternativa ��� genera il linguaggio delle stringhe simmetriche di a e b con centroA� La grammatica impone che venga utilizzata la produzione S � A la qualeintroduce attraverso la ��� una �violazione� rispetto al linguaggio delle palindromicon marca di centro� Le alternative ��� contengono tutte le possibili violazioni rispettoal linguaggio delle palindromi� Dopo che il non terminale A �e stato utilizzato unaqualsiasi stringa composta di a b e c pu�o essere generata dalle alternative ����

��� Esercizio

Scrivere una grammatica che individui il seguente linguaggio�

L� � �fucu � u � fa� bg�g

Soluzione ���

Il linguaggio che si vuole de�nire �e rappresentato dall�insieme di stringhe cheveri�cano almeno una delle seguenti tre condizioni�

� non vi �e nessuna c in posizione mediana�

� vi �e almeno una c in posizione non mediana�

� esiste almeno una posizione i della sottostringa prima della marca di centroin cui vi sia il carattere a e nella posizione i dopo la marca di centro vi sia ilcarattere b �o viceversa�� La �gura � rappresenta la situazione�

La seguente grammatica ambigua risolve il problema�

G �

�����������������������������

S � W j X j ZW � QWQ j a j b j �X � QXQ j Rc j cRZ � AbR j BaRA� QAQ j aRcB � QBQ j bRcR� QR j QQ� a j b j c

Page 8: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

a c b

i i

Figure �� Stringhe appartenenti a L�

Analizziamo il signi�cato dei vari non terminali� Il non terminale Q pu�o esseresostituito dall�espressione regolare �a j b j c� mentre il non�terminale R rappresental�espressione regolare �a j b j c��� Da W si genera l�insieme delle stringhe in cui inposizione mediana non compare il carattere c� Da X si genera l�insieme delle stringhein cui compare almeno una c in posizione non mediana� Il caso rimasto �un solocarattere c che divide in due parti di lunghezza identica la stringa� �e trattato dal nonterminale Z� Visto che interessa che le due stringhe siano di�erenti basta imporre chein una posizione i vi sia un carattere a da una parte e un carattere b dall�altra� Questestringhe sono in e�etti generate dal non terminale Z il quale distingue i due sottocasiin cui si ha un a nella prima parte e un b nella seconda �prima produzione� e il casocontrario gestito dalla seconda produzione� La �gura � rappresenta sinteticamentel�albero sintattico corrispondente ad un esempio del primo caso� La grammatica �eambigua in quanto ad esempio da Z si possono derivare anche stringhe generabili apartire da X�

Si pu�o osservare come il linguaggio �L� non risulti libero� questo dimostra comela classe dei linguaggi liberi non sia chiusa rispetto all�operazione di complemento�

��� Esercizio

Scrivere una grammatica per il seguente linguaggio�

L� � �fuu � u � fa� bg�g

Soluzione ���

Il linguaggio da de�nire �e quello delle stringhe di alfabeto fa� bg che non possonoessere decomposte in due stringhe identiche che si ripetono� Le stringhe di lunghezzadispari faranno parte di questo linguaggio� Possiamo associare all�assioma una primaproduzione che genera le stringhe di alfabeto fa� bg di lunghezza dispari�

G �

�����

S � DD� QQD j QQ� a j b

Si tratta ora di generare le stringhe di lunghezza pari in cui la sequenza dei primin�� caratteri �e diversa dalla sequenza degli ultimi n�� caratteri� Questo corrisponde

Page 9: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

S

Z

R

Q RQ A

A

A

a R

Q R

Q

A

b

QQ

Q

a c b

i i

Q Q

Q

c

A

i

Figure �� Albero sintattico per una stringa di L�

Page 10: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

S

A B

A

A

B

BQ

QQ Q Q

QQQ

A B

a b

i jji

ji

Figure �� Albero sintattico per una stringa di L�

ad imporre che esista almeno un valore i� � � i � n�� per cui il carattere in posizionei�i sia diverso dal carattere in posizione i � n�� cio�e c�i� �� c�i � n����

L�espediente che si usa consiste nell�osservare che se si prendono due stringheS� di lunghezza dispari n� ed S� di lunghezza dispari n� e si costruisce la stringaS � S� � S� di lunghezza n � n� � n� la distanza tra i due elementi centrali �e pari ad � �n� ���� � �n� ���� � � � n���

Le stringhe di lunghezza pari del linguaggio cercato si potranno perci�o costruireaccostando una stringa di lunghezza �i � con al centro il carattere a ad una stringadi lunghezza n�i�� con al centro il carattere b� Scriviamo la grammatica completa�

G �

���������������

S � AB j BA j DD� QQD j QA� QAQ j aB � QBQ j bQ� a j b

In �gura � �e rappresentata una stringa di lunghezza pari del linguaggio con ilcorrispondente albero sintattico� La stringa � correttamente non �e inclusa in L�G��Il metodo qui descritto per generare L pu�o essere applicato anche al linguaggio L�

dell�esercizio ��� permettendo di ottenere una grammatica di dimensioni inferiori aquella presentata nella sua soluzione� Si lascia la costruzione di questa grammaticaper esercizio al lettore�

Page 11: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

��� Esercizio

Si de�nisca una grammatica per il seguente linguaggio�

L � �fuuR j u � fa� bg�g

Soluzione ��

Si osservi dapprima che tutte le stringhe di lunghezza dispari sono in L� Lestringhe di lunghezza pari che sono in L contengono almeno una violazione rispetto allinguaggio delle palindromi senza marca di centro� sono del tipo uaw�w�bu

R o del tipoubw�w�au

R dove u� w�� w� � fa� bg� e j w� j�j w� j� Di fatto la sottostringa w�w� �euna qualunque stringa di lunghezza pari� Se denotiamo allora con P un nonterminaleda cui si genera qualunque stringa di lunghezza pari e con D un nonterminale dacui si genera qualunque stringa di lunghezza dispari una grammatica �in forma b�n�f�estesa� per L pu�o essere ricavata immediatamente�

G �

�����

S � aSa j bSb j aPb j bPa j DP � ��a b��a b���

D� �a b�P

Le due produzioni S � aSa j bSb permettono di generare uSuR mentre le pro�duzioni S �j aPb j bPa introducono una violazione rispetto al linguaggio delle palin�dromi consentendo di generare ad esempio uaPbuR da cui si ricava una qualunquefrase del tipo uaw�w�bu�

La grammatica scritta in forma non BNF estesa non �e ambigua�Alla grammatica pu�o essere data una forma ancora pi�u compatta eliminando la

di�erente gestione delle stringhe di lunghezza pari e lunghezza dispari� una stringa dilunghezza dispari �e infatti rappresentabile come uauR ubuR uawbuR o ubwauR �w �euna qualunque stringa di lunghezza dispari�� Il risultato in forma b�n�f� estesa �e�

G �nS � aSa j bSb j a�a b��b j b�a b��a j a j b

��� Esercizio

Si descriva una grammatica lineare a destra che genera il linguaggio

L � �a�ab bb���aa c���

Soluzione ��

Per de�nire una grammatica conviene costruire prima il riconoscitore a stati �nitinon�deterministico �rappresentato in �gura � da cui �e ricavabile l�insieme delle regoledella grammatica BNF�

Page 12: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

D

C

BA Ea a a

a,b b c

ε

Figure �� Automa riconoscitore di L

Dall�analisi del riconoscitore si ricava la grammatica� Il linguaggio �e rappresentatodalle stringhe di caratteri che si possono ottenere partendo dallo stato A� Nellagrammatica comparir�a la seguente produzione�

S � A

Le stringhe che vengono riconosciute nello stato A sono uguali alle stringhe chevengono ottenute partendo dallo stato B precedute dal terminale a� Questa osserva�zione ci porta a scrivere la seconda regola della grammatica�

A� aB

A sua volta le stringhe riconosciute a partire dallo stato B corrispondono allestringhe ottenute partendo dallo stato C precedute da a o b oltre che le stringheaccettate partendo dallo stato D precedute da a e le stringhe accettate partendo daE precedute da c� Cos���

B � aC j bC j aD j cE

Si pu�o applicare lo stesso procedimento anche agli stati C e D ottenendo altredue produzioni �in corrispondenza degli altri due non terminali C e D�� E �e inveceuno stato �nale dell�automa riconoscitore� Una delle possibile stringhe riconosciute apartire da E �e la stringa vuota che dovr�a entrare a far parte delle alternative�

In conclusione si ottiene la seguente grammatica�

��

Page 13: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

G �

�������������������

S � AA� aBB � aC j bC j aD j cEC � bBD� aEE � A j �

La grammatica risulta del tipo � della classi�cazione di Chomsky ovvero linearea destra�

��� Esercizio

Rappresentare mediante una grammatica BNF�estesa le espressioni aritmetiche conparentesi gra�e quadre e tonde ricordando che le parentesi gra�e possono conte�nere sia espressioni con parentesi quadre che tonde mentre le parentesi quadre etonde possono contenere solo espressioni con parentesi tonde� Si rappresenti anchela tradizionale gerachia tra gli operatori di addizione sottrazione moltiplicazione edivisione�

Soluzione ���

Una soluzione possibile �e la seguente�

Espr� � Add� � ��� Add� j ��� Add���

Add� � Fatt� � ��� Fatt� j ��� Fatt���

Fatt� � Term j �f� Espr� �g� j ��� Espr� � � j ��� Espr� ���

Espr� � Add� � ��� Add� j ��� Add���

Add� � Fatt� � ��� Fatt� j ��� Fatt���

Fatt� � Term j ��� Espr� � � j ��� Espr� ���

Espr� � Add� � ��� Add� j ��� Add���

Add� � Fatt� � ��� Fatt� j ��� Fatt���

Fatt� � Term j ��� Espr� ���

Espr� � Add� � ��� Add� j ��� Add���

Add� � Fatt� � ��� Fatt� j ��� Fatt���

Fatt� � Term j ��� Espr� ���

�� Esercizio

Il linguaggio L� � fanbmanbmg non �e noncontestuale� Provare che anche L� � fuu ju � fa� bg�g non �e noncontestuale�

��

Page 14: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Soluzione ��

Se L� fosse noncontestuale anche L��a�b�a�b� sarebbe noncontestuale grazie allanota propriet�a di chiusura dei linguaggi noncontestuali per intersezione con i linguaggiregolari� Ma questo linguaggio �e proprio L�� assurdo�

��� Esercizi proposti

������ Esercizio

Si progetti una sintassi G per il linguaggio L di alfabeto ! � fa� d�� ���� ��g delle listea pi�u livelli cos�� de�nite�

� una lista �e sempre racchiusa tra le parentesi e contiene un numero pari non nullodi componenti separati dal delimitatore �d��

� un componente �e �a� oppure una lista�

Ad es���ada�

��ad�ada�dada�dadada�

Sono scorrette���ad�adada�da�dadada�

perch�e la lista sottolineata ha un numero dispari di componenti�

������ Esercizio

�E noto il linguaggio di Dyck di alfabeto fa� cg ovvero il linguaggio delle stringhe benparentetizzate intendendo a come parentesi aperta e c come chiusa� Si consideri illinguaggio L ottenuto da Dyck cancellando una sola lettera c in qualsiasi punto dellastringa�

Ad esempio ad L appartengono le frasi

aaacc�� aacac�

ottenute dalla frase ben parentetizzata aacacc��Si scriva una sintassi G per L e se ne esamini l�ambiguit�a�

������ Esercizio

L�operazione di mischia �k� mescola due stringhe x e y di alfabeto ! in tutti i modipossibili sempre rispettando l�ordinamento dei caratteri di ognuna delle stringhe�Essa �e cos�� de�nita�

��

Page 15: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

x k y � fx�y�x�y� � � � xnyn j x � x�x� � � � xn � y � y�y� � � � yn� n � �� xi� yi � !�g

Ad es�� ab k c � fabc� acb� cabg� ab k cd � fabcd� acdb� cdab� cadb� � � �gLa mischia di due linguaggi �e l�insieme delle mischie delle loro stringhe�

L � L� k L�� � fx k y j x � L�� y � L��g

Si costruisca una grammatica G per il linguaggio L � L� k L�� dove L� � cd� eL�� � fanbn j n � g�

Ad es� si hanno le frasi� c� cd� cdab� cadb� cadadbdbddd� � � �

� Automi� linguaggi� espressioni regolari

��� Esercizio

Per ciascuno dei seguenti linguaggi de�niti a parole si trovi una espressione regolarecorrispondente�

�� Tutte le stringhe in f� �g� in cui ogni ha un � immediatamente a destra�

�� Tutte le stringhe in f� �g� costituite esclusivamente da un numero pari �� �di caratteri �

�� Tutte le stringhe in f� �g� che non hanno tre consecutivi�

�� Tutte le stringhe in f� �g� in cui ogni coppia di adiacenti compare prima diuna qualsiasi coppia di � adiacenti�

�� Tutte le stringhe in f� �g� in cui il numero di �e uguale al numero degli � enessun pre�sso ha due in pi�u degli � o due � in pi�u degli �

Soluzione ���

�� �� ���

�� ���

�� �� � ���� ��

�� �� ���������������

�� �� ���

��

Page 16: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

3

10 2

4

a

a

b

b

ε

ε

Figure �� Automa non�deterministico A�

��� Esercizio

�E noto che il linguaggio L� � fanbn j n � g non �e regolare� Dimostrare che ancheL� � fanbncmdm j n�m � g non �e regolare�

Soluzione ���

Per assurdo sia L� regolare� Allora poich�e i linguaggi regolari sono chiusi rispettoall�intersezione anche L� � �a�b�� sarebbe regolare� Ma questo linguaggio �e proprioL�� L�ipotesi che L� sia regolare �e pertanto scorretta�

��� Esercizio

Si calcoli l�espressione regolare del linguaggio de�nito dall�automa A� in �gura � e sitrasformi l�automa in uno equivalente deterministico� Si minimizzi l�automa ottenuto�

Soluzione ���

Determinazione dell�espressione regolarePer la determinazione dell�espressione regolare operiamo costruendo dapprima la

grammatica lineare a destra corrispondente all�automa quindi calcolando l�espres�sione regolare a partire dalla grammatica risolvendo le equazioni corrispondenti�

La grammatica corrispondente all�automa �e la seguente�

���������������

S � aA j aCA� aB j bDB � A j �C � S j bDD� B j �

Da questa grammatica �e possibile derivare il seguente insieme di equazioni nellevariabili A�B�C�D ed S� Ogni variabile rappresenta un linguaggio regolare�

��

Page 17: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

���������������

S � aA aCA � aB bDB � A �C � S bDD � B �

Si dimostra che questo tipo di equazioni ricavati da una grammatica lineare de�stra ammettono sempre una e una sola soluzione nello spazio dei linguaggi regolari�La soluzione per il non terminale S rappresenta proprio il linguaggio cercato� Il proce�dimento da seguire per risolvere questi sistemi consiste nel ridurre tramite sostituzionisuccessive il sistema a una o pi�u equazioni del tipo�

X � � �X

dove � �e una espressione regolare nei simboli terminali e nonterminali �diversi daX stesso� e � �e una espressione regolare nei soli simboli terminali� Questo tipo diequazioni infatti �e immediatamente risolubile ponendo

X �� ���

� Gli eventuali simboli nonterminali in � sono facilmente eliminabili con ulteriorisostituzioni successive�

Risolvendo il sistema dato nell�ordine D�B�A� C ed in�ne S si ottiene�

D � BB � 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��

L�espressione regolare cercata �e quella ottenuta in corrispondenza dell�assioma dellinguaggio S ovvero a�a b��� Si pu�o ora veri�care la correttezza della soluzioneanalizzando l�automa originale�

Trasformazione nell�automa deterministicoIl risultato della trasformazione nell�automa deterministico �e rappresentato in ��

gura ��

Minimizzazione dell�automaL�automa pu�o essere minimizzato applicando il classico procedimento di calcolo

delle classi di equivalenza degli stati�Costruiamo la tabella di equivalenza�

��

Page 18: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

b

ab

a

a a

a

b

b

0,1,2,3

1,2,4

1,2

0,1,3

0

Figure �� Automa deterministico corrispondente

��

Page 19: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

a

a,b

a,b

α

β

γ

α

β

γ

={(0,1,3)}

= {(0,1,2,3),(1,2,4),(1,2)}

= {(0)}

Figure �� Automa deterministico minimo

� � X � � � X X� � � X X� � X X

� � � � � � � �

Quasi tutta la tabella viene riempita al primo passo quando gli stati �nali vengonodistinti dagli stati non �nali� Gli stati fg e f� �� �g vengono poi distinti al passosuccessivo dopodich�e la tabella non cambia�

Si distinguono perci�o � classi di equivalenza negli stati� Si potr�a derivare l�automaminimo costituito da � stati rappresentato in �gura ��

Si poteva facilmente ricavare l�automa deterministico minimo dall�espressione re�golare ottenuta per S a�a b���

��� Esercizio

Scrivere una espressione regolare per il linguaggio L�

� ! � fa� bg

� L � linguaggio riconosciuto dall�automa nella �gura di cui si riporta quianche una rappresentazione tabellare�

Page 20: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

a

a

a

a

a

bb

a,b

b

q0 q1

q2 q3

Figure � Automa riconoscitore di L

Stato a b

q� q�� q� q�q� q�q� q�� q� q�q� q� q�� q�

Stati �nali q� e q��

Soluzione ���

Dall�automa di pu�o derivare la grammatica BNF lineare a destra equivalente�Si introduce un simbolo per ogni stato dell�automa riconoscitore e l�assioma dellagrammatica corrisponder�a al simbolo dello stato iniziale� Ogni stato �nale potr�atrasformarsi nella stringa ��

Otteniamo����������

S � aA j aC j bB j �A� aSB � aA j aB j bCC � aB j bB j bC j �

Questo insieme pu�o essere trasformato nel seguente insieme di equazioni su varia�bili che rappresentano linguaggi regolari�

���������

S � aA aC bB �A � aSB � aA aB bCC � �a b�B bC �

��

Page 21: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Si sostituisce A����������

A � aSB � a�S aB bCC � �a b�B bC �S � a�S aC bB �

Si sostituisce B����������

A � aSB � a��a�S bC�C � �a b�a�a�S �a b�a�bC bC �S � a�S aC ba�a�S ba�bC �

Si sostituisce C����������

A � aSB � a��a�S bC�C � ��a b�a�b b����a b�a�a�S ��S � �a� ba�a��S �a ba�b���a b�a�b b����a b�a�a�S ��a b�a�b b�� ��

Si ottiene come risultato l�espressione regolare�

L � S � ��a� ba�a�� �a ba�b���a b�a�b b����a b�a�a������a b�a�b b�� ��

��� Esercizio

Costruire il riconoscitore a stati �niti del complemento di

L � �a�ab bb���aa c���

Soluzione ���

Il riconoscitore non deterministico del linguaggio L �e rappresentato in �gura ��Costruiamo dapprima il riconoscitore deterministico del linguaggio L rappresentatoin �gura ��

Il riconoscitore del complemento si ottiene aggiungendo uno stato pozzo �nale�P in �gura� con un autoanello etichettato con tutti i simboli dell�alfabeto tramu�tando tutti gli stati �nali del riconoscitore in stati intermedi e gli stati intermedi instati �nali aggiungendo ad ogni stato un arco uscente diretto verso lo stato pozzoetichettato con i simboli non accettati dallo stato� Il risultato dell�applicazione diquesti passi al riconoscitore di �gura � restituisce il riconoscitore del complementorappresentato in �gura ��

Page 22: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

D

C

BA Ea a a

b c

a

b

b

Figure �� Automa deterministico riconoscitore di L

D

C

BA Ea a

bb

a

a

b

c

b,c a,c

b,c

c

a,b,c

P

Figure �� Automa deterministico riconoscitore del complemento di L

��

Page 23: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

a,b

a

a

a,b

e’

c

a,b,c

c

e"

Figure ��� Automi non�deterministici per e� ed e��

��� Esercizio

Si costruisca spiegando il procedimento seguito l�automa deterministico minimo chericonosce il linguaggio de�nito dalla espressione regolare estesa con il complemento�

e � ���a b��aa�a b����cc�a b c���

Soluzione ��

Identi�chiamo i due componenti e� � ��a b��aa�a b��� ed e�� � �cc�a b c���dell�espressione regolare e � �e� � e�� �si ricorda che l�operatore di negazione ��� ha laprecedenza rispetto all�operatore di concatenazione �����

Si possono dapprima de�nire gli automi per il riconoscimento delle espressioniregolari e� ed e�� ��gura ����

Si osserva che l�automa riconoscitore di e�� �e gi�a deterministico� Si pu�o renderedeterministico anche l�automa riconoscitore di e� con una semplice trasformazione ottenendo l�automa rappresentato in �gura ���

Otteniamo quindi l�automa per riconoscere il complemento di e�� Per questo tuttigli stati non��nali divengono �nali e viceversa e per ogni simbolo non riconosciutoin uno stato del riconoscitore si crea un arco etichettato con quel simbolo che portadallo stato ad uno stato pozzo �nale� Il risultato dell�applicazione di questo metodoall�automa e� �e rappresentato in �gura ���

La concatenazione tra due linguaggi si ottiene aggiungendo un arco � che collegatutti gli stati �nali del riconoscitore del primo linguaggio con lo stato iniziale delriconoscitore del secondo linguaggio ��gura ���� Riducendo poi il non�determinismosi ottiene l�automa deterministico cercato ��gura ����

��

Page 24: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

a

a

b

a,b

e’b

Figure ��� Automa deterministico per e�

a

a

b

a,b

b

c

c

a,b,cc

e’

Figure ��� Automa deterministico per �e�

��

Page 25: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

c

a,b,c

c

a

a

b

a,b

b

c

c

a,b,cc

e’.e" ε

ε

ε

Figure ��� Automa non�deterministico per �e� � e��

ca

a

b

a,b

b

c

e’.e" c

c

a,b

c

a,b,ca,b

Figure ��� Automa deterministico per �e� � e��

��

Page 26: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

a,b,c

b

a

caa

b

b

a,c

a,c

b,cb,c

Figure ��� Automa deterministico per L

��� Esercizio

Scrivere una espressione regolare per il linguaggio L�

! � fa� b� cg

L �e l�insieme delle stringhe che contengono �almeno� una sottostringa cc tra ognicoppia di aa e di bb �aa e bb sono consecutive��

Ad es� baacccbbb aaccbbcbb aaccbbba bbaaacccbbaa sono corrette mentre aacbb aaccbbaacbb non lo sono�

Soluzione ��

Potendo utilizzare l�operatore di complemento l�espressione regolare risulta laseguente�

L � ���a b c��aa�c ��bb�a b c���

Disegnamo l�automa riconoscitore del linguaggio L ��gura ����L�espressione regolare che descriva l�automa senza complemento si pu�o ottenere

utilizzando il procedimento gi�a visto che a partire dall�automa riconoscitore creadapprima la grammatica e poi traduce la grammatica in un sistema di equazionisu variabili che rappresentano espressioni regolari� La soluzione per l�espressioneregolare corrispondente all�assioma della grammatica de�nisce il linguaggio cercato�

��� Esercizi proposti

����� Esercizio

Si scriva una espressione regolare per il linguaggio L di alfabeto fa� b� c� dg cos�� de��nito� Ogni frase �e una lista di uno o pi�u termini separati da un separatore�

��

Page 27: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Un termine �e qualsiasi parola �non nulla� di alfabeto fa� bg in cui non appaiala sottostringa aa� Un separatore �e qualsiasi parola �non nulla� di alfabeto fc� dg iniziante e terminante per d in cui il numero di c interposti tra due d consecutivi siadispari�

Es� validi� ababb ababdabb bbdcccdabdcdcdbbNon validi� cdd abc aabca abdccdb

Si costruisca inoltre l�automa riconoscitore di L�

����� Esercizio

Si costruiscano gli automi riconoscitori minimi dei linguaggi�

L� � ��� j �����

L� � ���L������

����� Esercizio

Si consideri il linguaggio L di alfabeto ! � fa� b�"g in cui ogni frase �e una listadi parole di alfabeto fa� bg separate dal "� Ogni parola deve soddisfare a una delleseguenti condizioni�

� il numero delle a �e pari e quello delle b �e dispari

� il numero delle a �e dispari e quello delle b �e pari

Esempi di frasi� abbaa� abbba"bab"a mentre sono scorrette abbaa"� bab"ab�Si costruisca un automa riconoscitore deterministico per L�

� Eliminazione ambiguit�a

��� Esercizio

Costruire una grammatica non ambigua per il linguaggio L delle espressioni benparentetizzate su un alfabeto costituito da una sola coppia di parentesi e dal simboloterminale b� Esempio di espressione corretta� b����b��bbb�����

Soluzione ���

La grammatica pi�u ovvia per L �e la seguente�

G �nS � SS j �S� j b j �

��

Page 28: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

S S

S S

S

bb

b SS

SS

S

b b

b

Figure ��� Due alberi di derivazione distinti per la frase bbb della grammatica Gdell�esercizio ����

La grammatica �e per�o ambigua� Ad esempio la stringa bbb pu�o essere generatacon le due seguenti derivazioni destre distinte�

S SS Sb SSb Sbb bbb

S SS SSS SSb Sbb bbb

che corrispondono ai due alberi in �gura ���L�ambiguit�a �e determinata dalla presenza della regola S � SS che �e ricorsiva sia

a sinistra che a destra� Si pu�o dimostrare che ogni grammatica in cui compare unaregola del tipo X � X�X con � � �! V �� in cui X �e de�nito �vale a dire che Xpu�o generare almeno una stringa di terminali� e raggiungibile da S �e ambigua� Unapossibile soluzione in questo caso �e quella di modi�care la grammatica G in questomodo�

G� �nS � bS j �S�S j �

Dimostriamo per induzione sulla lunghezza n delle frasi di L che nessuna frasegenerata dalla grammatica G� �e ambigua nell�ipotesi che G� generi correttamente illinguaggio L�

Il passo base �n � � �e ovvio in quanto l�unico modo di generare la stringa nulla�e applicare la produzione S � �� Il passo induttivo si dimostra in base all�ipotesiinduttiva per la quale ogni frase di lunghezza inferiore a n �e non ambigua� Sia xuna frase di lunghezza n� Le frasi possono cominciare o con il carattere �b� o con ilcarattere ���� Se x �e del tipo �by� dove y �e una frase allora per ipotesi induttiva y

��

Page 29: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

�e una frase non ambigua in quanto di lunghezza minore di n cio�e esiste una unicaderivazione sinistra S � y� Quindi anche x non �e ambigua poich�e l�unico modoper derivarla �e derivare bS con il passo S bS e poi continuare con la derivazioneprecedente da S ottenendo S bS � by� Se invece x �e del tipo ��z� il primo passodi derivazione deve applicare la regola S �S�S� Allora z � v�w con v e w derivateda S� Ma per ipotesi induttiva sia v che w non sono frasi ambigue e perci�o non lo �eanche x � �z� Non ci sono altri casi possibili e la dimostrazione �e quindi conclusa�

Sarebbe ora necessario dimostrare che la nuova grammatica G� �e equivalente a G ma in questo caso ci si pu�o accontentare di una �evidenza intuitiva��

��� Esercizio

Trovare una forma non ambigua per la seguente grammatica�

G� �

�����

S � EFE � bE j cE j �F � cF j dF j �

Soluzione ���

Il linguaggio generato dalla grammatica G� �e costituito dall�insieme delle stringhedi fb� c� dg� in cui nessuna d �e a sinistra di una b che pu�o essere anche rappresentatocon l�espressione regolare� �b c�� � �c d���

G� �e ambigua in quanto le c che seguono una b e precedono la prima d possonoessere generate sia dal nonterminale E che dal nonterminale F � Ad esempio la frasecc pu�o essere generata con due derivazioni sinistre distinte�

S EF cEF ccEF ccE cc

S EF F cF ccF cc

Una soluzione per risolvere l�ambiguit�a pu�o essere quella di considerare due insiemidi produzioni distinti il primo per generare solo stringhe di b e di c il secondo pergenerare una stringa di b e di c seguita da una d e da un stringa di c e di d� Unagrammatica non ambigua per L�G�� �e�

G� �

�����

S � E j EdFE � bE j cE j �F � cF j dF j �

Page 30: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

��� Esercizio

Si considerino i due linguaggi L� � b�d� e L� � fbndn j n � g� Si trovi unagrammatica non ambigua in forma b�n�f� estesa per L � L� � L� e una per L�

SL��

Soluzione ���

Si pu�o facilmente veri�care che date due grammatiche G� e G� se L� � L�G��e L� � L�G�� con L� � L� �� � e si applica a G� e a G� il procedimento usualeper la costruzione dell�unione di due grammatiche la grammatica risultante �e sempreambigua anche quando il linguaggio non lo �e� Qualora invece G� e G� non sianoambigue e L� � L� � � la grammatica unione non �e mai ambigua� Un problemaanalogo accade con la concatenazione cio�e per il linguaggio L� �L� con L� �L� �� � quando � � L� o � � L�� In questo caso tuttavia la condizione che i due linguaggisiano disgiunti �e necessaria ma non su�ciente per garantire la non ambiguit�a dellagrammatica ottenuta per concatenazione�

Siano G� e G� due grammatiche in forma b�n�f� estesa per L� e L� rispettivamente�

G� �nS � b�d�

G� �nS � bSd j �

Si pu�o ricavare immediatamente per concatenazione una grammatica in formab�n�f� estesa per L � L� � L� rinominando con E l�assioma di G��

G� �

�S � b�d�EE � bEd j �

G� �e ambigua in quanto una frase del tipo bmdm pu�o essere ricavata con due alberisintattici distinti corrispondenti alle due derivazioni seguenti�

S bmdmE bmdm

S E bEd � � � bmEdm bmdm

Per eliminare l�ambiguit�a occorre distinguere le derivazioni di bmdm da quelle dibndm con n �� m� Una grammatica non ambigua in forma b�n�f� estesa �e la seguente in cui dal nonterminale E si derivano solo stringhe del tipo bmdm con m � mentredal nonterminale D si derivano solo stringhe del tipo bndm con n �� m�

G� �

�����

S � DE j E j EE j D j � j b� j d�

D � b�E j Ed�

E � bEd j bd

Le produzioni per il nonterminale S si giusti�cano subito notando che da S occorrepotere derivare stringhe del tipo bndnbmdm �S � EE� del tipo bndmbkdk con n �� m

��

Page 31: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

�S � DE� del tipo bmdm con m � �S � E� del tipo bndm con n �� m �S � D� e in�ne dei tipi b� e d��

La de�nizione di una grammatica non ambigua per L�

SL� �e ora immediata�

G� �

�����

S � E j D j � j b� j d�

D � b�E j Ed�

E � bEd j bd

Tuttavia essendo L� incluso in L� in questo caso L�

SL� �e semplicemente L�

cio�e la grammatica G� va bene anche per l�unione�

��� Esercizio

Costruire una grammatica non ambigua per le espressioni booleane con la possibilit�adi parentesi nelle variabili p� q� r e negli operatori not� or� and� La grammatica deverispettare la precedenza degli operatori che hanno le seguenti priorit�a� � per not �per and � per or� Si vuole inoltre che or sia associativo a destra and sia associativoa sinistra� Si dia anche una versione della grammatica in forma bnf estesa chemantenga qualora possibile la priorit�a e l�associativit�a degli operatori�

Soluzione ���

Consideriamo per ora solo la generazione di espressioni senza parentesi che sonocomunque frasi del linguaggio in quanto le parentesi sono opzionali�

Una grammatica ambigua e che non rispetta le precedenze e l�associativit�a pu�oessere ricavata immediatamente�

G� �nS � S and S j S or S j not S j p j q j r

L�ambiguit�a deriva dalle regole ricorsive a sinistra e a destra che devono essereeliminate� In questo caso il modo pi�u semplice per costruire una grammatica nonambigua �e quello di eliminare ad esempio le ricorsioni sinistre dalle regole ricorsivea sinistra e a destra introducendo opportuni simboli non terminali� Il risultato �e laseguente grammatica non ambigua �ma che ancora non rispetta le precedenze��

G� �

�S � A or S j A and S j not S j AA� p j q j r

Le grammatiche per generare espressioni sono di solito chiamate �grammatiche adoperatori� e possono essere cos�� caratterizzate�

� alcuni terminali sono detti operatori�

� alcuni non terminali sono detti oggetti�

� ci pu�o essere al pi�u un operatore nella parte destra di ogni regola�

Page 32: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

S

A

p

S

A S

qr

A

p or q and r(interpretato come p or (q and r))

or

and

(interpretato come p and (q or r))

S

or

A

p

and S

A S

q

p and q or rr

A

Figure �� Due alberi di derivazione per la grammatica G� dell�esercizio ���� Nell�al�bero di sinistra and cede la precedenza a or mentre in quello di destra or cede laprecedenza a and�

� gli operatori possono comparire solo in regole la cui parte sinistra �e un oggettoe in cui vi �e almeno un oggetto nella parte destra�

Gli operatori di G� sono i simboli not� and� or mentre gli oggetti sono i nonter�minali S e A�

La precedenza tra operatori pu�o essere de�nita per un albero di derivazione diuna frase in questo modo� l�operatore b cede la precedenza all�operatore a se c��e uncammino verso l�alto nell�albero da a �no al nodo che �e immediatamente al di sopradi b �cio�e contiene l�oggetto da cui si �e derivato b��

Intuitivamente se un operatore ha la precedenza sull�altro agisce sui propri ope�randi prima che il secondo operatore agisca sui propri operandi in quanto si trova aun livello pi�u basso nell�albero di derivazione�

L�ordine di precedenza degli operatori �e un concetto di tipo semantico in quantoriguarda la valutazione delle espressioni� Poich�e per�o lo scopo delle grammatiche aoperatori �e quello di fornire un ausilio agli analizzatori tramite la costruzione dell�al�bero sintattico di una frase �e conveniente che la precedenza abbia un corrispondentenella sintassi in modo da sempli�care l�elaborazione di tipo semantico�

La grammatica G� implementa una precedenza da sinistra a destra� gli operatoriin una frase cedono la precedenza agli operatori che stanno alla loro destra� Si vedanoad esempio gli alberi di �gura ��

Per implementare le priorit�a pre�ssate per ciascun operatore richieste dal testodell�esercizio occorre modi�care la grammatica precedente distinguendo un oggettoper ogni operatore e de�nendo le produzioni in ordine inverso rispetto alla priorit�a�L�operatore a priorit�a inferiore cio�e l�or �e cos�� generato sempre ai livelli pi�u altidell�albero� In questo modo non pu�o mai succedere che un or sia generato in un nodo

��

Page 33: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

C

A

q

SorD

C

D

not

r

A

p C

A

C

S

p and q or not r

and D

interpretata come (p and q) or (not r)

Figure ��� Albero di derivazione per la grammatica G� dell�esercizio ����

di un albero di derivazione che sta al di sotto di un qualunque nodo con un and�

G� �

���������

S � D or S j DD � C andD j CC � not C j AA� p j q j r

Ad esempio la frase p and q or not r ha l�albero di derivazione di �gura ���Si dice che l�operatore a �e associativo a sinistra in un albero di derivazione se

ogni a cede sempre la precedenza agli a che stanno alla sua sinistra� L�operatore a�e associativo a destra se ogni a cede sempre la precedenza agli a che stanno alla suadestra�

La grammatica G� non implementa la richiesta associativit�a degli operatori� L�as�sociativit�a �e infatti destra per tutti gli operatori cio�e la frase p and q and r �e generatacome se fosse p and �q and r��

Per avere l�associativit�a a sinistra per and e a destra per or basta introdurre laregola D � D and C al posto della regola D � C andD�

Introduciamo ora le parentesi nelle espressioni facendo attenzione a non rendereambigua la grammatica� Il metodo corretto �e quello di aggiungere la regola A ��S� che consente di espandere i nodi a livello pi�u basso �marcati con A� con unaespressione tra parentesi oltre che con le variabili p� q� r� Il risultato �nale �e la seguentegrammatica G� di cui alcuni esempi di derivazioni sono mostrati in �gura ��

��

Page 34: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

p or q or rinterpretata come p or (q or r)

p and q and rinterpretata come (p and q) and r

or

orD

C

A

D

( )

p and (q and r)

S

andDand

and

r

S

S

D

D

C

D

A

A

C

A

C

A

C

DC

A

rC

A

A

C

S

D

C

A

p

S

and

S

D

q

q A

C

D

r

q

p

p

Figure �� Alberi di derivazione per la grammatica G� dell�esercizio ����

G� �

���������

S � D or S j DD � D and C j CC � not C j AA� p j q j r j �S�

La grammatica pu�o essere riscritta nella seguente forma b�n�f� estesa�

G� �

���������

S � D �orD��

D � C �and C��

C � not C j AA� p j q j r j ��� S ���

La precedenza fra operatori �e mantenuta dalla G�� Si pu�o ritenere che l�associati�vit�a non abbia pi�u molto senso in quanto ad esempio una frase come porqorr vienegenerata in questo modo� S DorDor � porqorr� gli or sono generati di fattoalla stessa altezza nell�albero sintattico� Tuttavia nella costruzione di analizzatorisemantici di tipo discendente per grammatiche di questo tipo la generazione e la

��

Page 35: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

valutazione avvengono da sinistra verso destra cio�e in un modo che realizza natu�ralmente una associativit�a sinistra� In realt�a non �e di�cile modi�care l�analizzatoreper ottenere una associativit�a destra ad esempio usando una pila per memorizzare ivalori associati ai terminali�

Si osservi in�ne che per questo esercizio dal punto di vista semantico �e irrilevantequale sia la associativit�a dell�operatore or che era stata richiesta solo allo scopo dide�nire il concetto relativo per le grammatiche a operatori�

��� Esercizio

Rendere non ambigua la grammatica G�

G �

�����

S � aSb j CC � aD j �D� bC

Soluzione ���

La grammatica individua il linguaggio �non regolare��

fan�ab��bn j n � g

Per frasi del tipo anabbn vi �e un�ambiguit�a su quale derivazione �e stata e�ettiva�mente seguita� Cos�� alla stringa aabb corrispondono le due derivazioni S � aSb �aaSbb� aaCbb� aabb e S � aSb� aCb� aaDb� aabCb� aabb�

Per evitare questo caso bisogna modi�care la grammatica di partenza accedendoalle produzioni dei non�terminali C e D solo quando si presenta e�ettivamente unasequenza di ab innestati di lunghezza pari almeno a �� Una soluzione �e o�erta dallaseguente grammatica in cui si sono anche sempli�cate le produzioni da C e D�

G� �

�S � aSb j aababCb j �C � abC j �

��� Esercizi proposti

���� Esercizio

Data la grammatica�

G �

���������

S � aA j A j Bb j BB � C j BbC � aCb j �A� aA j C

si determini se G �e ambigua e si descriva in termini insiemistici il linguaggio L�G��

��

Page 36: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

���� Esercizio

Mostrare che le seguenti grammatiche sono ambigue e trovare per ciascuna una formanon ambigua equivalente�

G� �

�S � aST j �T � aT j a

G� �

�S � aS j aSb j TT � aTa j a

G� �

�����

S � TUTUT � aT j bT j �U � bU j cU�

G� �

�����

S � bS j Sd j EFE � bEc j bcF � cFd j cd

� Analisi discendente deterministica

��� Esercizio

Si de�niscano mediante una grammatica il linguaggio L � fanbpcq j n � �n � p�qge il linguaggio L� � LR �linguaggio speculare��

Si veri�chi se tale grammatiche risultino LL��� e in caso a�ermativo se ne costruiscal�analizzatore a discesa ricorsiva e l�automa a pila riconoscitore�

Soluzione ���

Una grammatica non ambigua G per L �e la seguente�

G �

�S � aSc j TT � aTb j �

Una derivazione �e ad esempio�

S aSc aaSc aaaTbcc aaabcc

Calcolo insiemi guida per L� G�A� �� �

�I��� se � non genera �I���

SS�A� se � � �

��

Page 37: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

conI��� � fa � ! j � � a�g

S�A� � fa � ! j S � �Aa�g

Pertanto�

G�S � aSc� � I�aSc� � fag

G�S � T � � I�T ��S�S� � fag fcg

I due insiemi guida non sono disgiunti e quindi la grammatica non �e LL����Ci si potrebbe domandare se una grammatica LL��� possa esistere per L� La

risposta �e negativa anche se L �e certamente un linguaggio deterministico ��e facilecostruire un automa a pila deterministico con tre soli stati che riconosce L�� Infatti quando si legge una a la conoscenza del carattere successivo non basta per stabilirela ripartizione delle b e delle c� �E anzi facile intuire che la grammatica non �e LL�k�per nessun k�

Una grammatica per L� � LR si ottiene immmediatamente da quella di L�

G� �

�S � cSa j TT � bTa j �

Verichiamo che G� �e LL����Calcolo insiemi guida per L��

G�S � cSa� � I�cSa� � fcg

G�S � T � � I�T ��S�S� � fbg fag � fa� bg

G�T � bTa� � I�bTa� � fbg

G�T � �� � S�T � � fag

G� �e LL��� in quanto gli insiemi guida delle produzioni con la stessa parte sinistrasono disgiunti�

Costruiamo ora l�analizzatore a discesa ricorsiva per G��

��

Page 38: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

procedure S�if cc � fcg then cc�� PROSSIMO� �� S � cSa ��

S�if cc ��� a� then ERRORE else cc �� PROSSIMO endif

elsif cc � fa� bg then T �� S � T ��else ERRORE

endifend S�

procedure T�if cc � fbg then cc�� PROSSIMO� �� T � bTa ��

T�if cc ��� a� then ERRORE else cc �� PROSSIMO endif

elsif cc � fag then return �� T � � ��else ERRORE

endifend T�

Automa a pila deterministico LL���� riconoscitore per L�

L�alfabeto della pila �e costituito dall�unione dell�alfabeto terminale e nonterminaledella grammatica� S �e il simbolo iniziale della pila� L�automa ad ogni mossa estrae ilsimbolo in cima alla pila e se esplicitamente speci�cato avanza la testina di letturadel nastro di ingresso� L�automa riconosce a pila vuota vale a dire quando non cisono pi�u simboli sulla pila e sul nastro di ingresso� L�automa si arresta senza accettarequando si trova in una con�gurazione da cui nessuna mossa �e possibile �ad esempio Tsulla pila e c in ingresso�� La mossa push��� corrisponde a eseguire una pop dalla pilanon seguita da una push� La mossa avanza esegue una pop e consuma un simbolo iningresso senza eseguire una push�

Cima Carattere di ingressoPila a b c

S push�T � push�T � push�aSc�T push��� push�aTb�a avanzab avanzac avanza

Esempio di esecuzione sulla stringa ccbbaaaa��S� ccbbaaaa� � �aSc� ccbbaaaa� � �aS� cbbaaaa� � �aaSc� cbbaaaa� ��aaS� bbaaaa� � �aaT� bbaaaa� � �aaaTb� bbaaaa� � �aaaT� baaaa� ��aaaaTb� baaaa� � �aaaaT� aaaa� � �aaaa� aaaa� � �aaa� aaa� ��aa� aa� � �a� a� � ��� �� accetta

��

Page 39: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

��� Esercizio

Si calcolino gli insiemi guida per le produzioni della seguente grammatica�

G �

���������������

S � XYX � aT j TTT � b j TX j �Y � c j XY j ZXZ � dZ j e

Soluzione ���

Per potere e�ettuare il calcolo in modo sistematico sulla grammatica data con�viene dapprima de�nire un insieme di regole generali applicabili a qualunque gram�matica libera�

Sia G una grammatica con tutti i nonterminali de�niti e raggiungibili� De�niamol�insieme degli inizi I�x� per un qualunque � � �VN VT ���

Se x � VT alloraI�x� � fxg

Se x � X X � VN e X � � j � j � � � j � sono tutte e sole le produzioni di x allora

I�X� � I��� � � � I���

Se x � X� � � �Xn Xi � �VN VT � con � � i � n allora

I�X� � � �Xn� ��fI�Xi� j � � i � n�X� � � � Xi��

� �g

In questo modo �e possibile costruire un sistema di equazioni le cui incognite sonogli insiemi degli inizi per ogni nonterminale�

Per la grammatica dell�esercizio una volta notato che S�X� Y� T sono tutti e soli inonterminali da cui si pu�o derivare � si ottiene facilmente il seguente sistema in cuiX sta per I�X����������

�������

S � X YX � a TT � b T XY � c X Y ZZ � d e

La soluzione di un sistema di questo tipo si pu�o facilmente ottenere per sostituzionisuccessive e applicando la legge di assorbimento� se vale l�equazione�

W � W E

dove E �e una qualunque espressione di unione di variabili e insiemi regolari alloravale l�equazione�

W � E

Page 40: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Si noti che in particolare se l�equazione �e ridotta al caso degenere W � W allora valel�equazione W � ��

Ad esempio nel sistema precedente si possono sostituire le espressioni X � a Te Z � d e ottenendo�

���������������

S � X YX � a TT � b T a T � b aY � c X Y d eZ � d e

da cui si ricava����������������

S � X YX � a T � a bT � b aY � c X Y d e � a b c d eZ � d e

da cui anche S � a b c d e�Dal punto di vista teorico l�esistenza della soluzione cercata �e garantita dai clas�

sici teoremi di punto �sso� La trasformazione individuata dal sistema �e monotona econtinua nell�alfabeto terminale e quindi il sistema ammette un unico minimo punto�sso che costituisce proprio la soluzione cercata� Dalla monotonia della trasforma�zione deriva immediatamente la validit�a della legge di assorbimento e la garanziadell�esistenza della soluzione procedendo opportunamente per applicazioni successivedella sostituzione e dell�assorbimento�

Relazioni analoghe a quelle per gli insiemi degli inizi esistono anche per gli insiemidei seguiti� In particolare�

Se X � VN e Y� � ��X�� Y� � ��X�� � � � Yn � �nX�n sono tutte e sole leproduzioni di G in cui X compare nella parte destra allora l�insieme S�X� dei seguiti�e�

S�X� ��fI��i�g

�fS�Yi� j �i

� �g

Il risultato dell�applicazione di queste regole �e un sistema di equazioni dello stessotipo di quelle viste per calcolare l�insieme degli inizi� Il sistema pu�o essere risolto inbase al metodo appena visto� L�insieme guida si pu�o calcolare come al solito unavolta veri�cato anche quali nonterminali sono annullabili�

Ad esempio per la grammatica data nel testo dell�esercizio il sistema �e�

��

Page 41: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

���������������

S�S� ��S�X� � S�T � S�Y � I�Y �S�T � � I�X� I�T � S�X� S�T �S�Y � � S�S�S�Z� � I�X� S�Y �

La soluzione del sistema pu�o essere realizzata sfruttando i valori gi�a calcolati pergli insiemi degli inizi e sfruttando il fatto che S�S� �� per ottenere che S�Y � �� S�Z� � a b � da cui sostituendo S�X� in S�T � si ricava�

S�T � � I�X� I�T � S�T � S�Y � I�Y � S�T �

da cui per assorbimento si deduce che�

S�T � � a b c d e �� S�X�

�E ora possibile ricavare gli insiemi guida delle varie produzioni che riportiamo diseguito�

G �

���������������

S � XY fa b c d e �gX � aTfag j TTfa b c d e �gT � bfbg j TXfa b c d e �g j �fa b c d e �gY � cfcg j XY fa b c d e �g j ZXfd� egZ � dZfdg j efeg

La grammatica non �e pertanto LL����

��� Esercizio

Si de�nisca mediante una grammatica BNF estesa un minilinguaggio di programma�zione� Le caratteristiche del linguaggio sono le seguenti�

� Un programma inizia con la parola chiave prog e termina con la parola chiaveendprog�

� un programma �e costituito da una o pi�u dichiarazioni di procedura�

� ogni procedura �e preceduta dalla parola chiave procedure seguita da un nomee da una dichiarazione di zero uno o pi�u parametri�

� ogni procedura contiene anche un corpo individuato dalla coppia begin � � � end�

� non si possono annidare le dichiarazioni di procedura�

� il corpo di una procedura pu�o essere costituito da vari blocchi annidati�

Page 42: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

� un blocco inizia con un begin e termina con un end e pu�o contenere subitodopo il begin zero o pi�u dichiarazioni di variabili�

� ogni blocco pu�o contenere delle istruzioni call seguite dal nome di una proce�dura e da una lista di parametri attuali�

� le variabili e i parametri formali possono essere solo di tipo integer o real�

� si possono usare costanti numeriche come parametri attuali�

Esempio�progprocedure P� �I� I�� integer� F��real��beginXYZ� real�w v�integer�call P��begincall P��� � �����end�end�procedure P��beginend�endprog

Si progetti almeno in parte l�analizzatore sintattico a discesa ricorsiva�

Soluzione ���

Una grammatica BNF estesa per il linguaggio �e�

���������������������������������������

program� prog�procedureDeclaration�� ���endprogprocedureDeclaration� procedurepId�formalParameters j ���� �blockformalParameters� ����fId��� �fId�� � � ��integer j real��� ��� ���block � begin�varDeclaration j ���phrase�� ���endvarDeclaration� �vId��� �vId�� � � ��integer j real��� ���

phrase� �callpId�actualParameters j ��� j blockactualParameters� ����aId��� �aId������aId� identifier j constantfId� identifierpId� identifier

I simboli identifier e constant individuano rispettivamente i generici identi�catorialfanumerici e le costanti numeriche ricavati da un opportuno analizzatore lessicale�

��

Page 43: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

procedureDeclaration endprog

pId formalParameters ; block

fId

;

fId

integer ; )

real

program

prog

procedureDeclaration

procedure

formalParameters

(

:

Figure ��� Alcuni diagrammi sintattici corrispondenti alla grammatica dell�eserci�zio ����

��

Page 44: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

La �gura �� mostra i diagrammi sintattici corrispondenti ad alcune delle dichia�razioni BNF estese della grammatica�

Costruiamo ora le procedure sintattiche relative ai non terminali program e block�La regola per program soddisfa la condizione di determinismo LL��� per la sintassi

BNF estesa in quanto G�procedureDeclaration��� �TS��procedureDeclaration��� ���

� fproceduregTfendprogg � ��

Se si suppone che la variabile cc contenga identi�catori invece di un singolo carat�tere �come lecito aspettarsi se si usa un opportuno analizzatore lessicale� la procedurasintattica per program �e�

procedure program�if cc �� prog� then cc��PROSSIMO else ERRORE endif�if cc � fprocedureg then repeat

procedureDeclaration�if cc ����� then ERRORE

else cc �� PROSSIMOendif

until cc �� fproceduregif cc ��� endprog� then ERRORE

else cc �� PROSSIMOendif

else ERROREendifend program�

La regola per block soddisfa la condizione di determinismo LL��� per la sintassiBNF estesa in quanto�

� per la sottoespressione �varDeclaration j �� si ha�

G�varDeclaration�TG��� � vId

Tfend� call� beging � � poich�e end� cal� begin

sono parole riservate che non possono essere usate per gli identi�catori �in casocontrario verrebbe segnalato un errore in quanto l�analizzatore lessicale nonrestituirebbe una variabile��

� per la sottoespressione �phrase�� ��� si ha�

G�phrase�� ��TS��phrase�� ���� � fcall� beging

Tfendg � ��

La procedura sintattica �e�

procedure block�if cc �� begin� then cc �� PROSSIMO�

if cc � vId then varDeclaration

��

Page 45: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

elsif cc �� fcall� begin� endg then ERROREendifwhile cc � fcall� beging do

phraseenddo�if cc �� end� then cc�� PROSSIMO else ERRORE endif

else ERROREendifend program�

��� Esercizio

Data la grammatica soluzione dell�esercizio ��� si veri�chi se la grammatica �e di tipoLL���� Si consideri poi la versione in forma b�n�f� estesa si veri�chi se �e di tipo LL���e in caso a�ermativo se ne costruisca l�analizzatore a discesa ricorsiva�

Soluzione ���

�E immediato veri�care che la grammatica non �e di tipo LL�k� per nessun k��E possibile trasformarla in una grammatica LL��� come la seguente in cui sonoriportati anche gli insiemi guida delle produzioni�

G �

���������������

S � XY fp� q� r� or� and��gY � �f�g j orXY forgX � AZfp� q� r� �� notgZ � �for��g j and AZfandgA� p j q j r j �S� j not A

La grammatica �e scomoda per la costruzione di analizzatori sintattici e seman�tici integrati �una grammatica ad attributi per valutare il valore delle espressionio per tradurre in un linguaggio macchina sarebbe notevolmente pi�u complicata delnecessario��

Per costruire analizzatori sintattico�semantici integrati a discesa ricorsiva si pre�ferisce allora usare per questo tipo di linguaggi grammatiche in forma b�n�f� estesa come ad esempio la seguente grammatica G��

G� �

���������

S � D �orD��

D� C �and C��

C � not� AA� p j q j r j ��� S ���

G� �e LL���� Per la produzione S � D �orD���G�orD�

TS��orD��� � forg

Tf�� �g � ��

Per la produzione D � C �and C���

��

Page 46: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

G� and C�TS��andD��� � fandg

Tf�� �g � ��

La condizione di determinismo LL��� �e banalmente veri�cata dalle altre produ�zioni�

La procedura sintattica per S �e�

procedure S�D�while cc �� or� do

cc �� PROSSIMO�D�

enddo�if cc �� f�� �g then ERRORE endifend S�

La procedura sintattica per D �e�

procedure D�C�while cc �� and� do

cc �� PROSSIMO�C�

enddo�if cc �� f�� �g then ERRORE endifend D�

La procedura sintattica per C �e�

procedure C�while cc �� not� do

cc �� PROSSIMO�enddo�A�end C�

Lasciamo al lettore il completamento dell�analizzatore discendente con la proce�dura per il nonterminale A�

��

Page 47: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

��� Esercizio

Data la grammatica�

G �

�S � SB j bB j �B � dS j SBe

�� Si eliminino le ricorsioni sinistre trasformandole in ricorsioni destre�

�� Detta G� la grammatica equivalente a G cos�� ottenuta se ne calcolino gli insiemiguida veri�cando se essa �e LL�

Soluzione ���

Nella grammatica vi sono due ricorsioni sinistre S � SB e B�� Be� Per elimi�

nare le ricorsioni sinistre bisogna ricorrere all�algoritmo descritto in �Hopcroft ���� �Conviene evitare di avere ��regole associate al non�terminale di cui si deve elimi�

nare la ricorsione sinistra allo scopo di ridurre il numero di passi richiesto dall�al�goritmo� Per questo si introduce un nuovo simbolo S� che manterr�a inalterato illinguaggio eliminando la produzione critica� La grammatica diventer�a�

G �

�����

S� � S j �S � SB j bB j BB � dS j d j SBe j Be

L�algoritmo opera nella maniera seguente� Siano A� A�� j A�� j � � � j A�n dovenessun �i o �j�e annullabile le alternative immediatamente ricorsive a sinistra di A esiano A� �� j �� j � � � j �m le rimanenti alternative per A�

Introducendo un nuovo non�terminale A� e scrivendo le seguenti regole�

A� ��A� j ��A� j � � � j �mA�

A� � ��A� j ��A

� j � � � j �nA� j �

si ottiene la grammatica equivalente ricorsiva a destra nel non�terminale A� �la��produzione non crea problemi perch�e A� non pu�o essere ricorsivo a sinistra�� Sipossono quindi eliminare tutte le ricorsioni sinistre immediate� Le ricorsioni sinistrenon immediate vengono poi eliminate con lo stesso procedimento trasformandoledapprima in immediate�

Applichiamo separatamente l�algoritmo sopra illustrato ai due non�terminali S eB aggiungendo due non�terminali S � e B�� Otteniamo G��

G� �

���������������

S� � S j �S � bBS � j BS �

S � � BS � j �B � dSB� j dB� j SBeB�

B� � eB� j �

��

Page 48: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

In G� compare ancora una ricorsione sinistra nel termine B� B � SBeB� �BS �BeB�� Per eliminare anche questa ricorsione si pu�o sostituire il termine S nellaproduzione critica di B eliminandola senza alterare il linguaggio� Si ottiene in questomodo una ulteriore produzione immediatamente ricorsiva a sinistra che si pu�o gestirecon il precedente algoritmo�

La produzione del non�terminale B sar�a�

B � dSB� j dB� j bBS �BeB� j BS �BeB�

Applicando l�algoritmo introduciamo un nuovo simbolo B�� ottenendo la gramma�tica�

G�� �

�������������������

S� � S j �S � bBS � j BS �

S � � BS � j �B � dSB�B�� j dB�B�� j bBS �BeB�B��

B� � eB� j �B�� � S �BeB�B�� �

Tutte le ricorsioni sinistre sono state eliminate�Per determinare se la grammatica �e LL��� costruiamo gli insiemi guida dei non�

terminali�

G�� �

�������������������

S� � Sfb� dg j �f�gS � bBS �fbg j BS �fb� dgS � � BS �fb� dg j �fb� d� e��gB � dSB�B��fdg j dB�B��fdg j bBS �BeB�B��fbgB� � eB�feg j �fb� d� egB�� � S �BeB�B�� �

Gli insiemi guida delle regole di produzione associate al non�terminale S �comeper i non�terminali S � B e B�� non hanno un�intersezione nulla quindi la grammaticanon �e di tipo LL����

��� Esercizio

Si de�nisca mediante una sintassi il linguaggio delle spezzate mostrate nella �gura ���L�alfabeto terminale �e costituito dai simboli� ! � f�����gLa spezzata si compone di segmenti crescenti orizzontali e decrescenti� ogni seg�

mento �e costituito da un numero intero di vettori unitari� Il primo segmento �e cre�scente� l�ultimo �e qualsiasi�

Tra un segmento crescente e uno decrescente vi pu�o essere un segmento orizzontaledi lunghezza arbitraria� La lunghezza di un segmento crescente �e maggiore o egualea quella del segmento decrescente successivo� Un segmento decrescente pu�o mancare�

��

Page 49: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Figure ��� Le spezzate del linguaggio L

�� Si veri�chi se la sintassi �e LL��� calcolando gli insiemi guida

�� Si cerchi di costruire una grammatica LL��� per il linguaggio� Qualora questonon sia possibile si modi�chi il linguaggio in modo tale da poter de�nire unagrammatica LL���

Soluzione ��

La grammatica si pu�o costruire passo passo� la spezzata si pu�o scomporre in uninsieme di segmenti ognuno caratterizzato da un tratto crescente seguito da un trattodecrescente con in mezzo eventualmente un tratto pianeggiante�

Il singolo segmento pu�o essere rappresentato dalle seguenti produzioni�

�A � � A j� A�j BB � � B j �

La sequenza di segmenti potr�a essere rappresentata dalla produzione�

S � AS j �

Inoltre il primo segmento deve iniziare con un tratto crescente per cui l�assiomadel linguaggio sar�a il non�terminale S� cui corrisponder�a la produzione�

S� � � S j� S �

La grammatica che descrive il linguaggio sar�a la seguente G�

G �

���������

S� � � S j� S �S � AS j �A � � A j� A�j BB � � B j �

La grammatica risulta ambigua� Infatti la stringa ��� ammette le due deriva�zioni S� � � S � � AS � � AAS � � AA � � BA � � BB � ��B � ��� e S� � � S � � A � � B � �� B � ��� B � ���

Un�altra sorgente di ambiguit�a �e generata dal fatto che se il numero di trattidecrescenti �e inferiore al numero di tratti crescenti vi sono diversi possibili modi

Page 50: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

in cui le diverse produzioni di A possono essere utilizzate� Per eliminare la primaambiguit�a �e necessario distinguere il caso in cui una sequenza di tratti orizzontalicompare tra un tratto crescente e un tratto decrescente dal caso in cui non �e seguitada un tratto decrescente� Nel primo caso la sequenza verr�a generata dal non�terminaleB mentre nel secondo verr�a generata dal non�terminale S� La seconda ambiguit�a sirisolve introducendo un nuovo simbolo per A� La grammatica non ambigua che siottiene �e la seguente�

G� �

���������������

S� � � S j� S �S � A�S j� S j �A� � � A� j� A� �A� � � A� �j BB � � B j �

Calcolando gli insiemi guida associati ai vari non terminali si osserva come lagrammatica non sia LL���� Un tentativo di renderla LL��� applicando una fattoriz�zazione sinistra produce il seguente risultato�

G�� �

���������������

S� � � Sf�g��j ��f���gS � A�Sf�g j� Sf�g j �f�gA� � � A�f�g j� A� � f�gA� � � A� � f�g j Bf���gB � � Bf�g j �f�g

Tutti i non terminali tranne A� sono LL���� Il problema consiste nel valutare se �epossibile rendere A� LL���� Ci�o non �e possibile� Infatti se si analizza il linguaggio sivede come sia impossibile per il riconoscitore a discesa ricorsiva sapere se �e correttoscegliere la prima o la seconda produzione guardando solo l�elemento successivo� Pureun riconoscitore LL�k� non sar�a in grado di riconoscere il linguaggio� baster�a infattiprendere una stringa che contenga un segmento di lunghezza k � � per non essere ingrado di decidere quale delle due produzioni si debba scegliere�

Si pu�o rendere il linguaggio LL��� ad esempio imponendo che il numero di tratticrescenti sia pari al numero di tratti decrescenti� Questo corrisponde alla grammaticaLL��� seguente�

G��� �

���������������

S� � � SS �f�gS � � � f�g j �f�gS � � A� Sf�g j� Sf�g j �f�gA � � A� f�g j Bf���gB � � Bf�g j �f�g

Il riconoscitore a pila della grammatica LL��� �e caratterizzato dal seguente com�portamento �nella tabella sono sottointese le mosse di avanzamento testina quando ilterminale in ingresso �e identico al terminale sulla cima della pila��

��

Page 51: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Cima Carattere di ingressoPila � � � �

S� push S �S �S � push � push �S push S � A push S � push �A push � A� push B push BB push B � push �

��� Esercizi proposti

���� Esercizio

Veri�care se la grammatica G�

G �

�����

S � aSb j CC � aD j �D� cC

�e LL���� Nel caso negativo cercare di trasformarla in una grammatica LL equi�valente�

���� Esercizio

Si consideri l�insieme L delle sequenze degli eventi associati ad un insieme di operazionidi lettura e di scrittura secondo il modello di concorrenza tra processi noto comemodello dei lettori�scrittori� Pi�u lettori possono operare contemporaneamente maun solo scrittore pu�o essere attivo e soltanto se non vi sono lettori attivi� Inoltre ognilettura deve �nire e cos�� ogni scrittura� In�ne una lettura o scrittura non pu�o �nirese non �e iniziata� Si indichino gli eventi con i seguenti simboli terminali�

il inizio lettura

� �ne lettura

is inizio scrittura

fs �ne scrittura

Ad� es� sono valide le stringhe�

il il f l il f l f l� il il f l f l is fs is fs il f l

mentre sono scorrette le stringhe�

il is fs il f l f l� is fs is il f l fs� il f l il� fs il f l

Page 52: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

�� Si costruisca una grammatica G BNF�estesa per L e si traccino i diagrammisintattici�

�� Si veri�chi se G �e LL��� calcolando gli insiemi guida�

�� Se necessario si modi�chi G in modo da renderla LL���� Si scrivano almeno inparte le procedure sintattiche dell�analizzatore a discesa ricorsiva�

� Analisi sintattica ascendente

��� Esercizio

Costruire un automa a spostamento e riduzione LR�� per la seguente grammatica�

G �

�����

S � aTb j cT � DSb j cD� a

Si illustri il funzionamento del riconoscitore sulla stringa acb�

Soluzione ���

Costruiamo direttamente il riconoscitore dei pre�ssi ascendenti LR�� in formadeterministica� Si aggiunge alla grammatica G la produzione S� � S �� Lo statoI� in questo caso contiene una candidata di spostamento per ogni produzione manessuna candidata di riduzione non essendoci ��produzioni�

I� contiene pertanto le candidate�

I�

�����

S� � �S �S � �aTbS � �c

L�automa viene costruito a partire da I� considerando tutte le possibili mosse costituite da terminali o non terminali che possono provocare uno spostamento� Ite�rando il procedimento ai nuovi stati cos�� ottenuti si costruisce l�automa costituito datutti e soli gli stati raggiungibili da I��

Ad esempio da I� ci possono essere solo tre mosse che possono provocare unospostamento in quanto ci sono solo tre caratteri distinti immediatamente a destra diun �� a� c� S�

Con un arco etichettato S possiamo perci�o andare in uno stato I� che contienesolo la candidata di spostamento S� � S� �� Con un arco etichettato a �analo�gamente per c� possiamo andare in uno stato I� con le seguenti candidate �tutte dispostamento��

��

Page 53: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

S0 -> S^/

S

S0 -> ^S/

a

I1

I2I0

S->^cT -> ^c

S ->a^Tb

D -> ^a

S ->^ aTb T ->^DSb

Figure ��� Costruzione dell�automa riconoscitore dei pre�ssi ascendenti per l�eserci�zio ����

I�

���������

S � a � TbT � �DSbT � �cD� �a

Le candidate T � �DSb T � �c e D � �a devono essere riportate in I� inquanto la candidata S � a � Tb ottenuta da I� ha un T immediatamente a destradi un �� Inoltre la candidata in I� T � �DSb ha un D immediatamente a destra diun �� Si veda la �gura ���

Iterando il procedimento si ottiene l�automa riportato in �gura ��� Quando unostato �e di riduzione non si deve pi�u continuare a espanderlo e lo si marca opportun�amente�

Automa LR��� a spostamento e riduzioneLa riduzione di una produzione X � x per il riconoscitore LR�� consiste nelle

seguenti mosse�

� Non leggere l�ingresso ���mossa��

� Togli i primi �� j x j simboli in cima alla pila�

� Se I �e lo stato in cima alla pila allora push�X� e push��I�X�� dove �e lafunzione di transizione dell�automa riconoscitore dei pre�ssi ascendenti LR���

Lo spostamento di un simbolo I consiste nelle seguenti mosse�

� Consuma il simbolo z in ingresso�

� Non togliere simboli dalla pila�

��

Page 54: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

S0 -> S^/ S0 -> S/^

S

/

S0 -> ^S/

a

I3I1

I2

I4

I5 I7

I8

b

T -> c^

T

I9

I10

b

I0

S -> c^

c

S->^cT -> ^c

I6

a

D

S ->a^Tb

D -> ^a

D->a^

S -> aT^b S -> aTb^

S ->^ aTb

I11

T ->^DSb

a

T -> D^Sb

S -> ^aTb

T -> DS^b

S -> ^c

S

c

T -> DSb^

Figure ��� L�automa riconoscitore dei pre�ssi ascendenti LR�� per l�esercizio ����

��

Page 55: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Cima Carattere di ingressoPila a b c � �

I� Sposta I� Sposta I��I� Sposta I�I� Sposta I� Sposta I�I� accettaI� riduci D � aI� Sposta I�I riduci T � DSbI� riduci S � aTbI� riduci T � cI Sposta I� Sposta I��I�� Sposta II�� riduci S � c

Table �� L�automa a spostamento e riduzione per l�esercizio ���� Per l�esecuzione dellemosse di riduzione l�automa considera la funzione di transizione de�nita dall�automadi �gura ���

� push�z� e push�I��

La accettazione avviene quando non ci sono pi�u simboli sul nastro di ingresso esulla pila c��e il solo stato corrispondente alla candidata di riduzione S� � S � ��

L�analizzatore parte con I� sulla pila e la frase da riconoscere sul nastro di ingresso�Durante il funzionamento l�analizzatore esegue azioni di spostamento e di riduzione salvando o eliminando dalla cima della pila l�appropriata sequenza di identi�catoridello stato dell�automa riconoscitore dei pre�ssi ascendenti intervallati con gli oppor�tuni simboli terminali e non terminali che costituiscono il pre�sso corrente� L�automaa pila a spostamento e riduzione LR�� �e descritto dalla Tabella ��

Il funzionamento dell�automa sulla frase acb �e riportato nella Tabella ��Tradizionalmente la tabella per l�analizzatore a spostamento e riduzione �e com�

pletata da una seconda sezione detta parte �goto�� In essa vengono rappresentatele transizioni del riconoscitore dei pre�ssi ascendenti che sono marcate con un nonterminale �e che quindi non corrispondono a un carattere in ingresso� allo scopo didare una rappresentazione completa in una sola tabella dell�automa a spostamento eriduzione e del riconoscitore dei pre�ssi ascendenti� L�analizzatore ha infatti bisognodi conoscere la funzione di transizione del riconoscitore per potere eseguire corret�tamente le mosse di riduzione� Riportiamo in Tabella � questa versione a titolo diesempio�

��

Page 56: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Pila Nastro di ingresso azioneI� a c b � sposta I�I� a I� c b � sposta I�I� a I� c I� b � riduci T � cI� a I� T I� b � sposta I�I� a I� T I� b I� � riduci S � aTbI� S I� � I� � riduci S� � S � �accetta�

Table �� Traccia del funzionamento dell�automa di Tabella � sulla stringa acb�

Cima Carattere di ingresso Parte GotoPila a b c � � S T D

I� I� I�� I�I� I�I� I� I� I� II� accettaI� riduci D � aI� I�I riduci T � DSbI� riduci S � aTbI� riduci T � cI I� I�� I��I�� II�� riduci S � c

Table �� Rappresentazione sintetica dell�analizzatore ascendente per l�esercizio ����

��

Page 57: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

a

bi

B -> ^i

B -> ^i

I5

A

B b S -> aBb

I1

I2

I6

S

i

/

S0 -> ^S/

S0 -> S^/ S0 ->S^/

I13

S -> ^aAa

S -> ^aBb

S -> ^bBa A -> ^i

S -> a^Bb

S -> a^Aa

S -> b^Ab

S -> b^Ba

A -> ^i

a

I3

S -> aAa^

I4

S -> aA^a

S -> aB^b

I7

adeguato per

analisi LR(0)

S -> ^iAi

I0

S -> i^Ai

S -> ^bAb

Ai

A -> i^S -> iA^i

i

S -> iAi^

S -> i^Ai

A -> ^ii

A

b a

B

S -> bB^a

I9 I10

I11 I12

S -> bA^b

S -> bAb^ S -> bBa^

stato I8 non

I8

A -> i^

B -> i^

I14

I15 I16

I17

Figure ��� L�automa riconoscitore dei pre�ssi ascendenti LR�� dell�esercizio ����

��� Esercizio

Veri�care se la seguente grammatica

G �

�����

S � iAi j aAa j bAb j aBb j bBaB � iA� i

�e LR�� SLR��� LALR��� LR���� Si costruisca inoltre l�automa a spostamentoe riduzione per L�G� guidato dal riconoscitore dei pre�ssi ascendenti LR��� e se neillustri il funzionamento sulla frase aib��

Soluzione ���

L�automa riconoscitore dei pre�ssi ascendenti LR�� �e riportato in �gura ���L�automa risultante �e per�o inadeguato per l�analisi LR��� infatti nello stato I�

ci sono due candidate di riduzione �un automa a spostamento e riduzione guidato

��

Page 58: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

dal riconoscitore dei pre�ssi ascendenti non potrebbe essere deterministico in quantoaltrimenti giunto nella situazione I� non saprebbe quale mossa di riduzione scegliere��

Analisi SLR����Si considera ancora il riconoscitore LR�� ma si calcola l�insieme dei seguiti di

X per ogni produzione X � � per le candidate di riduzione X � �� negli statiinadeguati� L�insieme cos�� calcolato �e usato dal riconoscitore SLR��� come insieme diprospezione per ciascuna candidata di riduzione�

Per lo stato I� dobbiamo calcolare i due insiemi� SLR�A � i� � S�A� � fx �! j S �

destra �Axz con z � !� e � � �!SVN��g � fa� b� ig �A compare nella parte

destra solo per le produzioni S � iAi j aAa j bAb��SLR�B � i� � fa� bgLa marca �nale � in questo caso non appartiene a nessuno dei due insiemi �in ge�

nerale va esplicitamente considerata inserendola nell�insieme di prospezione qualoraxz � ���

La prima condizione di adeguatezza SLR��� �e che non ci siano candidate di sposta�mento del tipo X � ��c con c � SLR�A� i�

SSLR�B � i�� Questa �e banalmente

veri�cata in quanto non ci sono candidate di spostamento in I�� La seconda condi�zione vale a dire che gli insiemi di prospezione delle varie candidate di riduzione sianodisgiunti non �e per�o veri�cata e pertanto la grammatica non �e adeguata per l�analisiSLR����

Analisi LALR���� Nell�analisi LALR��� si considera ancora il riconoscitore deipre�ssi ascendenti LR�� e si esaminano solo gli stati inadeguati allo stesso mododell�analisi SLR��� ma l�insieme dei seguiti per ogni candidata di riduzione vienecalcolato tenendo conto anche del cammino dallo stato iniziale che deve portareproprio allo stato inadeguato� L�insieme di prospezione in generale non dipende solodalla candidata o dalla sua parte sinistra ma anche dal modo in cui si �e arrivati aconsiderare la candidata� In formule l�insieme di prospezione per la candidata A� i�nello stato I� �e de�nito come�

LALR�I�� A � i� � fx � ! j S �destra �Axz �ixz� con �I�� �i� � I�g �

fa� bg�In questo caso semplice possiamo utilizzare direttamente la de�nizione� Infatti ci

sono le derivazioni�S aAa aia con �I�� ai� � I�S bAb bib con �I�� bi� � I�mentre la derivazione S iAi iii ha il pre�sso i che non porta in I�� �I�� ai� �

I���Analogamente LALR�I�� B � i� � fa� bg�Nonostante l�analisi LALR sia risultata pi�u ra�nata dell�analisi SLR poich�e il

terminale i fa parte dell�insieme SLR�A� i� ma non di LALR�I�� A� i� la gram�matica non �e nemmeno LALR� La condizione di adeguatezza per LALR��� �e che gliinsiemi di prospezione delle varie candidate di riduzione siano disgiunti e che inoltreLALR�I�� A � i�

Tfc j �I�� c� �e de�nito g � �� Quest�ultima parte �e banalmente

��

Page 59: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

veri�cata in quanto non ci sono candidate di spostamento in I� e pertanto non ci sononemmeno archi uscenti da I� ma la prima parte non lo �e e pertanto la grammaticanon �e adeguata per l�analisi LALR����

Analisi LR����Nell�analisi LR��� si deve tenere conto nella costruzione dell�automa riconosci�

tore dei pre�ssi ascendenti anche degli insiemi di prospezione associati a ciascunacandidata� La stessa candidata pu�o presentarsi in uno stesso stato con insiemi diprospezione diversi� in generale l�automa a stati �niti cos�� ottenuto ha un numero distati molto maggiore di quello dell�automa LR�� per la stessa grammatica�

L�insieme di prospezione �e de�nito come per LALR��� ma il metodo LR��� sidi�erenzia da LALR��� poich�e gli insiemi di prospezione sono usati anche per costruirel�automa riconoscitore dei pre�ssi ascendenti�

La costruzione dell�automa procede dallo stato I� che contiene le candidate�

I�

�������������������

S� � S �S � �aAaf�gS � �bAbf�gS � �iAif�gS � �aBbf�gS � �bBaf�g

Si procede come per l�automa LR�� ma di�erenziando gli stati anche a secondadegli insiemi di prospezione delle candidate� Non conviene utilizzare la de�nizionedell�insieme di prospezione ma le usuali regole di calcolo in forma deterministica�

Ad esempio un arco uscente da I� marcato a deve portare in uno stato I� �quindi�I�� a� � I�� in cui ci sono le due candidate�

I�

�S � a � Aaf�gS � a �Bbf�g

In I� dobbiamo per�o considerare anche le candidate A� �i e B � �i� Poich�e lacandidata A � �i deriva dalla candidata S � a � Aaf�g l�insieme di prospezione�e costituito dal simbolo a destra della A nella candidata cio�e il solo a �la marca �non fa parte dell�insieme per A� �i in quanto a non pu�o andare in ���

Analogamente l�insieme di prospezione per B � �i �e costituito dal solo simboloterminale b in quanto la candidata �e stata ricavata da S � a �Bbf�g�

L�automa risultante �e riportato in �gura ���Si osservi che ora lo stato I� del riconoscitore LR�� viene distinto nell�automa

LR��� nei due stati I� e I� che sono entrambi adeguati per LR��� in quanto inentrambi i casi gli insiemi di prospezione delle candidate di riduzione sono disgiunti�L�analisi LALR��� non aveva permesso questa distinzione in quanto considerava ilriconoscitore LR���

Costruzione automa a spostamento e riduzione LR���� Costruiamo ora l�automaa spostamento e riduzione guidato dal riconoscitore dei pre�ssi ascendenti LR����

Page 60: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Ai

i

I16 I17

I18

I15

i

S -> i^Ai {/}

A -> ^i {i}

S -> iA^i {/} A -> i^ {i}

S -> iAi^ {/}

a

bi

B -> ^i

B -> ^i

A

b a

B

S -> ^aAa {/}

S -> ^aBb {/}

S -> ^bBa {/}

S -> a^Aa {/}

S -> a^Bb {/}

A -> ^i {a}

{b}

I5

B S -> aB^b {/} b S -> aBb {/}

S -> b^Ab {/}

S -> b^Ba {/}

A -> ^i {b}

{a} i {b}

{a}

{a}

{b}

A -> i^

B -> i^

S -> bA^b {/}

S -> bAb^ {/}

S -> bB^a {/}

S -> bBa^ {/}

I1

I2

I6

I7

I9 I10

I11 I12

I13 I14S

S0 -> S/

S0 -> ^S/

I8

A -> i^

B -> i^

S0 -> S^/ /

S -> ^bAb {/}

S ->^ iAi {/}

I0

A S -> aA^a {/} a S -> aAa^ (/}

I3 I4

Figure ��� L�automa riconoscitore dei pre�ssi ascendenti LR��� dell�esercizio ����

��

Page 61: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

L�alfabeto della pila �e costituito dai simboli I� � � � I�� e dall�alfabeto terminale e non�terminale della grammatica� L�automa a pila parte con il solo I� sulla pila e la frase dariconoscere sul nastro di ingresso� Durante il funzionamento l�automa esegue azioni dispostamento e di riduzione salvando o eliminando dalla cima della pila l�appropriatoidenti�catore dello stato dell�automa riconoscitore dei pre�ssi ascendenti� L�automa�e in grado di leggere un simbolo in ingresso sensa consumarlo cio�e senza avanzare latestina di lettura�

La mossa di riduzione di una produzione X � x consiste nelle seguenti mosseelementari�

� Non consumare l�ingresso �non �e una vera ��mossa poich�e l�ingresso viene co�munque letto anche se non consumato per potere decidere quale candidataridurre negli stati inadeguati��

� Togli i primi �� j x j simboli in cima alla pila�

� Se I �e lo stato in cima alla pila allora push�X� e push��I�X���

Lo spostamento di un simbolo I consiste nelle seguenti mosse�

� Non togliere simboli dalla pila�

� Consuma un simbolo z dall�ingresso�

� push�z� e push�I��

La accettazione avviene quando non ci sono pi�u simboli sul nastro di ingresso esulla pila c��e il solo stato corrispondente alla candidata di riduzione S� � S � �� Aquesto �ne quando l�automa trova I�� in cima alla pila e�ettua una ��transizione inmodo da svuotare la pila�

�E anche possibile accettare quando il prossimo simbolo in ingresso �e la marca �e ci si trova nello stato corrispondente alla candidata di spostamento S� � S� ��

L�automa a pila a spostamento e riduzione LR��� �e descritto dalla Tabella ��Una traccia di funzionamento dell�automa sull�ingresso aib � �e riportato in Ta�

bella ��

��� Esercizio

Si veri�chi se la grammatica G� dell�esercizio ��� �e adeguata per l�analisi LR�� oSLR����

G� �

���������

S � D or S j DD � C andD j CC � not C j AA� p j q j r

Page 62: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Cima Carattere di ingressoPila a b i � �

I� Sposta I� Sposta I�I� Sposta I�I� Sposta I�I� Sposta I�I� riduci S � aAaI� Sposta II riduci S � aBbI� riduci B � i riduci A� iI� riduci A� i riduci B � iI Sposta I�I�� Sposta I�I�� riduci S � bAbI�� riduci S � bBaI�� Sposta I��I�� accettaI�� Sposta I��I� Sposta I��I�� Riduci A� iI�� Riduci S � iAi

Table �� L�automa a spostamento e riduzione LR��� dell�esercizio ����

Pila Nastro di ingresso azioneI� a i b � sposta I�I� a I� i b � sposta I�I� a I� i I� b � riduci B � iI� a I� B I� b � sposta II� a I� B I� b I � riduci S � aBbI� S I�� � I�� � accetta

Table �� Traccia del funzionamento dell�automa di Tabella � sulla stringa aib�

��

Page 63: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

S -> ^D or S

S-> ^D

D -> ^ C and DD -> ^ C

C -> ^ A

A -> ^p

A -> ^q

A -> ^r

I0

D

S -> D ^ or S

S -> D ^

I1

C -> ^ not C

Figure ��� Un frammento dell�automa riconoscitore dei pre�ssi ascendenti per l�eser�cizio ����

Soluzione ���

La grammatica non �e adeguata per l�analisi LR��� Per veri�carlo non �e necessariocostruire l�intero automa riconoscitore dei pre�ssi ascendenti ma basta semplicementenotare la presenza delle due produzioni S � D or S e S � D� Il riconoscitore deipre�ssi ascendenti sar�a costituito fra l�altro di uno stato iniziale I� e uno stato I� con I� raggiungibile da I� tramite un arco marcato D� Lo stato I� non �e adeguatoper l�analisi LR�� in quanto contiene la candidata di spostamento S � D� or Se la candidata di riduzione S � D�� Si veda la �gura ��� Per ovviare a questoinconveniente le grammatiche del tipo di G� sono di solito analizzate con metodiSLR o LALR�

La veri�ca se la grammatica �e SLR��� �e molto facile� Lasciamo al lettore lacostruzione del riconoscitore completo LR�� dopo avere aggiunto come di consuetola produzione S� � S �� Dal riconoscitore si pu�o facilmente vedere che gli unicistati inadeguati per LR�� sono i seguenti�

�� Stato con la candidata di spostamento S � D� orS e la candidata di riduzioneS � D��

�� Stato con la candidata di spostamento D� C�andD e la candidata di riduzioneD� C��

Nel caso ��� l�insieme dei seguiti della candidata di riduzione �e f�g� la condizioneSLR��� �e veri�cata in quanto la candidata di spostamento �e S � D� or S conor �� f�g� Nel caso ��� l�insieme dei seguiti della candidata di riduzione �e for��g�la condizione SLR��� �e pure veri�cata in quanto la candidata di spostamento �e D�C� andD con and �� for��g�

��

Page 64: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

a

SS0 -> S/

S0 -> ^S/

S0 -> S^/ /

I0I6

I3 I4

S

T

c

b

I1

S -> aSc^

T -> aTb

I5

T

a

I7 I8

I9

S -> ^aSc

S -> ^T

T -> ^aTb {/}

T-> ^

S -> T^

S -> a^Sc

T -> a^Tb S -> ^T S -> ^aSc T-> ^

T -> ^aTbT -> aT^b S -> T^

S -> aS^c

^

Figure �� L�automa riconoscitore dei pre�ssi ascendenti LR�� per l�esercizio ����

��� Esercizio

Si consideri il linguaggio L � fanbpcq j n � � n � p � qg dell�Esercizio ��� e siveri�chi se �e LR�� o LR����

Soluzione ���

La grammatica G data nella Soluzione dell�Esercizio ����

G �

�S � aSc j TT � aTb j �

non �e LR�� come si pu�o facilmente veri�care dall�automa riconoscitore mostratoin Figura � e non �e nemmeno SLR� La grammatica �e tuttavia LR��� come si vededal riconoscitore dei pre�ssi ascendenti LR��� di Figura ���

Dalla �gura si pu�o facilmente notare che G �e anche LALR���� basta accorparegli stati con le stesse candidate cio�e I� con I� I� con I� I� con I I� con I� eI con I��� gli insiemi di prospezione cos�i ricavati sono adeguati per LALR���� Gliinsiemi possono essere ricavati anche in base alla de�nizione di LALR��� riportatanell�esercizio ��� a partire dall�automa riconoscitore LR���

In I� l�insieme di prospezione LALR��� per T �� �e f�g� Infatti l�unica deriva�zione destra del tipo S�

� �Tz tale che �I�� �� � I� �e la derivazione� S� S � T � �perch�e il pre�sso � deve essere uguale a � se si vuole che �I�� �� � I���

In I� l�insieme di prospezione LALR��� per T �� �e fb� cg perch�e le derivazionidestre che portano in I� devono generare una frase del tipo a�Tz e sono quindi diuno dei due tipi seguenti�

S� � apScp � apTcp �

��

Page 65: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

a

SS0 -> S/

S0 -> ^S/

S0 -> S^/ /

I0

S -> ^aSc {/}

S -> ^T {/}

T -> ^aTb {/}

T-> ^ {/}

S

T

c

b

{/}

I6

(/}

I3 I4

S

T

S -> aS^c {/} c

bT -> aT^b {/}

I7 I8

I11 I12

S -> a^Sc {/}

T -> a^Tb {/}

a

I1

S -> a^Sc {c}

a

I2

S -> aS^c {c} S -> aSc^ {c}

S -> aSc^

T -> aTb

I5

S -> T^ {/}

I13

T

S -> T^ {c}T-> ^ {b,c}

S -> ^T {c}

S -> ^aSc {c}

T -> ^aTb {b,c}

T-> ^ {b,c}

T -> ^aTb {b,c}

S -> ^aSc {c}

S -> ^T {c}

T -> a^Tb {b,c}

S -> T^ {c}

T -> aT^b {b,c}T -> aTb ^ {b,c}

I10

I9

Figure ��� L�automa riconoscitore dei pre�ssi ascendenti LR��� per l�esercizio ����

��

Page 66: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

S� � apTcp � � apaqTbqcq �

In�ne nell�ultimo stato inadeguato I� la candidata di riduzione S � T � ha comeinsieme di prospezione LALR��� fcg poich�e le derivazioni destre che da I� portanoin I� devono generare una frase del tipo a � Sz e sono quindi tutte del tipo�

S� � apScp �

Si osservi che sia la grammatica G che il linguaggio L non sono LL�k� per nessunk ma che tuttavia la grammatica �e LR���� Infatti la classe dei linguaggi LR��� �e pi�uampia di quella che contiene i linguaggi LL�k��

Si pu�o addirittura costruire una versione pi�u complicata di grammatica per Lche �e anche LR��� Questo non �sorprendente visto che la classe dei linguaggi LR���coincide con la classe dei linguaggi deterministici mentre LR�� coincide con la classedei linguaggi deterministici per i quali nessuna frase �e pre�sso proprio di un�altrafrase� usando una marca di �ne stringa che non compare nell�alfabeto terminale ledue classi vengono di fatto a coincidere� Nonostante questo una grammatica LR���pu�o non essere LR�� come in questo caso� La trasformazione in LR�� �e per�o semprepossibile nell�ipotesi di considerare una marca di �ne stringa ed essendo disposti adaccettare una grammatica pi�u complicata e meno intuitiva�

Una grammatica LR�� per L �e la seguente G��

G� �

�����

S� � S �j�j T �S � aSc j ac j aTcT � aTb j ab

La veri�ca che la grammatica G� �e LR�� �e lasciata al lettore� Rispetto a G G�

�e LR�� in quanto non contiene le due produzioni S � T e T � � la cui presenzaporta a costruire per G alcuni stati inadeguati�

��� Esercizi proposti

����� Esercizio

Sia data la sintassi�

G �

�S � aAcA� bAb j b

Si veri�chi se G �e LR��� e se necessario si costruisca una sintassi equivalenteLR�� o LR���� Si progetti un analizzatore ascendente per G�

��

Page 67: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

����� Esercizio

Per ciascuna delle seguenti grammatiche si veri�chi se la grammatica �e LR�� SLR��� LALR��� LR����

G� �

�S � aAaa j bAbaA� b j �

G� �

���������

S � X �X � bA j aBA� a j aX j bAAB � b j bX j aBB

Si mostri inoltre una traccia del calcolo svolto da un analizzatore ascendente suuna stringa a scelta�

� Traduzioni sintattiche

��� Esercizio

Si costruisca uno schema di traduzione semplice per calcolare la traduzione�

���a�nc�b�n� � dbn��cen con n �

Descrivere un trasduttore a pila deterministico che esegue la traduzione usandola tecnica LL��� e la tecnica LR�� e un trasduttore ricorsivo discendente�

Soluzione ��

La sintassi sorgente deve generare il linguaggio L � f�a�nc�b�n j n � g� Lagrammatica pi�u ovvia per questo �e la seguente�

G� �nS � aSb j c

Lo schema di traduzione potrebbe allora scrivere una d per ogni coppia di a e unae per ogni b� Non si pu�o per�o ricavare una sintassi pozzo a partire da G� in quantooccorre distinguere i due casi� quando si genera una a e non si scrivono d e quandosi genera una coppia di a e si scrive una d in uscita�

Questo pu�o essere ottenuto semplicemente con il seguente schema di traduzione�

Gt �nS � aafdgSbbfeeg j acbfeg j c

Ad esempio ��aaacbbb� � deee �e cos�� ottenuta�Sorgente� S aaSbb aaacbbb�Pozzo� S dSee deee�La grammatica non �e LL���� La si pu�o rendere LL��� ad esempio in questo modo�

��

Page 68: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

G�t �

�S � aTbfeg j cT � afdgSbfeg j c

Ad esempio ��aacbb� � dee �e cos�� ottenuta�Sorgente� S aTb aaTbb aacbb�Pozzo� S Te dTee dee�Lo schema di traduzione �e chiaramente deterministico in quanto la grammatica

sorgente �e addirittura LL���� Infatti�

G�S � aTb� � fag

G�S � c� � fcg

G�T � aSb� � fag

G�T � c� � fcg

L�automa a pila che implementa la traduzione si ottiene facilmente dall�automariconoscitore LL��� aggiungendo opportune azioni di emissione� Il risultato �e riportatonella tabella seguente�

Cima Carattere di ingressoPila a b c

S push�fegbTa� push�c�T push�afegSbfdg� push�c�a avanzab avanzac avanzafeg emetti e emetti e emetti efdg emetti d emetti d emetti d

Analogamente per il trasduttore ricorsivo discendente�

procedure S�if cc � fag then cc�� PROSSIMO�

T�if cc �� �b� then ERRORE else cc �� PROSSIMO endif�EMETTI��e���

elsif cc � fcg then cc �� PROSSIMOelse ERRORE

endifend S�

��

Page 69: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

procedure T�if cc � fag then cc�� PROSSIMO�

EMETTI��d���S�if cc �� �b� then ERRORE else cc �� PROSSIMO endif�EMETTI��e���

elsif cc � fcg then cc �� PROSSIMOelse ERRORE

endifend T�

Per potere costruire un traduttore con tecnica LR�� occorre portare la gram�matica pozzo in forma post�ssa� In questo caso si pu�o introdurre un nonterminaleD da usare al posto di fdg nello schema di traduzione� Per non rendere la gram�matica inadeguata per l�analisi LR�� evitiamo l�introduzione di ��produzioni �comesuccederebbe per la grammatica sorgente se si aggiungesse la produzione D � fdg��Conviene allora usare D per generare una a nella grammatica sorgente e una d inquella pozzo� Lo schema di traduzione risultante �e il seguente�

G�t �

�����

S � aTbfeg j cT � DSbfeg j cD � afdg

Lo schema LR�� �che �e lo stesso dell�esercizio ���� �e riportato in �gura ��Il trasduttore a spostamento e riduzione basato sul riconoscitore LR�� si ottiene

facilmente dall�automa a spostamento e riduzione dell�esercizio ��� aggiungendo op�portune azioni di emissione da eseguire durante le riduzioni� Si veda la Tabella ��

��� Esercizio

Si costruisca uno schema di traduzione semplice per calcolare la traduzione� ��x� �xRx con x � fa� bg�� Tracciare poi lo schema di un trasduttore a pila che esegua latraduzione� �E possibile costruire un trasduttore deterministico#

Soluzione ��

Notiamo innanzitutto che ��xxR� � xR si pu�o de�nire banalmente�

Gt� �nS � aSafag j bSbfbg j �

Inoltre ��xxR� � x �e ottenibile con il seguente schema�

Gt� �nS � fagaSa j fbgbSb j �

Page 70: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

S0 -> S^/ S0 -> S/^

S

/

S0 -> ^S/

a

I3I1

I2

I4

I5 I7

I8

b

T -> c^

T

I9

I10

b

I0

S -> c^

c

S->^cT -> ^c

I6

a

D

S ->a^Tb

D -> ^a

D->a^

S -> aT^b S -> aTb^

S ->^ aTb

I11

T ->^DSb

a

T -> D^Sb

S -> ^aTb

T -> DS^b

e

e

ed

e

e e

e

e

e

S -> ^c

S

c

T -> DSb^

Figure �� L�automa riconoscitore dei pre�ssi ascendenti LR�� per l�esercizio ����I caratteri della grammatica pozzo da emettere al momento di una riduzione sonosegnati in grassetto�

��

Page 71: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Cima Carattere di ingressoPila a b c � �

I� Sposta I� Sposta I��I� Sposta I�I� Sposta I� Sposta I�I� accettaI� riduci D� a

emetti dI� Sposta I�I riduci T � DSb

emetti eI� riduci S � aTb

emetti eI� riduci T � cI Sposta I� Sposta I��I�� Sposta I�I�� riduci S � c

Table �� Il trasduttore a spostamento e riduzione dell�esercizio ����

Per ottenere la traduzione desiderata basta a questo punto combinare questetraduzioni in modo opportuno�

Lo schema di traduzione risultante �e il seguente�

Gt �nS � fagSafag j fbgSbfbg j �

Un esempio di derivazione �e�Sorgente� S Sa Sba Sbba Sbbba bbba�Pozzo� S aSa abSba abbSbba abbbSbbba abbbbbba�Un trasduttore a pila per la � si pu�o costruire sfruttando il nondeterminismo�

Prima di cominciare a leggere l�automa �indovina� con una serie di ��mosse il ri�essoxR della stringa da riconoscere lo emette e lo impila� Questo �e possibile in quanto sipu�o costruire un automa che ad ogni passo sceglie nondeterministicamente se emetteree impilare il carattere a oppure il carattere b oppure cominciare a leggere l�ingresso�A un certo punto l�automa comincia a leggere la stringa in ingresso emettendolain uscita e confrontandola con la stringa salvata sulla pila� Se le due stringhe sonouna il ri�esso dell�altra allora l�automa accetta e quindi la stringa xRx �e il risultatodella traduzione dell�ingresso x� Se invece l�automa non accetta i caratteri emessinon fanno parte della traduzione in quanto per stabilire il risultato della traduzione la de�nizione di trasduttore non considera le computazioni fallite�

Page 72: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Stato � Ingressocima pila � a b

q�� Z� �q�� A� a��q�� B� b��q�� �� ��

q�� A �q�� AA� a��q�� AB� b��q�� A� ��

q�� B �q�� AA� a��q�� AB� b��q�� B� ��

q�� A �q�� �� a�q�� B �q�� �� b�

Table �� La funzione di transizione di un trasduttore a pila che calcola ��x� � xRx per l�esercizio ����

La de�nizione dell�automa trasduttore pu�o essere cos�i precisata� Sia Z� il simboloiniziale della pila� l�alfabeto di ingresso �e fa� bg quello della pila fZ�� A� Bg� L�insiemedi stato �e fq�� q�g� L�automa accetta quando la pila �e vuota e il nastro di ingresso �evuoto� Il risultato della traduzione della stringa di ingresso �e de�nito come l�insiemedelle stringhe emesse durante computazioni che portano ad accettazione �in questocaso per ogni ingresso ci sar�a una e una sola computazione che porta ad accettazione e pertanto il risultato della trasduzione sar�a una stringa e non un insieme di stringhe��

La funzione di transizione dell�automa �e descritta nella Tabella � in cui sulle righesono riportate solo le coppie �stato simbolo in cima alla pila� per le quali la funzione�e de�nita per almeno un valore dell�ingresso� Poich�e l�automa �e non deterministico in una stessa con�gurazione sono possibili pi�u mosse riportate nella stessa cella dellatabella� Ogni mossa �e rappresentata da una tripla �stato stringa da impilare stringadi uscita�� L�automa esegue una pop ad ogni passo cambia di stato esegue una pushdella stringa da impilare ed emette la stringa di uscita�

�E facile comprendere che nessun automa a pila deterministico �e in grado di eseguirequesta traduzione�

��� Esercizio

Si costruisca uno schema di traduzione �nito per calcolare la traduzione� ��x� �e la fun�zione identit�a �no alla prima occorrenza da sinistra della stringa aba in x restituiscec per questa prima occorrenza �e ancora la funzione identit�a dopo l�occorrenza�

Ad esempio ��aab� � aab ��aba� � c ��aabbabababa� � aabbcbaba�

��

Page 73: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Stato ingressoa b �

q� �q�� �� �q�� b�q� �q�� a� �q�� �� �q�� a�q� �q�� c� �q�� abb� �q�� ab�q� �q�� a� �q�� b�q�

Table � Il trasduttore �nito per l�esercizio ���� Il primo elemento di ogni coppia �e lostato prossimo il secondo la stringa emessa in uscita� Gli stati q� q� e q� sono �nali�

Si costruisca il trasduttore �nito che calcola la traduzione�

Soluzione ��

Uno schema di traduzione �e il seguente�

Gt �

���������

S � aT j bfbgS j �T � bU j afagT j fagU � afcgV j bfabbgS j fabgV � afagV j bfbgV j �

Il corrispondente trasduttore �nito �e dato in Tabella �

��� Esercizio

Si progetti uno schema sintattico semplice di traduzione per calcolare la traduzione�

��an�#an�#an� � � �#ank� � bn�cn��bn�cn��bn�cn� � � � bnkcnk

con k � �� ni � �� La traduzione sostituisce i separatori �#� di posto dispari con� quelli di posto pari con ��

La traduzione pu�o essere calcolata da un trasduttore deterministico#

Soluzione ��

Una soluzione �e data dal seguente schema�

Gt �

�����

S � T j T #f�gT j T #f�gT #f�gST � afbgTfcg j �

�E evidente che si pu�o costruire un trasduttore deterministico� Per convincersene si pu�o anche modi�care la grammatica in modo da renderla LL��� �come si pu�ofacilmente veri�care��

��

Page 74: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Gt� �

���������

S � TUU �#f�gTW j �W � � mid#f�gTST � afbgTfcg j �

��� Esercizi proposti

���� Esercizio

Si costruisca un trasduttore �nito che calcola la seguente traduzione���a�n� � b�n� n �

���� Esercizio

Si costruisca uno schema di traduzione sintattico che calcola la seguente traduzione per n � �

��anc�bn� �pn�� n paridn�� n dispari

Si veri�chi se la traduzione pu�o essere calcolata in modo deterministico e sicostruisca il relativo automa trasduttore�

Grammatiche ad attributi

��� Esercizio

Costruire una grammatica ad attributi che generi il linguaggio non libero

L � fanbncn j n � �g

Soluzione ��

Possiamo procedere in due modi�

�� Costruire una grammatica per a�b�c� i cui attributi veri�cano se vi sia lostesso numero di occorrenze di a di b e di c�

�� Costruire una grammatica per anbnc� e veri�care poi che il numero di occor�renze di c sia proprio n�

Seguendo il primo metodo de�niamo la seguente grammatica scritta in una formacomoda per sempli�care gli attributi�

��

Page 75: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

3 3 3A B C

222a A b B c C

a b c

S a=true

a A b B c C1 1 1

Figure ��� Albero decorato per la stringa aaabbbccc per la grammatica ad attributidell�esercizio ����

G� �

�������������������������

��S � ABC��A� aA��A� a��B � bB��B � b��C � cC��C � c

Gli attributi sono i seguenti� aofS restituisce true se la stringa generata �e unafrase di L mentre numofA numofB e numofC rappresentano rispettivamente ilnumero di a b e c generati da A B C�

�������������������������

��aofS �� �numofA � numofB � numofB � numofC���numofA� �� � � numofA�

��numofA �� ���numofB� �� � � numofB�

��numofB �� ���numofC� �� � � numofC�

��numofC �� �

Un esempio di albero di derivazione per la frase aaabbbccc decorato con i corris�pondenti attributi �e mostrato in �gura ���

Il secondo metodo �e mostrato dalla seguente grammatica�

��

Page 76: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

G� �

���������������

��S � XC��X � aXb��X � ab��C � cC��C � c

Gli attributi sono i seguenti� aofS restituisce true se la stringa generata �e unafrase di L mentre numofX restituisce il numero di a �uguale a quello delle b� enumofC rappresenta il numero di c generati da C�

���������������

��aofS �� �numofX � numofC���numofX� �� � � numofX�

��numofX �� ���numofC� �� � � numofC�

��numofC �� �

��� Esercizio

Costruire una grammatica ad attributi che generi il linguaggio non libero

L � fww j q � � ���g

Si possono usare solo attributi di tipo intero o booleano�

Soluzione ��

Una soluzione pu�o essere facilmente costruita se si considera una stringa di e� come una rappresentazione binaria di un opportuno numero intero� Si pu�o allorade�nire una grammatica che considera frasi divise in due met�a di pari lunghezza i cuiattributi calcolano il valore intero corrispondente alle due met�a� Poich�e le due stringhesono di pari lunghezza sono uguali se e solo se rappresentano lo stesso numero intero�In questo caso infatti non vi �e alcuna ambiguit�a nella rappresentazione dovuta allapossibilit�a che vi siano zeri iniziali �� ha lo stesso valore di � e di ���

Per calcolare il valore numerico delle due met�a basta osservare che aggiungereun bit v a sinistra cio�e nella posizione pi�u signi�cativa di una stringa di n bit cherappresenta il numero b de�nisce un numero binario di valore b�v��n��� Aggiungereun bit v a destra cio�e nella posizione meno signi�cativa di una stringa di n bit cherappresenta il numero b de�nisce un numero binario di valore � � b � v�

Si pu�o allora usare una produzione che attacchi un bit a sinistra e uno a destra con opportuni attributi che tengano conto della profondit�a dell�albero�

La grammatica costruisce simmetricamente stringhe del tipo � ��n� ��n� Gliattributi sono des e sin per i valori della parte destra e sinistra della frase val per ilvalore di un singolo bit d per la profondit�a dell�albero�

��

Page 77: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

��S � T aofS �� sinofT � desofT��T � XTX sinofT� �� valofX � �dofT� � sinofT�

desofT� �� valofX � � � desofT�dofT� �� dofT� � �

��T � � desofT �� sinofT �� dofT ��

��X � valofX �� ��X � � valofX �� �

Un albero decorato per la stringa �� e un albero per ��� sono mostrati in�gura ���

Si noti che il metodo �e facilmente generalizzabile a qualunque alfabeto �nito� datoun qualunque alfabeto �nito di cardinalit�a k a b � � � z basta assegnare un valore tra e k ad ogni lettera� Le formule per aggiungere cifre a sinistra e a destra sono uguali salvo che la cifra � �e sostituita da k�

��� Esercizio

Si de�nisca una grammatica ad attributi per il linguaggio delle dichiarazioni e dichiamate di procedura� Una dichiarazione ha la forma� proc Id �P�� P�� � � � � Pn��lista�chiamate�di�procedura end dove Id �e un identi�catore che rappresenta il nomedella procedura e i Pi sono gli identi�catori dei parametri formali che si suppongonotutti dello stesso tipo �intero�� Vi �e almeno un parametro formale per procedura�

Una chiamata ha la seguente forma� call Id �A�� A�� � � � An� dove ogni parametroattuale Ai deve essere un intero positivo�

Una frase consiste di una o pi�u dichiarazioni e chiamate terminate da un caratterepunto� Ad esempio una frase �e�

proc P��A B�call P��� ��proc P��X Y�call P��� ��call P��� ��call P��� ��end�

La grammatica deve svolgere i seguenti controlli semantici�

� non vi sono due dichiarazioni di procedura con lo stesso nome�

� le chiamate di procedura sono relative solo alle procedure che sono state dichia�rate in un punto precedente del programma�

��

Page 78: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

X T X

0 1

X T X0 0 01

1

10 1

1

0

1

sin des

sin des

sin des

0

1 0ε

T

S true

2

d

val

val

val

a

1 ε

T

S

2

d

val

val

val

a

1

sin des

1

1

sin des

0

0 1

1X T X0

X T X0

sin des

0

1

11

1

3

false

val vald

d d

d

Figure ��� Alberi decorati per la stringhe �� e ��� per la grammatica ad attributidell�esercizio ����

��

Page 79: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

��program� prg aofprogram �� aofprgenvofprg �� �

��prg� � prcd prg� aofprg� �� aofprcd � aofprg�envofprg� �� envofprg�

Supdofprcd

envofprcd �� envofprg���prg � � aofprg �� true��prcd� procpId�fPar�cll aofprcd �� aofcll � valofpId �� nomi�envofprcd�

updofprcd �� f�valofpId� numoffPar�genvofcll �� envofprcd

Sf�valofpId� numoffPar�g

��fPar� id numoffPar �� ���fPar� � id� fPar� numoffPar� �� � � numoffPar���cll� � callpId�actPar�cll� aofcll� �� �pId� numofactPar� � envofcll� � aofcll�

envofcll� �� envofcll��cll� end aofcll �� true��actPar � int numofactPar �� ���actPar� � int� actPar� numofactPar� �� numofactPar� � �

Table �� La grammatica ad attributi per l�esercizio ���

� i parametri attuali di una chiamata sono in numero pari a quelli formali delladichiarazione corrispondente�

Si descriva almeno in parte un analizzatore sintattico�semantico integrato per lagrammatica�

Soluzione ��

La grammatica illustrata in Tabella � �e costituita dai non�terminali program prg prcd cll fPar actPar pId int� Gli attributi da considerare sono� aofprogram che restituisce true o false a seconda che i controlli semantici diano esito positivoo negativo� envofprogram envofprog ecc� che sono attributi ereditati costituiti daun insieme di coppie � nome� numero � che rappresentano l�environment di unadichiarazione vale a dire i nomi e il numero dei parametri delle procedure visibili inun certo punto del programma� Vi sono poi altri attributi tutti sintetizzati comeupdofprcd che contiene la coppia nome�numero corrispondente alla dichiarazione cor�rente� numofactPar e numoffPar che rappresentano il numero di parametri di unadichiarazione e di una chiamata rispettivamente� I nonterminali pId id e int non sonoespansi ulteriormente in quanto si suppone che il loro �unico� attributo sintetizzatoval sia ritornato da un opportuno analizzatore lessicale�

La regola ��� serve solo per inizializzare l�ambiente di prg� Da prg si deriva unprogramma sintatticamente corretto costituito da una o pi�u dichiarazioni di proce�dura �prcd� tramite le regole ��� e ���� Ogni procedura �e costruita secondo la regola���� L�attributo sintetizzato envofprg permette di veri�care se l�identi�catore dellaprocedura �e gi�a stato utilizzato� Si suppone che vi sia un analizzatore lessicale che

Page 80: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

restituisce un identi�catore per pId e un intero per int �in caso contrario l�alberosintattico sar�a scorretto��

La grammatica �e in forma normale di Bochman e sono veri�cate le condizioni ditipo L in quanto gli attributi ereditati di ogni regola dipendono al pi�u da attributidi nonterminali fratelli che si trovano pi�u a sinistra e dagli attributi ereditati dellaparte sinistra della regola� La grammatica �e LL��� a causa delle produzioni � � �e �� Le altre produzioni veri�cano le condizioni LL���� Costruiamo un valutatoredi attributi a discesa ricorsiva solo per il nonterminale prcd per il quale �e su�cienteconsiderare un valutatore LL����

La procedura riceve come parametri di ingresso il valore degli attributi ereditatidi prcd e restituisce in uscita il valore di quelli sintetizzati� La procedura costruiscel�albero sintattico e intanto valuta gli attributi�

procedure prcd �in envofprcd� out aofprcd� updofprcd��in ingresso� attributi ereditati di prcd �in uscita� attributi sintetizzati di prcd �if cc � fprocg thencc�� PROSSIMO�� non ci sono attributi ereditati di pId �� calcolo attributi sintetizzati di pId� �pId�valofpId��if cc �� ��� then ERROREelse cc��PROSSIMO�

� non ci sono attributi ereditati di fPar �� calcolo attributi sintetizzati di fPar� �call fPar�numoffPar�if cc �� ��� then ERROREelse cc�� PROSSIMO�

� calcolo attributi ereditati di cll� �envofcll �� envofprcd

Sf�valofpId� numofpId�g

� calcolo attributi sintetizzati di cll� �call cll�envofcll� aofcll��� calcolo attributi sintetizzati di prcd� �updofprcd �� f�valofpId� numofpId�gaofprcd �� aofcll � valofpId � nomi�envofprcd�

endifendif

else ERROREendifend prcd�

��

Page 81: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

��� Esercizio

Descrivere un insieme di attributi per la grammatica dell�esercizio ��� in modo dacalcolare come attributo dofS la profondit�a di un albero di derivazione della gram�matica� Mostrare una traccia di funzionamento di un automa a pila a spostamento eriduzione per l�analisi sintattico�semantica integrata sulla frase acb�

Soluzione ��

La grammatica ad attributi �e�

G �

���������������

��S � aTb��S � c��T � DSb��T � c��D� a

���������

��dofS �� dofT � ���dofS �� ���dofT �� � � dofS��dofT �� �

La grammatica ad attributi �e di tipo elementare in quanto tutti gli attributi sonosintetizzati ogni attributo dofX dipende solo dagli attributi della parte destra o daattributi sintetizzati di X� e la grammatica �e in forma normale di Bochman� Si pu�opertanto usare l�automa a spostamento e riduzione presentato per l�esercizio ��� chenelle mosse di riduzione per produzioni del tipo X � � salva sulla pila i valori degliattributi del nonterminale X� Nei successivi passi di riduzione i valori degli attributidi X e degli altri nonterminali salvati sulla pila possono essere utilizzati per il calcolodegli attributi dei nonterminali di sinistra delle produzioni ridotte�

Una traccia di esecuzione sulla stringa acb �e riportata in Tabella �� Si osservi cheil calcolo di dofS quando si riduce S � aTb richiede la conoscenza degli attributi diT che per�o sono sulla pila�

��� Esercizio

Si consideri il linguaggio delle parentesi dato dalla seguente grammatica�

G �

�������������������

��S � �S�S��S � T �S��S � ���T � aT��T � bT��T � �

Page 82: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Pila Nastro di ingresso azioneI� a c b � sposta I��I� a I� c b � sposta I�� � �I� a I� c I� b � riduci T � c� � � � � dofT �� �I� a I� T I� b � sposta I�� � � d��I� a I� T I� b I� � riduci S � aTb� � � d�� � � dofS �� dofT � �I� S I� � I� � accetta� d�� � � � �

Table �� Traccia del funzionamento dell�automa di Tabella � sulla stringa acb�

Un esempio di frase �e�

�abb� ab� �aab� aba� �abbb� ��a� aa� �

Si costruisca una grammatica ad attributi tale per cui il linguaggio generato coin�cide con le stringhe di L�G� per le quali tutti gli identi�catori �cio�e le stringhe di a edi b� che si trovano allo stesso livello di annidamento siano distinti�

Ad esempio la frase precedente �e corretta mentre la seguente non lo �e�

�abb� ab� �aab� aba� �abbb� �aab� �a� aa� �

in quanto vi sono due sottostringhe aab allo stesso livello di annidamento �il se�condo��

Soluzione ��

La soluzione fa uso di due attributi ereditati env e lev� L�attributo env ha comevalore un insieme di coppie �identificatore� livello�� lev �e costituito da un numeronaturale che rappresenta il livello di annidamento� Vi sono poi gli attributi sintetizzatia che pu�o assumere un valore booleano che denota la correttezza semantica di unafrase upd che contiene una coppia �identificatore� livello� e val che �e la stringaassociata a un identi�catore�

La grammatica ad attributi �e G per la parte sintattica a cui corrispondono gliopportuni assegnamenti degli attributi�

envofS �e inizializzato con l�insieme vuoto levofS con il numero zero�

Page 83: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Ga �

�������������������������������������������������������������������������

��S� � �S��S� levofS� �� levofS� � �levofS� �� levofS�

envofS� �� envofS�

envofS� �� envofS� updofS�

updofS� �� updofS� updofS�

aofS� �� aofS� � aofS�

��S� � T �S� levofS� �� levofS�

updofT �� f�valofT� levofS��genvofS� �� envofS� updofTupdofS� �� f�valofT� levofS��g updofS�

aofS� �� aofS� � �valofT� levofS�� �� envofS�

��S � � updofS �� �aofS �� true

��T� � aT� valofT� �� a � valofT���T� � bT�

valofT� �� b � valofT���T � � valofT �� �

La grammatica veri�ca che gli identi�catori allo stesso livello siano distinti con�frontando l�attributo upd con l�attributo env�

Si osservi che questo tipo di confronto non �e lo stesso dei linguaggi di program�mazione che ammettono procedure annidate in quanto il confronto in questo casoconsidera solo il livello di annidamento mentre nei linguaggi di programmazione an�che l�annidamento stesso�

��� Esercizio

�E data la grammatica ad attributi GX di �g� ���Si decida se la grammatica risulta valutabile in una sola scansione e in tal caso

si costruisca la corrispondente procedura di valutazione� Si ipotizzi che gli attributisiano inizializzati correttamente�

Soluzione �

A�nch�e gli attributi di una grammatica possano essere valutati in una sola scan�sione �e necessario e su�ciente che siano soddisfatte le seguenti condizioni per ciascunaproduzione P � A� � A� � � � Ar�

�� Il grafo delle dipendenze funzionali dipP �P � A� � A� � � � Ar �e tale per cui�

�a� dipP �e aciclico�

�b� Non esistono cammini da un attributo sintetizzato di Ai a un attributoereditato dello stesso Ai�

Page 84: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

σ2

σ2

σ2σ1

σ1σ2 1X

σ1

σ2σ2

σ2

η

h

η

η

a2: X

0 bY

Y

4: Y c

9

YX1: X0 1

η Y

X 0

if

X

a

Y0 η

c

Y

p

k

3: Y 1

g

η

η

m n

1bY

Figure ��� Grammatica ad attributi GX

�c� Non esistono dipendenze di attributi ereditati di Ai da un attributo sinte�tizzato di A��

�� Il grafo fraP dei fratelli �e aciclico per ogni P �

La grammatica GX soddisfa tutte queste condizioni� In particolare valutiamo ilpunto ���� l�attributo di Y nella produzione ���� dipende da attributi di X� percui si costruisce un ordine topologico in cui X � Y � Non vi sono poi altre occorrenzedi relazioni di precedenza�

L�ordine topologico per gli attributi ereditati �e immediato visto che vi �e un soloattributo ereditato e bisogna rispettare la condizione appena vista� Per quanto ri�guarda gli attributi sintetizzati si pu�o scegliere un ordine topologico in cui �� � �� ma l�ordine �e indi�erente visto che entrambe le possibilit�a vanno bene�

Realizziamo il codice della procedura di visita ipotizzando che ofX sia iniazia�lizzato a ��

programprocedure RX�in of X�� T� out �� of X�� �� of X��

case alternativa�T� of

�� calcola in ordine topologico gli attributi ereditati di X��

Page 85: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

of X� �� f� of X���

calcola attributi sintetizzati di X��RX� of X�� T�� �� of X�� �� of X���

calcola in ordine topologico gli attributi ereditati di Y � of Y �� h� of X�� �� of X���

calcola attributi sintetizzati di Y �RY � of Y � T�� �� of Y ��

calcola in ordine topologico gli attributi sintetizzati di X�

�� of X� �� g��� of X���

�� of X� �� i� of Y � �� of Y ��

�� �� of X� �� k� of X���

�� of X� �� ��

endcaseend RX�

procedure RY �in of Y�� T� out �� of Y��case alternativa�T� of

� of Y� �� m� of Y���RY � of Y�� T�� �� of Y����� of Y� �� n��� of Y���

� �� of Y� �� p� of Y���endcase

end RY �

Leggi lalbero T�RX���T�� �� of X� �� of X��

emetti il valore di �� of Xend

��� Esercizio

�E data la grammatica ad attributi G�X di �g� ���

Si decida se la grammatica risulta valutabile in una o pi�u scansioni�

Soluzione �

La grammatica non �e ad una scansione perch�e l�attributo of X� dipende da �of X�� Le altre condizioni risultano per�o veri�cate�

� Il grafo delle dipendenze funzionali dipP �P � A� � A� � � � Ar �e aciclico�

� Non esistono dipendenze di attributi ereditati di Ai da un attributo sintetizzatodi A��

Page 86: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

σ2

σ2

σ2σ1

σ1σ2 1X

σ1

σ2σ2

σ2

η

h

η

η

a2: X

0 bY

Y

4: Y c

YX1: X0 1

η Y

X 0

if

X

a

Y0 η

c

Y

p

k

3: Y 1

g

η

η

m n

1bY

9

Figure ��� Grammatica ad attributi G�X

� Il grafo fraP dei fratelli �e aciclico per ogni P �

Per valutare se la grammatica risulta valutabile in pi�u scansioni bisogna costruireil grafo semplice delle dipendenze �Figura ����

σ1 σ2η

Figure ��� Grafo semplice delle dipendenze per la grammatica G�X

Il grafo risulta aciclico quindi i componenti connessi massimali sono costituiti daisemplici nodi� visto che il grafo �e costituito da � nodi la grammatica sar�a valutabile almassimo con � scansioni� Non �e di�cile intuire che �e possibile accorpare le scansioniper e per �� in quanto la dipendenza �proibita� era solo fra e sigma��

Per la scansione che calcola �� qualunque ordinamento topologico dei fratelli edegli attributi va bene� Per la scansione che calcola e �� �e necessario scegliere per la

Page 87: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

produzione X � Y X l�ordine topologico derivato dal graf o semplice di dipendenza�e� X � Y �

��� Esercizio

�E data la grammatica ad attributi G��X di �g� ���

S

S

X

X

Sa c

b d a c

a c

b d

t1

t2

Figure ��� Grammatica ad attributi G��X

Si decida se la grammatica risulta valutabile in una o pi�u scansioni e in tal casosi costruisca la corrispondente procedura di valutazione�

Soluzione ��

La grammatica �e valutabile con una scansione� Infatti�

�� Il grafo delle dipendenze funzionali dipP �P � A� � A� � � � Ar �e tale per cui�

�a� dipP �e aciclico�

�b� Non esistono cammini da un attributo sintetizzato di Ai a un attributoereditato dello stesso Ai�

�c� Non esistono dipendenze di attributi ereditati di Ai da un attributo sinte�tizzato di A��

�� Il grafo fraP dei fratelli �e aciclico per ogni P �

Page 88: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

L�ordine topologico dei fratelli da utilizzare nella scansione �e f S� Xg mentre perquanto riguarda gli attributi non c��e un problema di ordinamento in quanto esiste ununico attributo sintetizzato ed un unico attributo ereditato per ogni non�terminale�

La procedura di visita sar�a�

procedure S�in a of S�� T� out c of S��

case alternativa�T� of

S � XS�a of S� �� f��a of S���

S�a of S�� T�� c of S���

b of X �� f��c of S���

X�b of X� T�� d of X��

c of S� �� f��d of X��

S � t��c of S� �� f��a of S���

endcaseend S�

procedure X�in b of X� T� out d of X�

d of X �� f��b of X��

end Y �

�� Esercizio

Di ognuna delle seguenti grammatiche di cui sono dati i gra� delle dipendenze fun�zionali si dica�

� se la grammatica �e ben formata ovvero se tutti gli attributi risultano senzaambiguit�a sintetizzati o ereditati�

� se �e nella forma normale di Bochmann�

� se �e della classe L�

� se �e valutabile con una scansione�

� se �e valutabile con un numero �sso di scansioni�

Si supponga che gli attributi siano inizializzati in modo opportuno

� �� Grammatica �i�

Soluzione � ��

Page 89: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Xd cb

b

Y XY Y Xt1 t2

b a

b cdb a

t1 t2

Y X

Y

Y a

S Y

Y a

S

Figure ��� Grammatica �i�

� No la grammatica non �e ben formata perch�e l�attributo a risulta sia sintetizzato�per le dipendenze nelle produzioni Y � XY e Y � t�� che ereditato �perla dipendenza nella produzione S � Y �� Per rendere corretta la grammatica eliminiamo la dipendenza che compare nella produzione S � Y rendendol�attributo a sintetizzato� Si noti che se invece si invertisse il verso della freccia si otterrebbe uniformit�a nella classi�cazione degli attributi ma la grammaticarisulterebbe ugualmente scorretta in quanto ciclica�

� La grammatica modi�cata �e nella forma normale di Bochmann�

� Non �e della classe L in quanto in Y � XY c��e attributo dofX che dipende daaofX

� La grammatica modi�cata �e calcolabile con una scansione scegliendo per laproduzione Y � XY l�ordine fra fratelli Y � X�

� �� Grammatica �ii�

Soluzione � ��

� La grammatica �e ben formata�

� La grammatica �e nella forma normale di Bochmann�

� La grammatica non appartiene alla classe L perch�e esiste una dipendenza delprimo �glio dal secondo nella produzione S � Y X�

� La grammatica non �e valutabile con una scansione� Infatti c��e un ciclo �X �Y � X� nel grafo dei fratelli della produzione S � Y X�

� Disegnando il grafo semplice delle dipendenze �rappresentato in Figura ��� siosservano due sottogra� connessi massimali evidenziati in Figura �� Si pu�oquindi determinare se gli attributi di ogni componente sono valutabili con una

Page 90: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

YXS

S

Y X

a

a a

b

b b

c

c cd d

b d

db

a

a

c

c

b d a c

b d

db

a

a

c

c

Y

Y

Y

b d a cY

X

X

X

X

wX

wX

w

w

zY

zY z

z

Figure �� Grammatica �ii�

scansione� In entrambi i componenti il grafo dei fratelli di S � Y X risultaaciclico �con il singolo arco Y � X per il primo componente e il singolo arcoX � Y per il secondo�� La coppia di attributi fb� cg �e quindi valutabile conuna scansione che scende prima nel ramo Y e poi analizza il ramo X mentrela coppia di attributi fa� dg �e valutabile da una scansione successiva che scendeinvece prima nel ramo X per poi analizzare il ramo Y � Le due scansioni inquesto caso sono caratterizzate da ordini di visita di�erenti� Si osserva inoltreche le due scansioni non possono essere accorpate �altrimenti la grammaticarisulterebbe ad una scansione cosa che abbiamo mostrato non possibile��

� �� Grammatica �iii�

Soluzione � ��

Page 91: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

cb d a

Figure ��� Grafo semplice delle dipendenze per la Grammatica �ii�

b d ac

scm1 scm2

Figure �� I sottogra� connessi massimali del grafo semplice delle dipendenze per laGrammatica �ii�

� La grammatica �e ben formata a patto che gli attributi d of X in S � X e b ofX in S � XT� siano inizializzati�

� La grammatica �e nella forma normale di Bochmann�

� La grammatica non �e valutabile con una scansione e quindi non appartienenemmeno alla classe L in quanto vi sono in S � X e S � Xt� attributiereditati che dipendono da attributi sintetizzati dello stesso nonterminale� Unvalutatore semantico non sarebbe quindi in grado di calcolare tutti gli attributiereditati di X prima di tutti gli attributi sintetizzati�

� Disegnando il grafo semplice delle dipendenze �rappresentato in Figura ��� siosserva un unico sottografo connesso massimale che racchiude tutti gli attri�buti� La grammatica non �e quindi valutabile neanche con un numero superioredi scansioni� La grammatica presenta un ciclo nel grafo approssimato delledipendenze ma in e�etti la grammatica �e valutabile in quanto i gra� delle di�pendenze funzionali sono aciclici� ci�o si pu�o veri�care costruendo i gra� delledipendenze per ognuna delle quattro frasi �t�� t�� t�t�� t�t�� generate dalla gram�matica� Questo comportamento anomalo della grammatica �e giusti�cato dalfatto che per ogni albero della grammatica c��e un proprio ordinamento topolo�gico non compatibile ocn quello di altri alberi� Ad esempio per S � X � t�l�unico ordinamento �e abc mentre per S � Xt� � t�t� l�ordinamento �e cda�Si tratta pertanto di un caso degenere abbastanza raro nella pratica in cui ilmetodo di valutazione multiscansione fallisce anche quando la grammatica non�e ciclica�

Page 92: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

X adb c

X adb c X adb c

S X t2XS

X t3 X t4

t3 t4

SS

adb cX t2

Figure ��� Grammatica �iii�

b d a c

Figure ��� Grafo semplice delle dipendenze per la Grammatica �iii�

� �� Grammatica �iv�

Soluzione � ��

� La grammatica �e ben formata�

� La grammatica non �e nella forma normale di Bochmann che richiede che tuttigli attributi interni �cio�e che compaiono a sinistra di un assegnamento� di ogniproduzione dipendano solo da attributi esterni �cio�e che compaiono a destra diun assegnamento�� Infatti nell�ambito della produzione Y � XY compare lacoppia di assegnamenti�

�� cofX �� �aofY��

�� aofY� �� ��cofX� dofX�

L�attributo cofX �e interno �in quanto compare a sinistra di un assegnamento�e quindi aofY� �e un attributo interno �si trova a sinistra di un assegnamento�che dipende a sua volta da un interno� Per rendere la grammatica in formanormale basta sostituire i due assegnamenti precedenti con�

��

Page 93: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Ya b

Ya b

Ya bXc d

S Y Y XY Y Xt1 t2

S Ya b Xc d

t1 t2

Figure ��� Grammatica �iv�

�� cofX �� �aofY��

�� aofY� �� �� �aofY��� dofX�

o

� La grammatica appartiene alla classe L�

� La grammatica �e quindi anche valutabile con una scansione�

X t2X t1XS

X

S X X

t2t1b d a c

b a cd b ad c

Figure ��� Grammatica �v�

� �� Grammatica �v�

Soluzione � ��

� La grammatica �e ben formata�

� La grammatica �e nella forma normale di Bochmann�

��

Page 94: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

a dbc

Figure ��� Grafo semplice delle dipendenze per la grammatica �v�

� Gli attributi di X nella produzione S � X dipendono direttamente dagli at�tributi sintetizzati di X e quindi la grammatica non rispetta le condizioni peressere valutabile in una scansione� Di conseguenza la grammatica non appar�tiene neanche alla classe L�

� La grammatica non �e neanche valutabile in pi�u scansioni in quanto non risultapossibile de�nire un ordinamento topologico tra gli attributi che valga per qual�siasi albero sintattico� Costruendo il grafo semplice delle dipendenze si ottieneinfatti un grafo ciclico caratterizzato da un unico grafo connesso massimale �vediFigura ����

Si osserva che costruendo le dipendenze approssimate per la produzione S � Xsi ottiene il ciclo� a� b� c� d� a� la grammatica non �e neanche assolutamenteaciclica e anche il metodo di Katayama non pu�o essere applicato� La grammaticarisulta per�o aciclica in quanto analizzando gli alberi sintattici corrispondenti alle duefrasi del linguaggio non si osserva la presenza di cicli nelle dipendenze degli attributi�Si tratta ovviamente di un caso degenere�

��� Esercizio

�E data la grammatica ad attributi GA di �g� ��� Nei gra� i nomi delle funzionisemantiche sono scritti a �anco degli archi che collegano gli argomenti al risultato�ad es��

� of Y �� h���ofX�� ofX���

� ofX� �� �

Si esaminino le dipendenze funzionali e si costruiscano le procedure ricorsive chevalutano gli attributi usando il metodo di Katayama�

Soluzione ���

La grammatica risulta assolutamente aciclica�Utilizzando il metodo di Katayama costruiamo il seguente programma per il cal�

colo del valore degli attributi�

��

Page 95: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

η σ1

σ2η σ1

σ2

η

σ2η σ1

η σ2

p

Y

c

σ2

σ2

η

η

3: Y b Y0 1

1

1: X X Y0 12: X a

X 0

X 1 Y

h

fg

i

k 7

X

a

4: Y c

m

Y0

Y1

k

Figure ��� Grammatica ad attributi GA

programprocedure RX����in of X�� T� out �� of X�

case alternativa�T� of

�� RX���� of X�� T� �� of X���

of X� �� f� of X���

of Y �� h� of X�� �� of X���

RY���� of Y � T�� �� of Y ��

�� of X �� i� of Y � �� of Y ��

�� �� of X �� ��

endcaseend RX����

procedure RX����in of X�� T� out �� of X��

case alternativa�T� of

�� of X� �� f� of X���

RX���� of X�� T�� �� of X���

�� of X� �� g��� of X���

�� �� of X� �� k� of X���

endcaseend RX����

��

Page 96: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

procedure RY����in of Y�� T� out �� of Y��case alternativa�T� of

� of Y� �� k� of Y���RY���� of Y�� T�� �� of Y����� of Y� �� m��� of Y���

� �� of Y� �� p� of Y���endcase

end RY����

Leggi lalbero T�RX������T�� �� of X��

emetti il valore di �� of Xend

���� Esercizi proposti

����� Esercizio

Si deve calcolare per mezzo di una grammatica ad attributi il valore scritto comeuna frazione di una espressione di numeri frazionari� Ad esempio�

��� � ��� � � � ���� � ��� � �������� � ���� � �� � ����������� � ��� � indefinito

L�espressione pu�o contenere i numeri interi gli operatori � e � e le parentesi� Siprogettino la sintassi del linguaggio gli attributi semantici e le regole semantiche peril calcolo dell�attributo valore� Si disegni l�albero semantico decorato per il secondoesempio mostrato� Si indichi quale tecnica di valutazione degli attributi �e possibileimpiegare�

����� Esercizio

Un�agenzia marittima invia all�armatore dei telex codi�cati per annunciare la partenzadal porto �sigle NA LI GE VE TS ���� di una o pi�u navi� Ciascuna nave �eindividuata da un nome e dal prossimo porto di destinazione e contiene un insiemedi container� Ogni container �e individuato da un numero intero e da un porto didestinazione� All�arrivo il telex deve essere controllato e decodi�cato� Ad esempio il telex� NA �LAURA LI ����� LI ��� GE�� �COSTA TS ��� TA ���� AN ���VE�� deve essere tradotto nel messaggio�

�Da Napoli parte LAURA per Livorno con � container� ���� per Livorno ���per Genova� parte COSTA per Trieste con � container� ��� per Taranto ���� perAncona ��� per Venezia��

��

Page 97: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

Si de�nisca una sintassi per i telex e uno schema di traduzione ad attributi percontrollare il telex �non possono esservi due navi con lo stesso nome n�e due containercon lo stesso numero ecc�� e per stampare il messaggio in chiaro�

Si costruisca almeno in parte il programma che calcola la traduzione de�nita dalloschema�

����� Esercizio

Si progetti una grammatica �oppure uno schema di traduzione� ad attributi percalcolare la derivata ���x di una espressione� Una espressione �e un polinomio icui termini possono essere costanti intere �ad esempio � o ��� potenze della va�riabile x �ad esempio x x�� x� � � �� o prodotti di costanti e potenze� Ad esempio ���x�x� � �x�� � �x � ��x��

Nel calcolo della derivata �e possibile non sempli�care le espressioni lasciandoanche termini o fattori inutili come ad esempio �x�

Si modi�chi la grammatica in modo che i termini possano contenere anche funzionitrigonometriche e loro potenze come in x�sin�x� � �x�cos��x��

����� Esercizio

Si consideri la grammatica ad attributi Ga�

�� S � X � of S �� g��� of X�� of X �� h��� of X�

�� X� � X�Y � of X� �� f��� of X� � of Y �� of X� �� g��� of X� � of X� � of Y �� of X� �� h��� of Y �� of Y �� h��� of X��

�� X � Y � of X �� f��� of Y �� of X �� g��� of Y �� of Y �� h��� of X�

�� Y � a � of Y �� cost� of Y �� g��� of Y � of Y �

�� Si indichino gli attributi sintetizzati ed ereditati� Si veri�chi se Ga �e in formanormale di Bochmann� Si veri�chi se Ga �e assolutamente aciclica e se �e valu�tabile in una o pi�u passate�

�� Si costruiscano le procedure semantiche del valutatore degli attributi�

����� Esercizio

�E data la seguente grammatica ad attributi

��

Page 98: Esercizi - UniBG · grammatica p er il seguen te linguaggio L f uu u a b g Soluzione Il linguaggio da de nire e quello delle stringhe di alfab eto f a b g c he non p ossono

�� Z � X c of X �� a of X �� f of Z �� b of X � d of X

�� X� � Y X� c of X� �� c of X�

d of X� �� d of X�

a of X� �� a of X� � d of Y � d of X�

c of Y �� a of X�

e of Y �� d of Yb of X� �� b of Y � b of X�

�� Y � X a of X �� e of Y � c of Yc of X �� c of Yb of Y �� b of X

�� X � ab b of X �� a of Xd of X �� c of X

�� Si determini di quale tipo sono le dipendenze funzionali tra gli attributi �L S a pi�u passate assolutamente aciclica aciclica��

�� Si costruisca un valutatore degli attributi con una tecnica appropriata suppo�nendo noto l�albero sintattico�

��