25.08.2015 Views

Grammatiche e Linguaggi Liberi da Contesto

Grammatiche libere da contesto Grammatiche e Linguaggi Liberi da ...

Grammatiche libere da contesto Grammatiche e Linguaggi Liberi da ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Grammatiche</strong> libere <strong>da</strong> contesto<strong>Grammatiche</strong> libere <strong>da</strong> contesto<strong>Grammatiche</strong> e <strong>Linguaggi</strong> <strong>Liberi</strong> <strong>da</strong> <strong>Contesto</strong>Abbiamo visto che molti linguaggi non sono regolari.Consideriamo allora classi piu’ grandi di linguaggi.I <strong>Linguaggi</strong> <strong>Liberi</strong> <strong>da</strong> <strong>Contesto</strong> (CFL) sono stati usati nellostudio dei linguaggi naturali <strong>da</strong>l 1950, e nello studio deicompilatori <strong>da</strong>l 1960.Le grammatiche libere <strong>da</strong> contesto (CFG) sono la basedella sintassi BNF (Backus-Naur-Form).Oggi i CFL sono importanti per XML.Studieremo: CFG, i linguaggi che generano, gli alberisintattici, gli automi a pila, e le proprieta’ di chiusura dei CFL.<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Esempio informale di CFGConsideriamo L pal = {w ∈ Σ ∗ : w = w R }Per esempio: otto ∈ L pal , ma<strong>da</strong>mima<strong>da</strong>m ∈ L pal .Sia Σ = {0, 1} e supponiamo che L pal sia regolare.Sia n <strong>da</strong>to <strong>da</strong>l pumping lemma. Allora 0 n 10 n ∈ L pal . Nelleggere 0 n il FA deve passare per un loop. Se omettiamo illoop, contraddizione.Definiamo L pal induttivamente:Base: ɛ, 0, e 1 sono palindromi.Induzione: Se w e’ una palindrome, anche 0w0 e 1w1 lo sono.Nessun altra stringa e’ una palindrome.<strong>Grammatiche</strong> libere <strong>da</strong> contestoLe CFG sono un modo formale per definire linguaggi come L pal .1. P → ɛ2. P → 03. P → 14. P → 0P05. P → 1P10 e 1 sono terminaliP e’ una variabile (o nonterminale, ocategoria sintattica)P e’ in questa gramatica anche il simbolo iniziale.1–5 sono produzioni (o regole)<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Definizione formale di CFGUna grammatica libera <strong>da</strong> contesto e’ una quadrupladoveG =(V , T , P, S)V e’ un insieme finito di variabili.T e’ un insieme finito di terminali.P e’ un insieme finito di produzioni della forma A → α, doveA e’ una variabile e α ∈ (V ∪ T ) ∗S e’ una variabile distinta chiamata il simbolo iniziale.<strong>Grammatiche</strong> libere <strong>da</strong> contestoEsempiG pal =({P}, {0, 1}, A, P), dove A ={P → ɛ, P → 0, P → 1, P → 0P0, P → 1P1}.A volte raggruppiamo le produzioni con la stessa testa:A = {P → ɛ|0|1|0P0|1P1}.Le espressioni regolari su {0, 1} possono essere definite <strong>da</strong>llagrammaticaG regex =({E}, {0, 1}, A, E)dove A ={E → 0, E → 1, E → E.E, E → E + E, E → E ⋆ , E → (E)}<strong>Grammatiche</strong> libere <strong>da</strong> contesto


EsempioEspressioni (semplici) in un tipico linguaggio di programmazione.Gli operatori sono + e *, e gli operandi sono identificatori, cioe’stringhe in L((a + b)(a + b + 0 + 1) ∗ )Usiamo la grammatica G =({E, I }, T , P, E) doveT = {+, ∗, (, ), a, b, 0, 1} e P e’ il seguente insieme di produzioni:1. E → I2. E → E + E3. E → E ∗ E4. E → (E)5. I → a6. I → b7. I → Ia8. I → Ib9. I → I 010. I → I 1<strong>Grammatiche</strong> libere <strong>da</strong> contestoDerivazioni usando le grammatiche• Inferenza ricorsiva, usando le produzioni <strong>da</strong>l corpo alla testa• Derivazioni, usando le produzioni <strong>da</strong>lla testa al corpoEsempio di inferenza ricorsiva:Stringa Ling. Prod. Stringhe usate(i) a I 5 -(ii) b I 6 -(iii) b0 I 9 (ii)(iv) b00 I 9 (iii)(v) a E 1 (i)(vi) b00 E 1 (iv)(vii) a + b00 E 2 (v), (vi)(viii) (a + b00) E 4 (vii)(ix) a ∗ (a + b00) E 3 (v), (viii)<strong>Grammatiche</strong> libere <strong>da</strong> contesto


