Top Banner
1 PARTE I RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI Linguaggi regolari Linguaggi non contestuali Automi
51

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

Mar 04, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

1

PARTE I

RICHIAMI E COMPLEMENTI SULINGUAGGI FORMALI E AUTOMI

Linguaggi regolari

Linguaggi non contestuali

A u t o m i

Page 2: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

2

1.1 I LINGUAGGI IN INFORMATICA

@ Presenti a vari livelli di applicazione

linguaggi di programmazionelinguaggi di scriptlinguaggi di marcaturaprotocolli di comunicazionesequenze di operazioniinterazione uomo macchina

Page 3: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

3

@ Fondamentali nel software di sistema

compilatoriinterpretitools per la generazione di analizzatori lessicali e sintattici

(Lex, YACC, GNU Bison, Luthorj, Saxj ecc.;più in generale: compiler compiler)

@ Paradigmatici nella teoria

molti importanti problemi teorici sono riconducibili a quellodell'appartenenza di una stringa a un linguaggio

un ruolo importante in informatica teorica hanno i metodi didescrizione di linguaggi

Page 4: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

4

Metodi di descrizione di linguaggi

Approccio generativo: i linguaggi possono essere definiti medianteformalismi (metalinguaggi) che specificano la struttura sintattica delleloro stringhe.

Esempi di metalinguaggiGrammatiche di ChomskyForma di Backus Naur (BNF)Linguaggi di marcatura (HTML, XML)

Page 5: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

5

Approccio riconoscitivo: un linguaggio può essere definito mediantemacchine astratte (automi) o algoritmi che accettano le stringhe che nefanno parte e rifiutano quelle che non ne fanno parte.

EsempiAutomi a stati finiti – Analizzatori lessicali (scanner)Automi a pila – Analizzatori sintattici (parser)

Approccio algebrico: un linguaggio può essere definito mediante unaespressione algebrica che specifica come esso è costruito a partire dalinguaggi elementari.

EsempioEspressioni regolari (vedi anche Lex o Luthorj)

Page 6: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

6

ESPRESSIONI REGOLARI

Def. Dato un alfabeto Σ, chiamiamo espressione regolare una stringa rche utilizza i simboli dell’alfabeto stesso e i simboli Ø, +, ., *, (, ) e cherispetta le seguenti strutture:

1. r = Ø oppure2. r ∈ Σ oppure3. r= (s+t) oppure r= (s.t) oppure r=s*,

con s e t espressioni regolari

Page 7: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

7

espressione linguaggioØ Λ a {a} a ∈ Σ(s+t) L(s) ∪ L(t) dove s, t sono e.r.(s.t) L(s) ° L(t)s* L(s)*

Esempio: (a* + ((a.a) . b*))

Page 8: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

8

Per semplificare la scrittura delle espressioni regolari possiamosfruttare:• eliminazione del simbolo della concatenazione, cioé (st) anziché (s.t)• precedenze tra operatori: * > . > +

Esempi.

(a+b)* rappresenta il linguaggio L=({a}∪{b})*

cioe’ il linguaggio costituito da stringhe di a e di b di lunghezzaqualunque (inclusa la stringa vuota, cioè la stringa di lunghezza zero).

Page 9: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

9

(a+b)*a rappresenta il linguaggioL={x| x ∈ ({a}∪{b})* ∧ "x termina con a"}

cioè stringhe arbitrarie di a e di b che terminano con il carattere a.

(a* + ((a.a) . b*)) = a* + aab*cioè il linguaggio il linguaggio costituito da sequenze di un numeroarbitrario (anche nullo) di a oppure sequenze costituite da due a inizialiseguite da un numero arbitrario (anche nullo) di b.

Page 10: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

10

1.2 GRAMMATICHE FORMALI

Metodo di costruzione delle stringhe del linguaggio basato sul concettodi riscrittura (nato nel contesto di studi di algebra e di logica formale).

1914 Axel Thue studia i primi problemi di riscrittura.

