gramáticas libres de contexto en su habitát
Post on 20-Feb-2017
17 Views
Preview:
TRANSCRIPT
Gramáticas libres de contexto ensu habitat
A veces te vas por las ramas para no tener que ir directo a la raíz. Sobre todo si la raíz es dolorosa ypuede derribar el árbol—Albert Espinosa
Ivan Meza
Son una tupla , donde:
Gramáticas libres de contextoG = (V , Σ, P , S)
es otro alfabeto que denominamos símbolos no terminales(generalmente en mayúsculas)
es un alfabeto que denominamos símbolos terminales es conjunto de reglas con la forma donde
que denominamos símbolo inicial
V
ΣP V → α α ∈ (Σ ∪ V )∗
S ∈ V
GLC para el lenguaje de ER donde G = ({R, B}, {a, b, ϵ, ∅}, P , R, +, ∗, (, )) P
R → BR → R + RR → R∗R → RRR → (R)B → aB → bB → ϵB → ∅
Derivaciones para: a + (ab)
Derivación a la izquierdaa + (ab)
R⇒ R + R⇒ B + R⇒ a + R⇒ a + (R)⇒ a + (RR)⇒ a + (BR)⇒ a + (aR)⇒ a + (aB)⇒ a + (ab)
Derivación a la derechaa + (ab)
R⇒ R + R⇒ R + (R)⇒ R + (RR)⇒ R + (RB)⇒ R + (Rb)⇒ R + (Bb)⇒ R + (ab)⇒ B + (ab)⇒ a + (ab)
Derivaciones diferentes
¿Árboles?
Árbol primera derivación
a b
B B
a R R
B ( R )
R + R
R
Árbol segunda derivación
a b
B B
a R R
B ( R )
R + R
R
a b
B B
a R R
B ( R )
R + R
R
a b
B B
a R R
B ( R )
R + R
R
Dos derivaciones diferentes producen el mismo árbol
Derivaciones para: a + ab
Derivación a la izquierdaa + ab
R⇒ R + R⇒ B + R⇒ a + R⇒ a + RR⇒ a + BR⇒ a + aR⇒ a + aB⇒ a + ab
¡¡Segunda derivación a laizquierda!!a + ab
R⇒ RR⇒ R + RR⇒ B + RR⇒ a + RR⇒ a + BR⇒ a + aR⇒ a + aB⇒ a + ab
Derivaciones diferentes
¿Árboles?
Árbol primera derivación
a b
a B B
B R R
R + R
R
Árbol segunda derivación
a a
B B b
R + R B
R R
R
a b
a B B
B R R
R + R
R
a a
B B b
R + R B
R R
R
Dos derivaciones diferentes producen dos árboles diferentes
¡¡Dos derivaciones diferentesproducen dos árbolesdiferentes!!
A esta propiedad de que una cadena tiene dos "signi�cados"diferentes le llamamos
Ambigüedad
veo al gato con el telescopio
¿quien tiene el telescopio?
S
VP
veo NP PP
al gato con el telescopio
S
VP
veo NP
NP PP
al gato con el telescopio
Ambigüedad
Los humanos encontramos la ambigüedad muy divertida
Hola, ¿cómo te llamas?Maria de los Ángeles ¿y tú?Daniel de Nueva York
Oye, pues mi hijo en su nuevo trabajo se siente como pez en elagua.¿Qué hace?Nada
Definiciones
Una gramática es ambigua si para cuando menos una
cadena tiene más de un árbol de derivación
Si todas las cadenas de una gramática tienen cuando menos
un árbol de derivación no es ambigua
Reducción de gramáticasambiguasMalas noticias: no existe un algoritmo para reducirgramáticas
Pero hay algunas estrategias
Elegir un agrupamiento paramismo operador: izquierda oderechaa + a + a
Forzar preferencia: introducirnuevas variables
donde G = ({E, T , F , B}, {a, b, ϵ, ∅, P , R, +, ∗, (, )}, E)
P
E → T |E + TT → F |TFF → B|F ∗ |(E)B → aB → bB → ϵB → ∅
Derivación por la izquierdaa + ab
E⇒ E + T⇒ T + T⇒ F + T⇒ B + T⇒ a + T⇒ a + TF⇒ a + FF⇒ a + BF⇒ a + aF⇒ a + aB⇒ a + ab
Árbol primera derivación
E
E + T
T T F
F F B
B B b
a a
Derivación por la derechaa + ab
E⇒ E + T⇒ E + TF⇒ E + TB⇒ E + Tb⇒ E + Fb⇒ E + Bb⇒ E + ab⇒ T + ab⇒ F + ab⇒ B + ab⇒ a + ab
Árbol segunda derivación
E
E + T
T T F
F F B
B B b
a a
Intentar con: a ∗ +(a ∗ b)∗
Intentar con: ∪anbncmdm anbmcmdn
Por un lado... y anbn cndn
A → aAb|abB → cBd|cd
Por otro lado anbmcmdn
C → aCd|aDdD → bDc|bc
E → AB|C
¿Qué pasa cuando ?n = m
OjoHay lenguajes inherentemente ambiguos
Regresando a operaciones con
Además podemos definir
y = ( , Σ, , )G1 V1 P1 S1 = ( , Σ, , )G2 V2 P2 S2
= ( ∪ , Σ, ∪ ∪ { → + }, )GU V1 V2 P1 P2 SU S1 S2 SU
= ( ∪ , Σ, ∪ ∪ { → }, )GC V1 V2 P1 P2 SC S1S2 SC
= ( , Σ, ∪ { → |ϵ}, )G∗ V1 P1 S∗ S1S∗ S∗
¿A qué lenguajes corresponden?
G = (V , Σ, ∅, S)
G = (V , Σ, {S → ϵ}, S)
G = (V , Σ, {S → a}, S)
EntoncesTenemos las operaciones de composición para cualquier GLC
Tenemos lenguajes básicos como GLC
Podemos usar las operaciones sobre las GLR
¡Podemos generar todos los lenguajes regulares congramáticas!
Convertir de AF a GLC
q₀ q₁b
a a
b
a bQ
q0 q0 q1
q1 q1 q0
se transforma en , se transforma en q0 A q1 B
a bV
A A B
B B A
con , reescribir las transicionesa reglas
G = ({A, B}, {a, b}, P , A)
A → aAA → bBB → aBB → bA
Incluir las �nales, que lleguen a un estado �nal
A → bB → a
Derivación por la izquierda yderechaababa
A⇒ aA⇒ abB⇒ abaB⇒ ababA⇒ ababa
EntoncesDado un AF podemos encontrar una GLC
¿Dada una GLC podemos encontrar un AF?
Cuidado... mucho cuidado
Sí y Solo sí tienen la misma forma A → cB|a
con , reescribir las reglas atransiciones
G = ({A, B}, {a, b}, P , A)
A → aA δ(A, a) = A
A → bB δ(A, b) = B
B → aB δ(B, a) = B
B → bA δ(B, b) = A
A → b δ(A, b) = F
B → a δ(A, a) = F
Son una tupla , donde:
Gramáticas regularesG = (V , Σ, P , S)
es otro alfabeto que denominamos símbolos no terminales(generalmente en mayúsculas)
es un alfabeto que denominamos símbolos terminales es conjunto de reglas con la forma donde y
que denominamos símbolo inicial
V
ΣP A → aB|a a ∈ ΣA, B ∈ VS ∈ V
Jerarquía de ChomskyLenguaje Gramática Máquina
Independiente de contexto Tipo 2, ??
Regular Tipo 3, Autómata finito
V → α
V → aA
Autómata de pilaUn AFND- + una pilaϵ
No confundir
Autómata de pilaEs una tupla (Q, Σ, Γ, , , A, δ)q0 Z0
conjunto finito de estados alfabeto de cadenas reconocidas alfabeto de pila estado inicial símbolo inicial de la pila
estados finales función de transición
QΣΓq0Z0Aδ Q × (Σ ∪ {ϵ}) × Γ → Q × Γ∗
Un AFND- + una pilaϵ
AF vs AFND vs AFND- vs APϵ
AF AFND AFND- APϵ
Q Q Q Q
Σ Σ Σ ΣΓ
∈ Qq0 ∈ Qq0 ∈ Qq0 ∈ Qq0
∈ ΓZ0
A ⊆ Q A ⊆ Q A ⊆ Q A ⊆ Q
Q × Σ → Q Q × Σ → 2Q Q × (Σ ∪ {ϵ}) → 2Q Q × (Σ ∪ {ϵ}) × Γ → Q × Γ∗
q₀ q₁ q₂b,A/ε
b,A/εa,Z₀/AZ₀
a,A/AA
ε,Z₀/Z₀
Posición inicialEstado: Pila:
q0Z0
OperacionesPush: Pop: Sin operación:
A/BAA/ϵ
A/A
q₀ q₁ q₂b,A/ε
b,A/εa,Z₀/AZ₀
a,A/AA
ε,Z₀/Z₀
Z0
¿Qué recuerda el AP?
ivanvladimir@gmail.com ivanvladimir.github.io ivanvladimir
¿Qué es un computadora? by is licensed under a.
Creado a partir de la obra en.
Ivan V. Meza RuizCreative Commons Reconocimiento 4.0 Internacional License
http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/intro.html
top related