Teor´ıa de Lenguajes Práctica 6 (Lenguajes libres de contexto)

Anuncio
Teorı́a de Lenguajes
Práctica 6
(Lenguajes libres de contexto)
1. Para cada uno de los siguientes lenguajes, construir un autómata de pila
que los acepte. Hacer también una versión determinı́stica en los casos en
que sea posible.
(a) {an bn }
(b) {an bm | m > n}
(c) {an bm | m 6= n}
(d) {ω#ω r | ω ∈ {a, b}∗ }
(e) {ω | ω ∈ {a, b}∗ ∧ ω = ω r }
(f) {ω | ω ∈ {a, b}∗ ∧ ω 6= ω r }
(g) {ω | ω ∈ {a, b}∗ ∧ |ω|a = |ω|b }
(h) {ω | ω ∈ {a, b}∗ ∧ |ω|a > |ω|b }
(i) {ω | ω ∈ {a, b}∗ ∧ |ω|a 6= |ω|b }
(j) {ω | ω ∈ {a, b}∗ ∧ |ω|a = 2|ω|b }
(k) {ai bj ck | i 6= j ∨ j 6= k}
(l) {ai bj | j = 2i} ∪ {ai cj | i = 2j}
(m) Cadenas de paréntesis balanceados.
2. Para el autómata de pila que se define más abajo:
• Definir “por comprensión” el lenguaje generado.
• Definir una GLC G tal que L(G) = L(A).
A = hQ, Σ, Γ, δ, q0 , Z0 , F i
Donde:
Q = {q0 , q1 }
Σ = {a, b, c}
Γ = {Z0 , A, B, C}
F = {q0 }
1
δ(q0 , a, Z0) = (q1 , AZ0 ) δ(q0 , b, Z0 ) = (q1 , BZ0 )
δ(q1 , a, A) = (q1 , AC)
δ(q1 , b, B) = (q1 , BC)
δ:
δ(q1 , c, A) = (q1 , λ)
δ(q1 , c, B) = (q1 , λ)
δ(q1 , c, C) = (q1 , λ)
δ(q1 , λ, Z0 ) = (q0 , Z0 )
3. Construir autómatas de pila para los lenguajes de la práctica 5 que no
sean regulares y sean libres de contexto.
4. Un lenguaje L se dice libre de prefijos si ninguna cadena de L es un
prefijo propio de otra cadena de L. Decir si las siguientes afirmaciones son
verdaderas (explicar) o falsas (contraejemplo).
(a) L = N (M ) para un APD ⇒ L es libre de prefijos.
(b) L = N (M ) para un APND ⇒ L es libre de prefijos.
(c) L = L(M ) para un APD ⇒ L es libre de prefijos.
N (M ) es el lenguaje aceptado por el autómata M por pila vacı́a.
5. Dar una Gramática Libre de Contexto para cada uno de los lenguajes del
ejercicio 1.
6. Dar una gramática libre de contexto que genere el lenguaje de las fórmulas
de la lógica de predicados de primer orden, basada en las variables x, y,
las constantes c, d y los sı́mbolos de predicados p, q, r, s, usando todos los
conectivos lógicos usuales.
Por ej.: ∀x(∃y(p(x, y))) ⇒ ∃x((q(x, c) ∧ r(d, x)) ∨ ¬s(x))
7. Definir traductores de pila que realicen las siguientes traducciones. Hacerlos determinı́sticos de ser posible.
(a) {(ai bj , aj bi )}
(b) {(ω, ω r ) | ω ∈ {0, 1}∗ }
(c) {(ω, ωω r ) | ω ∈ {0, 1}∗ }
(d) {(ω, ω r ω) | ω ∈ {0, 1}∗ }
(e) {(ω, ω r 1k ) | ω ∈ {0, 1}∗ ∧ k = |ω|0 }
(f) {(ω, ω r 1k ) | ω ∈ {0, 1}∗ ∧ 0 ≤ k ≤ |ω|0 }
(g) {(ω, 1k ) | ω ∈ {0, 1}∗ ∧ ||ω|0 − |ω|1 | = k}
(h) {(ω, ai bj ) | ω ∈ {a, b}∗ ∧ i = |ω|a ∧ j = |ω|b }
(i) {(ai bj , ω) | ω ∈ {a, b}∗ ∧ |ω|a = i ∧ |ω|b = j}
(j) {(ω, ck ) | ω ∈ {a, b}∗ ∧ k = mı́n(|ω|a , |ω|b )}
(k) {(ω, ck ) | ω ∈ {a, b}∗ ∧ k = máx(|ω|a , |ω|b )}
(l) {(ai bj , ck ) | i ≤ k ≤ j}
(m) {(ω, ck ) | ω ∈ {a, b}∗ ∧ |ω|a ≤ k ≤ |ω|b )}
(n) {(ω, ai bj ) | ω ∈ {0, 1}∗ ∧ i = ||ω|0 − |ω|1 | ∧ j = |ω|0 + |ω|1 }
(o) {(ω, γ) | ω, γ ∈ {0, 1}∗ ∧ |ω|0 = |γ|0 ∧ |ω|1 = |γ|1 }
8. Determinar si es verdad o no que:
2
(a) L es libre de contexto ⇒ L2 es libre de contexto.
(b) L es libre de contexto ⇒ ∀nLn es libre de contexto.
(c) L es libre de contexto ⇒ L∗ es libre de contexto.
(d) L es libre de contexto ⇒ Lr es libre de contexto.
(e) L es libre de contexto ⇒ {ωω | ω ∈ L} es libre de contexto.
(f) ∀i ∈ NLi es regular ⇒ ∪i∈N Li es libre de contexto.
3
Descargar