1943 Emil Post definisce sistemi di produzione (lavori del 1920).

1947 A.A. Markov definisce algoritmi basati su regole di riscrittura.

1956 N. Chomsky introduce le grammatiche formali nell'ambito degli studi sul linguaggio naturale.

1960 J. W. Backus e P. Naur introducono la BNF per descrivere la sintassi del linguaggio Algol.

Page 11: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

11

Le Grammatiche di Chomsky

Def. Una grammatica formale G = <VT,VN,P,S>è caratterizzata da:

• VT (Σ) alfabeto finito di simboli detti terminali,

• VN alfabeto di simboli non terminali(variabili, categorie sintattiche),

• P, detto insieme di produzioni, è una relazione binaria:α e β sono stringhe di terminali o non terminaliα contiene almeno un non terminale<α,β> ∈ P si indica con α → β

• S ∈ VN e' detto assioma.

Page 12: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

12

Le grammatiche di Chomsky costituiscono un metalinguaggio poichéogni grammatica descrive un linguaggio (il linguaggio che può esseregenerato in base alle sue regole)

Def. Il linguaggio generato da una grammatica è l'insieme delle stringhedi terminali ottenibili con una sequenza finita di passi di riscritturaconsistenti nell'applicazione delle regole di produzione

Page 13: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

13

Più formalmente:

Def. Derivazione diretta: relazione su(V*°VN°V*) × V*

<φ,ψ> appartiene alla relazione se α ∈ V*°VN°V* e β,γ,δ ∈ V*tali cheφ = γαδ ψ = γβδ e α→β ∈ PIn tal caso si scrive φ ⇒ ψ.

Def. Derivazione: chiusura riflessiva e transitiva della derivazionediretta, si rappresenta con ⇒*.

Def. Data una grammaticaG = <{a,b},{S,B,C},P,S>, unaforma di frase è una qualunque stringa x tale che x∈V*e S⇒*x.

Page 14: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

14

Il linguaggio generato da G e' l'insieme di particolari forme di frase:

Def. Il linguaggio generato da G èL(G) = {x | x∈VT*∧ S⇒*x}

Def. Due grammatiche G1 e G2 si dicono equivalenti se L(G1) = L(G2).

Page 15: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

15

Esempio. La grammatica

G=<{a,b,c},{S,A,B,C},P,S>

con le produzioni:

1 S → aSBC2 S → aBC3 CB → BC4 aB → ab5 bB → bb6 bC → bc7 cC → cc

genera il linguaggio {anbncn | n≥1}

Page 16: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

16

Per generare 'aaabbbccc' si effettua la seguente derivazione (la stringa cheviene riscritta è sottolineata, il numero rappresenta la produzione applicata):

S (1) ⇒ aSBC(1) ⇒ aaSBCBC(2) ⇒ aaaBCBCBC(3) ⇒ aaaBCBBCC(3) ⇒ aaaBBCBCC(3) ⇒ aaaBBBCCC(4) ⇒ aaabBBCCC(5) ⇒ aaabbBCCC(5) ⇒ aaabbbCCC(6) ⇒ aaabbbcCC(7) ⇒ aaabbbccC(7) ⇒ aaabbbccc

Page 17: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

17

1.3 CLASSI DI GRAMMATICHE DI CHOMSKY E CLASSI DILINGUAGGI

• di tipo 0, non limitate

• di tipo 1, contestuali (context sensitive: CS)

• di tipo 2, non contestuali (context free: CF),

• di tipo 3, regolari

Page 18: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

18

Def. Le grammatiche di Chomsky di tipo 0, sono basate sulle produzioni piu'generali, del tipo:

α→β , α∈V*°VN°V*, β∈V*

NOTA BENE. Le grammatiche di tipo 0 ammettono anche derivazioni cheaccorciano stringhe.

Def. I linguaggi di tipo 0 sono i linguaggi generati da grammatiche di tipo 0.

Def. Le grammatiche di Chomsky di tipo 1, (dette context sensitive ocontestuali) sono basate su produzioni del tipo:

α→β , α∈V*°VN°V*, β∈V+

con |α|≤|β|

Page 19: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

19

Def. I linguaggi di tipo 1 (context sensitive o contestuali) sono i linguaggigenerati da grammatiche di tipo 1.

Def. Le grammatiche di Chomsky di tipo 2, (dette context free o noncontestuali) sono basate su produzioni del tipo:

A→β , A∈VN, β∈V+

Def. I linguaggi di tipo 2 (context free o non contestuali) sono i linguaggigenerati da grammatiche di tipo 2.

Page 20: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

20

Esempio. Generazione di espressioni aritmetiche con la variabile i, assioma E

E → E+T | TT → T*F | FF → i | (E)

Esempio. Grammatica delle parentesi ben bilanciate:

S → ()S → SSS → (S)

Page 21: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

21

Perche' le grammatiche di tipo 1 sono chiamate contestuali e quelle di tipo 2non contestuali?

Nell'originaria formulazione data da Chomsky le grammatiche di tipo 1 sonodefinite come quelle grammatiche le cui produzioni hanno la forma:

α → γ con α=φ1Αφ2 e γ=φ1βφ2, e con Α∈VN , φ1,φ2∈V*, β∈V+

Quindi, se |φ1| ≥ 1 o |φ2| ≥ 1, la produzione esprime il fatto che il non terminaleA viene rimpiazzato dalla stringa β solo se appare nel contesto delle stringheφ1 e φ2. Per tale motivo quelle produzioni (e le relative grammatiche) sonochiamate "contestuali".

Page 22: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

22

Esempio. Le produzioni

aB→ab, bB→bb, bC→bc, cC→cc

della grammatica per il linguaggio {anbncn | n≥1} sono contestuali secondoChomsky.

Page 23: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

23

Teorema. Le grammatiche di tipo 1 e le grammatiche contestuali secondoChomsky consentono di generare la stessa classe di linguaggi.

Dim. i) Le produzioni contestuali di Chomsky sono di tipo 1.ii) Le produzioni di tipo 1 possono essere facilmente trasformate in produzionicontestuali di Chomsky. (Esercizio)

Ad esempio la produzione CB →BC puo' essere trasformata nella sequenza diproduzioni (contestuali secondo Chomsky):

CB → CXCX → BXBX → BC

Page 24: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

24

NOTA BENE. Le produzioni di tipo 2 corrispondono al caso particolare in cuisia φ1 che φ2 sono stringhe vuote. Tali produzioni consentono dunque dirimpiazzare un nonterminale con una stringa di caratteri, indipendentementedal contesto in cui esso si trova. Per tale motivo esse (e le relativegrammatiche) si chiamano "non contestuali".

Page 25: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

25

Def. Le grammatiche di Chomsky di tipo 3, (dette regolari) sono basate suproduzioni del tipo:

A→aB oppure A→a,

con A, B∈VN, a∈VT

Def. I linguaggi di tipo 3 (regolari) sono i linguaggi generati da grammatiche ditipo 3.

Esempio. Il linguaggio {anb | n≥0} e' di tipo 3 in quanto e' generato dallagrammatica con le produzioni:

S → aSS → b

Page 26: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

26

Le grammatiche di tipo 3 sono chiamate anche lineari destre (LD).

Le grammatiche di tipo 3 vengono chiamate lineari perche' nel lato destro diogni produzione compare al piu' un solo non terminale (variabile); inoltrevengono chiamate lineari destre perché il non terminale compare a destra delterminale.

Si possono anche definire grammatiche lineari sinistre (LS) con produzioni deltipo:

A→Ba oppure A→a,

con A, B∈VN, a∈VT

Page 27: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

27

Esempio. Il linguaggio {anb | n≥0}puo' essere anche generato da una grammatica lineare sinistra con le seguentiproduzioni:

S → Tb | bT → Ta | a

Teorema. Le classi di linguaggi generabili con grammatiche LD e LScoincidono.

