Tema 3.   Gramàtiques incontextuals

Teoria

  • M. Sipser,
    Introduction to the Theory of Computation, Third edition, Cengage Learning, 2012
    Section 2.1  Context-Free Grammars

Veure els següents vídeos:

Exercicis per a l’avaluació contínua

Exercici 3.1.

Doneu una gramàtica inambígua per a generar expressions amb operadors binaris de suma, resta, producte, divisió, i també admetent parentització explícita, de manera que l’arbre sintàctic generat es correspongui a la precedéncia habitual que donem als operadors.

Exercici 3.2.

Justifica l’ambigüitat o no ambigüitat de les següents CFG’s:

  1. (aa)  
    SS \to (S)|SS|(S)|SS|
  2. (bb)  
    SS \to (S)S|(S)S|
  3. (cc)  
    SS \to aSb|BaSb|B
    BB \to bAa|bCb|λbAa|bCb|\lambda
    AA \to aAbA|bAaA|λaAbA|bAaA|\lambda
    CC \to Aaa|aAa|aaAAaa|aAa|aaA
  4. (dd)  
    SS \to aU1|aS|bZ1|bSaU_{1}|aS|bZ_{1}|bS
    Z1Z_{1} \to aU2|bFaU_{2}|bF
    U1U_{1} \to bU2bU_{2}
    U2U_{2} \to bF|bbF|b
    FF \to aF|bF|a|baF|bF|a|b
  5. (ee)  
    SS \to AaBA|ABaA|ACA|AbabAAaBA|ABaA|ACA|AbabA
    BB \to bbbb
    CC \to bBbB
    AA \to aA|bA|λaA|bA|\lambda
  6. (ff)  
    SS \to aU1|aS|bZ1|bSaU_{1}|aS|bZ_{1}|bS
    Z1Z_{1} \to aU2|bZ2aU_{2}|bZ_{2}
    U1U_{1} \to bU2bU_{2}
    U2U_{2} \to bFbF
    Z2Z_{2} \to aF|bFaF|bF
    FF \to aF|bF|λaF|bF|\lambda
  7. (gg)  
    SS \to Z1a|Z2bZ_{1}a|Z_{2}b
    Z1Z_{1} \to Z1a|U1bZ_{1}a|U_{1}b
    Z2Z_{2} \to U2a|Z3bU_{2}a|Z_{3}b
    Z3Z_{3} \to Fa|U2Fa|U_{2}
    U1U_{1} \to U2|FbaU_{2}|Fba
    U2U_{2} \to FbFb
    FF \to Fa|Fb|λFa|Fb|\lambda
Exercici 3.3.

Demostreu que la gramàtica reunió G1G2G_{1}\cup G_{2} de dues gramàtiques inambígües G1,G2G_{1},G_{2} sí podria ser ambígua.

Exercici 3.4.

Demostreu que la gramàtica concatenació G1G2G_{1}\cdot G_{2} de de dues gramàtiques inambígües G1,G2G_{1},G_{2} sí podria ser ambígua.

Exercici 3.5.

Demostreu que la gramàtica estrella G*G^{*} d’una gramàtica inambígua GG sí podria ser ambígua.

Exercici 3.6.

Demostreu que la gramàtica imatge σ(G)\sigma(G) d’una gramàtica inambígua GG per un morfisme σ\sigma sí podria ser ambígua.

Exercici 3.7.

Demostreu que la gramàtica revessada GRG^{R} d’ una gramàtica inambígua GG és també inambígua.

Exercici 3.8.

Expliqueu el procediment d’eliminació de produccions nul.les i analitzeu-ne el temps de computació. Feu un exemple de la seva aplicació.

Exercici 3.9.

Expliqueu el procediment d’eliminació de produccions unàries i analitzeu-ne el temps de computació. Feu un exemple de la seva aplicació.

Exercici 3.10.

Explicqueu el procediment d’eliminació de símbols inútils i analitze-ne el temps de computació. Feu un exemple de la seva aplicació.

Exercici 3.11.