DerivazioniSia G =(V , T , P, S) una CFG, A ∈ V , {α, β} ⊂ (V ∪ T ) ∗ ,eA → γ ∈ P.Allora scriviamoαAβ ⇒Gαγβo, se e’ ovvia la G,αAβ ⇒ αγβe diciamo che <strong>da</strong> αAβ si deriva αγβ.Definiamo ∗ ⇒ la chiusura riflessiva e transitiva di ⇒, cioe’:Base: Sia α ∈ (V ∪ T ) ∗ . Allora α ∗ ⇒ α.Induzione: Se α ∗ ⇒ β, eβ ⇒ γ, allora α ∗ ⇒ γ.<strong>Grammatiche</strong> libere <strong>da</strong> contestoEsempioDerivazione di a ∗ (a + b00) <strong>da</strong> E nella grammatica delleespressioni:E ⇒ E ∗ E ⇒ I ∗ E ⇒ a ∗ E ⇒ a ∗ (E) ⇒a ∗ (E + E) ⇒ a ∗ (I + E) ⇒ a ∗ (a + E) ⇒ a ∗ (a + I ) ⇒a ∗ (a + I 0) ⇒ a ∗ (a + I 00) ⇒ a ∗ (a + b00)Ad ogni passo potremmo avere varie regole tra cui scegliere,ad esempioI ∗ E ⇒ a ∗ E ⇒ a ∗ (E), oppureI ∗ E ⇒ I ∗ (E) ⇒ a ∗ (E).Non tutte le scelte portano a derivazioni di una particolarestringa, per esempioE ⇒ E + Enon ci fa derivare a ∗ (a + b00).<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Derivazioni a sinistra e a destraDerivazione a sinistra ⇒lm: rimpiazza sempre la variabile piu’a sinistra con il corpo di una delle sue regole.Derivazione a destra ⇒ rm: rimpiazza sempre la variabile piu’a destra con il corpo di una delle sue regole.Der. a sinistra: quella del lucido precedente.A destra:E ⇒ rmE ∗ E ⇒ rmE ∗ (E) ⇒ rmE ∗ (E + E) ⇒ rmE ∗ (E + I ) ⇒ rmE ∗ (E + I 0)⇒rm⇒rmE ∗ (E + I 00) ⇒rmE ∗ (a + b00) ⇒rmE ∗ (E + b00) ⇒rmI ∗ (a + b00) ⇒rmE ∗ (I + b00)a ∗ (a + b00)Possiamo concludere che E∗ ⇒ rma ∗ (a + b00)<strong>Grammatiche</strong> libere <strong>da</strong> contestoIl linguaggio di una grammaticaSe G(V , T , P, S) e’ una CFG, allora il linguaggio di G e’L(G) ={w ∈ T ∗ : S ∗ ⇒Gw}cioe’ l’insieme delle stringhe su T ∗ derivabili <strong>da</strong>l simboloiniziale.Se G e’ una CFG, chiameremo L(G) un linguaggio libero <strong>da</strong>contesto.Esempio: L(G pal ) e’ un linguaggio libero <strong>da</strong> contesto.<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Teorema 5.7:L(G pal )={w ∈ {0, 1} ∗ : w = w R }Prova: (direzione ⊇) Supponiamo w = w R . Mostriamo perinduzione su |w| che w ∈ L(G pal ).Base: |w| = 0, or |w| = 1. Allora w e’ ɛ, 0, or 1. Dato cheP → ɛ, P → 0, and P → 1 sono produzioni, concludiamo cheP ∗ ⇒Gw in tutti i casi base.Induzione: Supponiamo |w| ≥ 2. Dato che w = w R ,abbiamo w =0x0, o w =1x1, e x = x R .Se w =0x0 sappiamo che per l’ipotesi induttiva P ∗ ⇒ x.AlloraP ⇒ 0P0 ∗ ⇒ 0x0 =wQuindi w ∈ L(G pal ).Il caso di w =1x1 e’ simile.<strong>Grammatiche</strong> libere <strong>da</strong> contesto(direzione ⊆) Assumiamo che w ∈ L(G pal ) e dobbiamo mostrareche w = w R .Dato che w ∈ L(G pal ), abbiamo P ⇒ ∗ w.∗Faremo un’induzione sulla lunghezza di ⇒.Base: La derivazione P ∗ ⇒ w ha 1 passo.Allora w deve essere ɛ, 0, o 1, tutte palindromi.Induzione: Sia n ≥ 1, e supponiamo che la derivazione han + 1 steps. Allora dobbiamo avereow =0x0 ∗ ⇐ 0P0 ⇐ Pw =1x1 ∗ ⇐ 1P1 ⇐ Pdove la secon<strong>da</strong> derivazione ha n passi.Per l’ipotesi induttiva, x e’ una palindrome.<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Forme sentenzialiSia G =(V , T , P, S) una CFG, e α ∈ (V ∪ T ) ∗ .Se S ∗ ⇒ α diciamo che α e’ una forma sentenziale.Se S ⇒lmα diciamo che α e’ una forma sentenziale sinistra,Se S ⇒ rmα diciamo che α e’ una forma sentenziale destraNota: L(G) contiene le forme sentenziali che sono in T ∗ .<strong>Grammatiche</strong> libere <strong>da</strong> contestoEsempiPrendiamo la G delle espressioni. Allora E ∗ (I + E) e’ unaforma sentenziale perche’E ⇒ E ∗ E ⇒ E ∗ (E) ⇒ E ∗ (E + E) ⇒ E ∗ (I + E)Questa derivazione non e’ ne’ a sinistra ne’ a destraa ∗ E e’ una forma sentenziale sinistra, perche’E ⇒lmE ∗ E ⇒lmI ∗ E ⇒lma ∗ EE ∗ (E + E) e’ una forma sentenziale destra, perche’E ⇒ rmE ∗ E ⇒ rmE ∗ (E) ⇒ rmE ∗ (E + E)<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Alberi sintatticiSe w ∈ L(G), per una CFG, allora w ha un albero sintattico,che ci dice la struttura (sintattica) di ww potrebbe essere un programma, una query SQL, undocumento XML, ...Gli alberi sintattici sono una rappresentazione alternativa allederivazioni e alle inferenze ricorsive.Ci possono essere diversi alberi sintattici per la stessa stringaIdealmente ci dovrebbe essere solo un albero sintattico (la”vera” struttura), cioe’ il linguaggio dovrebbe essere nonambiguo.Sfortunatamente, non sempre possiamo rimuoverel’ambiguita’.<strong>Grammatiche</strong> libere <strong>da</strong> contestoCostruzione di un albero sintatticoSia G =(V , T , P, S) una CFG. Un albero e’ un albero sintatticoper G se:1 Ogni nodo interno e’ etichettato con una variabile in V .2 Ogni foglia e’ etichettata con un simbolo in V ∪ T ∪ {ɛ}.Ogni foglia etichettata con ɛ e’ l’unico figlio del suo genitore.3 Se un nodo interno e’ etichettato A, e i suoi figli (<strong>da</strong> sinistra adestra) sono etichettatiallora A → X 1 X 2 ...X k ∈ P.X 1 , X 2 , . . . , X k ,<strong>Grammatiche</strong> libere <strong>da</strong> contesto