Page 28: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

28

Def. Un linguaggio e' strettamente di Tipo n se esiste una grammatica di tipo nche lo genera e non esiste nessuna grammatica di tipo m>n che lo genera.

Esempi. Il linguaggio {anbn | n≥1} e' generato da una grammatica di tipo 2 enon e' generabile con nessuna grammatica di tipo 3.Il linguaggio {anbncn | n≥1} e' generato da una grammatica di tipo 1 e non e'generabile con nessuna grammatica di tipo 2 o di tipo 3.

NOTA BENE. La dimostrazione dei suddetti risultati e’ basata sui noti“pumping lemma” basati sulle proprietà strutturali dei linguaggi di vario tipo.Per mostrare linguaggi strettamente di tipo 0 è necessario introdurre ulterioriconcetti.

Page 29: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

29

1.4 LINGUAGGI LINEARI

I linguaggi lineari sono quei linguaggi CF generati da grammatiche lineari, incui, cioe', la parte destra di ogni produzione contiene al piu' un non terminaleLe grammatiche di tipo 3 sono lineari; come si e' detto, in particolare, linearidestre (LD).

Esempio. La grammatica seguente, che genera {ancbn | n≥0} e' lineare:

S → aSb | c

Si noti che tale linguaggio e' strettamente CF. I linguaggi lineari sono unsottoinsieme dei linguaggi CF (ad esempio il linguaggio delle parentesi benbilanciate non è un linguaggio lineare) e un soprainsieme di quelli regolari.NOTA BENE: Fondendo produzioni lineari destre e lineari sinistre si possonogenerare linguaggi non regolari.

Page 30: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

30

1.5 RICONOSCIMENTO DI LINGUAGGI

Dato un linguaggio L, il problema del riconoscimento di L e' il problemadecisionale seguente: data una stringa x, stabilire se essa appartiene ad L. Taleproblema e' noto anche come problema dell'appartenenza (membership).

• I linguaggi di tipo 3 sono riconosciuti in tempo lineare da dispositivi conmemoria costante (automi a stati finiti).

• I linguaggi di tipo 2 sono riconosciuti in tempo lineare da dispositivinondeterministici dotati di una memoria gestita come una pila (automi a pilanon deterministici).

Page 31: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

31

• I linguaggi di tipo 1 sono riconosciuti da dispositivi nondeterministici conmemoria che cresce linearmente con la lunghezza della stringa da esaminare:automi non deterministici lineari (linear bounded automata).

• Per alcuni linguaggi strettamente di tipo 0 e' possibile che non esista unalgoritmo di decisione ma esiste comunque un processo semidecisionale, incui, se la stringa fa parte del linguaggio essa viene riconosciuta ma se non faparte del linguaggio non e' detto che la computazione termini. I dispositivi checonsentono di riconoscere o di attuare un procedimento di semidecisione per ilinguaggi di tipo 0 sono le macchine di Turing. In generale non e' possibilestabilire un limite alle quantita' di risorsa tempo o memoria che si rendenecessario per riconoscere un linguaggio di tipo 0.

Page 32: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

32

1. 6 LINGUAGGI REGOLARI E AUTOMI A STATI FINITI

I linguaggi regolari:

• sono generabili con grammatiche di tipo 3

• coincidono con i linguaggi definibili con espressioni regolari

• coincidono con i linguaggi riconoscibili con automi a stati finitideterministici o non deterministici

Page 33: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

33

AUTOMI A STATI FINITI (ASF)

a1 a2 a n

meccanismo di controllo

testina di lettura

nastro di input unidirezionale

schema di automa a stati finiti

Page 34: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

34

Def. Automa a stati finiti (ASF):

A=<Σ,K,δ,q0,F>

Σ = {σ1,...,σn} alfabeto di input

K = {q0,...,qn} insieme finito non vuoto di stati

K ⊇ F insieme di stati finali

q0∈K stato iniziale

δ : K × Σ → K funzione di transizione, funzione totale che determina lostato successivo