Depureu (elimineu les λ\lambda-produccions, produccions unàries i símbols inútils) les CFGs següents:

  1. (aa)  
    SS \to SS|(S)|λSS|(S)|\lambda
  2. (bb)  
    SS \to (S)S|λ(S)S|\lambda
  3. (cc)  
    SS \to AAAA
    AA \to AA|λAA|\lambda
  4. (dd)  
    SS \to AA
    AA \to BB
    BB \to cc
  5. (ee)  
    SS \to ABAB
    AA \to a|λa|\lambda
    BB \to b|λb|\lambda
  6. (ff)  
    SS \to ABAB
    AA \to aAb|λaAb|\lambda
    BB \to bBc|λbBc|\lambda
  7. (gg)  
    SS \to BC|λBC|\lambda
    AA \to aA|λaA|\lambda
    BB \to bBbB
    CC \to cc
  8. (hh)  
    SS \to X|YX|Y
    XX \to Xc|AXc|A
    AA \to aAb|λaAb|\lambda
    YY \to aY|BaY|B
    BB \to bBc|λbBc|\lambda
  9. (ii)  
    SS \to A|B|CA|B|C
    AA \to SaSbS|λSaSbS|\lambda
    BB \to SbSaS|λSbSaS|\lambda
    CC \to Cc|λCc|\lambda
Exercici 3.12.

Expliqueu el procediment de passar d’una CFG GG a una CFG GG^{\prime} equivalent en Forma Normal de Chomsky (CNF) i analitzeu-ne el temps de computació.

Exercici 3.13.

Demostreu que totes les transformacions de gramàtiques exposades ens els exercicis anteriors preserven la no ambigüitat de la gramàtica original.

Exercici 3.14.

Quin és el cost de l’algorisme CKY (o conegut també per CYK) per a decidir si una CFG GG donada genera un mot ww donat? Es a dir, descriviu i analitzeu el cost en temps de l’agorisme CYK tal que donada una CFG GG i donat un mot ww, decideix si wL(G)w\in L(G).

Quin és el cost temporal si se suposa que GG és fixa i que per tant l’ entrada només conté ww?

Exercici 3.15.

Sigui nn el nombre de passos de derivació necessaris per a generar una certa palabra ww amb una certa CFG GG en forma normal de Chomsky. Podem establir alguna relació entre nn i |w||w|?

Exercici 3.16.

Justifiqueu la veracitat o falsetat de les següents afirmacions per a CFGs G,G1,G2,G3G,G_{1},G_{2},G_{3}.

  1. (aa)  

    (GR)R=G(G^{R})^{R}=G.

  2. (bb)  

    (G1G2)R=G1RG2R(G_{1}\cup G_{2})^{R}=G_{1}^{R}\cup G_{2}^{R}.

  3. (cc)  

    (GR)*=(G*)R(G^{R})^{*}=(G^{*})^{R}.

  4. (dd)  

    (G1G2)G=(G1G)(G2G)(G_{1}\cup G_{2})G=(G_{1}G)\cup(G_{2}G).

  5. (ee)  

    σ(G1G2)=σ(G1)σ(G2)\sigma(G_{1}\cup G_{2})=\sigma(G_{1})\cup\sigma(G_{2}).

  6. (ff)  

    G1(G2G3)=(G1G2)G3G_{1}(G_{2}G_{3})=(G_{1}G_{2})G_{3}.

  7. (gg)  

    (G1G2)R=G2RG1R(G_{1}G_{2})^{R}=G_{2}^{R}G_{1}^{R}.

Exercici 3.17.

Proposeu un algorisme de cost raonable per a decidir si una CFG d’ entrada genera algun mot.

Exercici 3.18.

Proposeu un algorisme de cost raonable per a decidir si una CFG d’ entrada genera infinits mots.

Exercici 3.19.

Proposeu un algorisme de cost raonable per a decidir si una CFG d’ entrada genera algun mot de longitud parell.

Exercici 3.20.

Proposeu un algorisme de cost raonable per a decidir si una CFG d’ entrada genera infinits mots de londitud parell.

Exercici 3.21.

Proposeu un algorisme de cost raonable per a calcular, donats una CFG GG i un natural nn d’entrada, quants arbres de derivació diferents de mots de mida nn genera GG.

Exercici 3.22.

Sigui LL un llenguatge incontextual infinit. Demostreu que hi ha una CFG GG tal que (G)=L\mathcal{L}(G)=L i totes les variables de GG generen un llenguatge infinit.