EsempioNella grammnatica1. E → I2. E → E + E3. E → E ∗ E4. E → · (E)·il seguente e’ un albero sintattico:EE + EIQuesto albero sintattico mostra la derivazione E ∗ ⇒ I + E<strong>Grammatiche</strong> libere <strong>da</strong> contestoEsempioNella grammatica1. P → ɛ2. P → 03. P → 14. P → 0P05. P → 1P1il seguente e’ un albero sintattico:P0 P 01 P 1!Mostra la derivazione P ∗ ⇒ 0110.<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Il prodotto di un albero sintatticoIl prodotto di un albero sintattico e’ la stringa di foglie <strong>da</strong>sinistra a destra.Sono importanti quegli alberi sintattici dove:1 Il prodotto e’ una stringa terminale.2 La radice e’ etichettata <strong>da</strong>l simbolo iniziale.L’insieme dei prodotti di questi alberi sintattici e’ il linguaggiodella grammatica.<strong>Grammatiche</strong> libere <strong>da</strong> contestoEsempioEE*EI( E )aE+EIIaI0I0bIl prodotto e’ a ∗ (a + b00).<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Sia G =(V , T , P, S) una CFG, e A ∈ V . I seguenti sonoequivalenti:1 Possiamo determinare per inferenza ricorsiva che w e’ nellinguaggio di A2 A ∗ ⇒ w3 A ∗ ⇒lmw,eA∗ ⇒ rmw4 C’e’ un albero sintattico di G con radice A e’ prodotto w.<strong>Grammatiche</strong> libere <strong>da</strong> contestoPer provare l’equivalenza, usiamo il seguente piano.LeftmostderivationParsetreeDerivationRightmostderivationRecursiveinference<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Dalle inferenze ricorsive agli alberi: partiamo <strong>da</strong>ll’ultimo passoe costruiamo sottoalberi, poi passiamo ai passi precedenti finoal primo.Dagli alberi alle derivazioni a sinistra: seguo l’albero <strong>da</strong>sinistra a destra.Dalle derivazioni alle inferenze ricorsive: vado all’indietro nelladerivazione.<strong>Grammatiche</strong> libere <strong>da</strong> contestoEsempioCostruiamo la derivazione a sinistra per l’alberoEE*EI( E )aE+EIIaI0I0b<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Supponiamo di aver induttivamente costruito la derivazione asinistraE ⇒ I ⇒ alm lmcorrispondente al sottoalbero piu’ a sinistra, e la derivazione asinistraE ⇒ (E) ⇒ (E + E) ⇒ (I + E) ⇒ (a + E) ⇒lm lm lm lm lm(a + I ) ⇒lm(a + I 0) ⇒lm(a + I 00) ⇒lm(a + b00)corrispondente al sottoalbero piu’ a destra.<strong>Grammatiche</strong> libere <strong>da</strong> contestoPer la derivazione corrispondente all’intero albero, iniziamo conE ⇒lmE ∗ E e espandiamo la prima E con la prima derivazione e lasecon<strong>da</strong> E con la secon<strong>da</strong> derivazione:E ⇒ E ∗ E ⇒lm lmI ∗ E ⇒ a ∗ E ⇒lm lma ∗ (E) ⇒ a ∗ (E + E) ⇒lm lma ∗ (I + E) ⇒ a ∗ (a + E) ⇒lm lma ∗ (a + I ) ⇒ a ∗ (a + I 0) ⇒lm lma ∗ (a + I 00) ⇒ a ∗ (a + b00)lm<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Ambiguita’ in <strong>Grammatiche</strong> e <strong>Linguaggi</strong>Nella grammatica1. E → I2. E → E + E3. E → E ∗ E4. E → (E)···la forma sentenziale E + E ∗ E ha due derivazioni:E ⇒ E + E ⇒ E + E ∗ EeE ⇒ E ∗ E ⇒ E + E ∗ EQuesto ci <strong>da</strong>’ due alberi sintattici:EEE+EE*EE*EE+E(a)<strong>Grammatiche</strong> libere (b) <strong>da</strong> contestoL’esistenza di varie derivazioni di per se non e’ pericolosa, e’l’esistenza di vari alberi sintattici che rovina la grammatica.Esempio: Nella stessa grammatica5. I → a6. I → b7. I → Ia8. I → Ib9. I → I 010. I → I 1la stringa a + b ha varie derivazioni:E ⇒ E + E ⇒ I + E ⇒ a + E ⇒ a + I ⇒ a + beE ⇒ E + E ⇒ E + I ⇒ I + I ⇒ I + b ⇒ a + bPero’ il loro albero sintattico e’ lo stesso, e la struttura di a + b e’quindi non ambigua.<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Definizione: Sia G =(V , T , P, S) una CFG. Diciamo che G e’ambigua se esiste una stringa in T ∗ che ha piu’ di un alberosintattico.Se ogni stringa in L(G) ha al piu’ un albero sintattico, G e’ dettanon ambigua.Esempio: La stringa terminale a + a ∗ a ha due alberi sintattici:EEE+EE*EIE*EE+EIaIIIIaaaaa(a)(b)<strong>Grammatiche</strong> libere <strong>da</strong> contestoRimuovere l’ambiguita’ <strong>da</strong>lle grammaticheBuone notizie: a volte possiamo rimuovere l’ambiguita’Cattive notizie: non c’e’ nessun algoritmo per farlo in modosistematicoAncora cattive notizie: alcuni CFL hanno solo CFG ambigueStudiamo la grammaticaE → I | E + E | E ∗ E | (E)I → a | b | Ia | Ib | I 0 | I 1Non c’e’ precedenza tra * e +Non c’e’ raggruppamento di sequenze di operatori: E + E + Ee’ inteso come E +(E + E ) o come (E + E )+E ?<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Soluzione: Introduciamo piu’ variabili, ognuna che rappresentaespressioni con lo stesso grado di ”forza di legamento”1 Un fattore e’ un’espressione che non puo’ essere spezzata <strong>da</strong>un * o un + adiacente. I nostri fattori sono:1 Identificatori2 Un’espressione racchiusa tra parentesi.2 Un termine e’ un’espressione che non puo’ essere spezzata <strong>da</strong>un +. Ad esempio, a ∗ b puo’ essere spezzata <strong>da</strong> a1∗ o ∗a1.Non puo’ essere spezzata <strong>da</strong> +, perche’ ad esempio a1+a ∗ be’ (secondo le regole di precedenza) lo stesso di a1 + (a ∗ b), ea ∗ b + a1 e’ lo stesso di (a ∗ b)+a1.3 Il resto sono espressioni, cioe’ possono essere spezzate con * o+.<strong>Grammatiche</strong> libere <strong>da</strong> contestoUsiamo F per i fattori, T per i termini, e E per le espressioni.Consideriamo la seguente grammatica:1. I → a | b | Ia | Ib | I 0 | I 12. F → I | (E)3. T → F | T ∗ F4. E → T | E + TOra l’unico albero sintattico per a + a ∗ a e’:EE+TTT*FFFIIIaaa<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Perche’ la nuova grammatica non e’ ambigua?Un fattore e’ o un identificatore o (E), per qualcheespressione E.L’unico albero sintattico per una sequenzaf 1 ∗ f 2 ∗ ···∗ f n−1 ∗ f ndi fattori e’ quello che <strong>da</strong>’ f 1 ∗ f 2 ∗ ···∗ f n−1 come termine e f ncome fattore, come nell’albero del prossimo lucido.Un’espressione e’ una sequenzat 1 + t 2 + ···+ t n−1 + t ndi termini t i . Puo’ essere solo raggruppata cont 1 + t 2 + ···+ t n−1 come un’espressione e t n come untermine.<strong>Grammatiche</strong> libere <strong>da</strong> contestoTT*FT...T*FT*FF<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Derivazioni a sinistra e ambiguita’I due alberi sintattici per a + a ∗ aEEE+EE*EIE*EE+EIaIIIIaaaaa(a)<strong>da</strong>nno luogo a due derivazioni:E ⇒ E + E ⇒ I + E ⇒ a + E ⇒ a + E ∗ Elm lm lm lm⇒lm a + I ∗ E lm ⇒ a + a ∗ E lm ⇒ a + a ∗ I lm ⇒ a + a ∗ aeE ⇒ E ∗ E ⇒ E + E ∗ E ⇒ I + E ∗ E ⇒ a + E ∗ Elm lm lm lm⇒ a + I ∗ E ⇒ a + a ∗ E ⇒ a + a ∗ I ⇒ a + a ∗ a(b)<strong>Grammatiche</strong> libere <strong>da</strong> contestoIn generale:Un albero sintattico, ma molte derivazioniMolte derivazioni a sinistra implica molti alberi sintattici.Molte derivazioni a destra implica molti alberi sintattici.<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Teorema 5.29: Data una CFG G, una stringa terminale w ha duedistinti alberi sintattici se e solo se w ha due distinte derivazioni asinistra <strong>da</strong>l simbolo iniziale.Prova:(Solo se.) Se due alberi sintattici sono diversi, hanno un nododove sono state usate due diverse produzioni:A → X 1 X 2 ···X k e B → Y 1 Y 2 ···Y m . Le corrispondentiderivazioni a sinistra useranno queste diverse produzioni equindi saranno distinte.(Se.) Per come costruiamo un albero <strong>da</strong> una derivazione, e’chiaro che due derivazioni distinte generano due alberi distinti.<strong>Grammatiche</strong> libere <strong>da</strong> contestoAmbiguita’ inerenteUn CFL L e’ inerentemente ambiguo se tutte le grammaticheper L sono ambigue.Esempio: Consideriamo L ={a n b n c m d m : n ≥ 1, m ≥ 1} ∪ {a n b m c m d n : n ≥ 1, m ≥ 1}.Una grammatica per L e’S → AB | CA → aAb | abB → cBd | cdC → aCd | aDdD → bDc | bc<strong>Grammatiche</strong> libere <strong>da</strong> contesto