Page 35: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

35

Def. Funzione di transizione estesa alle stringhe:

δ : K × Σ* → K

δ(q,ε) = qδ(q,ax) = δ(δ(q,a),x), con x∈Σ* e a∈Σ

Def. Linguaggio riconosciuto da un automa A:

L(A) = { x ∈ Σ* | δ(q0,x) ∈ F}

Page 36: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

36

Esempio. Dato il linguaggio {anb | n≥0} generato da S → aS | b,l'automa che lo riconosce e' l'automa<{a,b}, {q0,q1,q2}, δ, q0, {q1}>

δ a bq0 q0 q1q1 q2 q2q2 q2 q2

Page 37: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

37

Page 38: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

38

Nei ‘compiler compiler’ e nei generatori di analizzatori lessicali (Lex,Luthorj) si utilizzano tutti i diversi formalismi di definizione deilinguaggi regolari.

Definiamo il linguaggio per cui vogliamo costruire l’analizzatorelessicale mediante una espressione regolare.

Il generatore prende in input l’espressione regolare e:

- costruisce l’automa a stati finiti non deterministico corrispondente- lo trasforma in automa a stati finiti deterministico- fornisce come output il programma di analisi lessicale (scanner) per

il linguaggio dato.

Page 39: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

39

1.7 LINGUAGGI NON CONTESTUALI ED AUTOMI A PILA

I linguaggi non contestuali (context free):

• sono generabili con grammatiche di tipo 2

• coincidono con i linguaggi riconoscibili con automi a pilanon deterministici

• alcune loro sottoclassi sono sufficientemente ampie da consentire didescrivere linguaggi di programmazione e al tempo stessosufficientemente ristrette da consentire la costruzione di analizzatorisintattici (parser) che operano in tempo lineare

Page 40: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

40

Forme normali per i linguaggi non contestuali

Forma ridotta: grammatiche- prive di ε-produzioni,- prive di produzioni unitarie,- prive di produzioni che contengono simboli inutili (cioè simboli non

generabili partendo dall’assioma o simboli non fecondi, dai quali nonsi generano stringhe di soli terminali).

Page 41: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

41

Forma normale di Chomsky: grammatichedi tipo 2 le cui produzioni sono del tipo

Α→ΒC con Α, Β, C ∈ VN

o del tipo Α → a con a ∈ Σ

Forma normale di Greibach: grammatichedi tipo 2 le cui produzioni sono del tipo

Α → a β con a ∈ Σ, β∈ V*

Page 42: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

42

I linguaggi non contestuali sono tutti e soli i linguaggi che vengonoriconosciuti da un automa a pila non deterministico (o automa "push-down", PDA)

Def. Automa a pila non deterministico (PDA)

M=<Σ,Γ,Z0,Q,q0,F,δ>

Σ alfabeto di inputΓ alfabeto dei simboli della pilaZ0 ∈ Γ simbolo di pila inizialeQ insieme finito di statiq0 ∈ Q stato inizialeQ ⊇ F insieme di stati finaliδ : Q × (Σ∪{ε}) × Γ → P(Q × Γ*)

funzione di transizione

Page 43: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

43

Se abbiamo una regola di transizione δ(qi,a,A)={(qj,BA),(qh,ε)}essa significa che se nello stato interno qi, leggiamo a sul nastro ed A e' ilsimbolo affiorante sulla pila, si realizzano, non deterministicamente, duetransizioni; la prima sostituisce il simbolo affiorante sulla pila con lastringa di caratteri BA e si porta nel nuovo stato interno qj, la secondasostituisce il simbolo affiorante sulla pila con la stringa vuota ε, in altreparole cancella A dalla pila, e si porta nel nuovo stato interno qh.

NOTA BENE. La testina sul nastro di ingresso può anche non spostarsi.Questa situazione è espressa dicendo che la testina legge ε sul nastro diingresso.

Convenzione: se metto BA in pila, B è il nuovo simbolo affiorante.

Page 44: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