Guardiamo la struttura sintattica della stringa aabbccdd.SABa A bc B <strong>da</strong>abc<strong>da</strong><strong>Grammatiche</strong> libere <strong>da</strong> contestobVediamo che ci sono due derivazioni a sinistra:eS ⇒lmAB ⇒lmaAbB ⇒lmaabbB ⇒lmaabbcBd ⇒lmaabbccddS ⇒lmC ⇒lmaCd ⇒lmaaDdd ⇒lmaabDcdd ⇒lmaabbccddPuo’ essere provato che ogni grammatica per L si comporta comequesta. Il linguaggio L e’ quindi inerentemente ambiguo.<strong>Grammatiche</strong> libere <strong>da</strong> contesto


<strong>Linguaggi</strong> regolari e grammaticheUn linguaggio regolare e’ anche libero <strong>da</strong> contesto.Da una espressione regolare, o <strong>da</strong> un automa, si puo’ ottenereuna grammatica che genera lo stesso linguaggio.<strong>Grammatiche</strong> libere <strong>da</strong> contestoDa espressione regolare a grammaticaPer induzione sulla struttura della espressione regolare:se E = a, allora produzione S → ase E = ɛ, allora produzione S → ɛse E = F + G, allora produzione S → F | Gse E = FG , allora produzione S → FGse E = F ∗ , allora produzione S → FS | ɛ<strong>Grammatiche</strong> libere <strong>da</strong> contesto


EsempioEspressione regolare: 0 ∗ 1(0 + 1) ∗Grammatica:S → ABCA → 0A | ɛB → 1C → DC | ɛD → 0 | 1<strong>Grammatiche</strong> libere <strong>da</strong> contestoDa automa a grammaticaUn simbolo non-terminale per ogni stato.Simbolo iniziale = stato iniziale.Per ogni transizione <strong>da</strong> stato s a stato p con simbolo a,produzione S → aP.Se p stato finale, allora produzione P → ɛ<strong>Grammatiche</strong> libere <strong>da</strong> contesto


EsempioAutoma:Start1 00 1q 0q 2q 1 0, 1Grammatica:Q 0 → 1Q 0 | 0Q 2Q 2 → 0Q 0 | 1Q 1Q 1 → 0Q 1 | 1Q 1 | ɛLa stringa 1101 e’ accettata <strong>da</strong>ll’automa. Nella grammatica, ha laderivazione:Q 0 ⇒ 1Q 0 ⇒ 11Q 0 ⇒ 110Q 2 ⇒ 1101Q 1 ⇒ 1101<strong>Grammatiche</strong> libere <strong>da</strong> contesto

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!