44

Esempio. Automa a pila M che riconosce anbn

M = <{a,b},{Z0,A0,A},Z0,{q0,q1,q2},q0,{q2},δ>

- il simbolo A serve a ricordare la presenza delle a

- nello stato q0 si memorizzano le a, nello stato q1 si confrontano le b concio' che si e' memorizzato, lo stato q2 e' lo stato finale.

NOTA BENE. In questo caso l'automa ha un comportamentodeterministico

Page 45: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

45

Z0 A0 Aa b a b a b

q0 A0q0

AA0q0

A0q2

AAq0

εq1

q1 A0q2

εq1

q2

Page 46: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

46

Def. Configurazione di automa a pila: tripla <q,x,γ>con q∈Q stato interno, x∈Σ* stringa da leggere in input e γ∈Γ* stringaattualmente in pila

relazione di transizione per automa a pila: relazione binaria sulleconfigurazioni |

<q,x,γ> | <q',x',γ'> significa che:

((x=ax' ∧ γ=Zη ∧ γ'=ζη ∧ <q',ζ>∈δ(q,a,Z)) ∨(x=x' ∧ γ=Zη ∧ γ'=ζη ∧ <q',ζ>∈δ(q,ε,Z)))

computazione: chiusura transitiva e riflessiva di |, indicata con |*

Page 47: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

47

Def. Linguaggio accettato dall'automa a pila:

due definizioni alternative

• accettazione per pila vuota: una stringa è accettata da un automa a pilaM se e solo se al termine della scansione della stringa la pila è vuota

N(M) = {x|<q0,x,Z0>|*<q,ε,ε>}

• accettazione per stato finale: una stringa è accettata da un automa a pilaM se e solo se al termine della scansione della stringa M si trova in unostato finale

L(M) = {x|<q0,x,Z0>|*<q,ε,γ>,q∈F,γ∈Γ*}

Page 48: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

48

NOTA BENE. Si può dimostrare che le due definizioni sono equivalenti.

Teorema. Se L(G) è non contestuale esiste un automa a pila M tale cheL(G)=N(M)

Dim. Sia G=<Σ,VN,P,S> tale che ε∉L(G) e supponiamo G in GNF. Inquesto caso il PDA ha un solo stato e i non terminali della grammaticapossono essere usati come simboli di pila.

Costruiamo M=<Σ,Γ,Z0,Q,q0,F,δ>

Γ=VN, Z0=S, Q={q}, q0=q, F=∅

Per ogni A→aγ con γ∈VN* abbiamo che <q,γ>∈δ(q,a,A)

Page 49: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

49

Esempio: il linguaggio { wwR | w ∈ (a+b)+} è generabile con la seguentegrammatica in forma di Greibach:

S → aSA | bSB | aA | bBA → aB → b

Ed è riconoscibile (per pila vuota) con il seguente automa a pila:

S A Ba b a b a b

q SA, q-----A, q

SB, q-----B, q

ε, q ε, q

Page 50: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

50

Per consentire un’efficiente e corretta analisi sintattica i linguaggi diprogrammazione devono essere linguaggi CF

- non ambigui (ogni stringa deve essere generabile con un solo albero diderivazione)- analizzabili in modo deterministico in tempo lineare (linguaggi LL(k),

LR(K), LALR(k) ecc.)

Page 51: RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMIausiello/InfoTeoRM/1.Richiami-08.pdfAutomi a pila – Analizzatori sintattici (parser) Approccio algebrico: un linguaggio può essere

51

Proprietà decidibili per i linguaggi regolari e CF:

- L è vuoto, L è finito, L è infinito- due automi a stati finiti dati sono equivalenti- due grammatiche CF deterministiche date sono equivalenti

Proprietà non decidibili:

- una grammatica CF è ambigua- un linguaggio CF è ambiguo (tutte le sue grammatiche lo sono)- due grammatiche CF (non deterministiche) date sono equivalenti- l’intersezione di due linguaggi CF è vuota, ecc.