60
Gramáticas libres de contexto en su 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 y puede derribar el árbol— Albert Espinosa Ivan Meza

Gramáticas libres de contexto en su habitát

Embed Size (px)

Citation preview

Page 1: Gramáticas libres de contexto en su habitát

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

Page 2: Gramáticas libres de contexto en su habitát

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

Page 3: Gramáticas libres de contexto en su habitát

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 → ∅

Page 4: Gramáticas libres de contexto en su habitát

Derivaciones para: a + (ab)

Page 5: Gramáticas libres de contexto en su habitát

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)

Page 6: Gramáticas libres de contexto en su habitát

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)

Page 7: Gramáticas libres de contexto en su habitát

Derivaciones diferentes

¿Árboles?

Page 8: Gramáticas libres de contexto en su habitát

Árbol primera derivación

a b

B B

a R R

B ( R )

R + R

R

Page 9: Gramáticas libres de contexto en su habitát

Árbol segunda derivación

a b

B B

a R R

B ( R )

R + R

R

Page 10: Gramáticas libres de contexto en su habitát

a b

B B

a R R

B ( R )

R + R

R

a b

B B

a R R

B ( R )

R + R

R

Page 11: Gramáticas libres de contexto en su habitát

Dos derivaciones diferentes producen el mismo árbol

Page 12: Gramáticas libres de contexto en su habitát

Derivaciones para: a + ab

Page 13: Gramáticas libres de contexto en su habitát

Derivación a la izquierdaa + ab

R⇒ R + R⇒ B + R⇒ a + R⇒ a + RR⇒ a + BR⇒ a + aR⇒ a + aB⇒ a + ab

Page 14: Gramáticas libres de contexto en su habitát

¡¡Segunda derivación a laizquierda!!a + ab

R⇒ RR⇒ R + RR⇒ B + RR⇒ a + RR⇒ a + BR⇒ a + aR⇒ a + aB⇒ a + ab

Page 15: Gramáticas libres de contexto en su habitát

Derivaciones diferentes

¿Árboles?

Page 16: Gramáticas libres de contexto en su habitát

Árbol primera derivación

a b

a B B

B R R

R + R

R

Page 17: Gramáticas libres de contexto en su habitát

Árbol segunda derivación

a a

B B b

R + R B

R R

R

Page 18: Gramáticas libres de contexto en su habitát

a b

a B B

B R R

R + R

R

a a

B B b

R + R B

R R

R

Page 19: Gramáticas libres de contexto en su habitát

Dos derivaciones diferentes producen dos árboles diferentes

Page 20: Gramáticas libres de contexto en su habitát

¡¡Dos derivaciones diferentesproducen dos árbolesdiferentes!!

Page 21: Gramáticas libres de contexto en su habitát

A esta propiedad de que una cadena tiene dos "signi�cados"diferentes le llamamos

Ambigüedad

Page 22: Gramáticas libres de contexto en su habitát

veo al gato con el telescopio

¿quien tiene el telescopio?

Page 23: Gramáticas libres de contexto en su habitát

S

VP

veo NP PP

al gato con el telescopio

S

VP

veo NP

NP PP

al gato con el telescopio

Page 24: Gramáticas libres de contexto en su habitát

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

Page 25: Gramáticas libres de contexto en su habitát

Oye, pues mi hijo en su nuevo trabajo se siente como pez en elagua.¿Qué hace?Nada

Page 26: Gramáticas libres de contexto en su habitát

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

Page 27: Gramáticas libres de contexto en su habitát

Reducción de gramáticasambiguasMalas noticias: no existe un algoritmo para reducirgramáticas

Pero hay algunas estrategias

Page 28: Gramáticas libres de contexto en su habitát

Elegir un agrupamiento paramismo operador: izquierda oderechaa + a + a

Page 29: Gramáticas libres de contexto en su habitát

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 → ∅

Page 30: Gramáticas libres de contexto en su habitát

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

Page 31: Gramáticas libres de contexto en su habitát

Árbol primera derivación

E

E + T

T T F

F F B

B B b

a a

Page 32: Gramáticas libres de contexto en su habitát

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

Page 33: Gramáticas libres de contexto en su habitát

Árbol segunda derivación

E

E + T

T T F

F F B

B B b

a a

Page 34: Gramáticas libres de contexto en su habitát

Intentar con: a ∗ +(a ∗ b)∗

Page 35: Gramáticas libres de contexto en su habitát

Intentar con: ∪anbncmdm anbmcmdn

Page 36: Gramáticas libres de contexto en su habitát

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

Page 37: Gramáticas libres de contexto en su habitát

OjoHay lenguajes inherentemente ambiguos

Page 38: Gramáticas libres de contexto en su habitát

Regresando a operaciones con

Page 39: Gramáticas libres de contexto en su habitát

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∗

Page 40: Gramáticas libres de contexto en su habitát

¿A qué lenguajes corresponden?

G = (V , Σ, ∅, S)

G = (V , Σ, {S → ϵ}, S)

G = (V , Σ, {S → a}, S)

Page 41: Gramáticas libres de contexto en su habitát

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!

Page 42: Gramáticas libres de contexto en su habitát

Convertir de AF a GLC

q₀ q₁b

a a

b

Page 43: Gramáticas libres de contexto en su habitát

a bQ

q0 q0 q1

q1 q1 q0

Page 44: Gramáticas libres de contexto en su habitát

se transforma en , se transforma en q0 A q1 B

a bV

A A B

B B A

Page 45: Gramáticas libres de contexto en su habitát

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

Page 46: Gramáticas libres de contexto en su habitát

Derivación por la izquierda yderechaababa

A⇒ aA⇒ abB⇒ abaB⇒ ababA⇒ ababa

Page 47: Gramáticas libres de contexto en su habitát

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

Page 48: Gramáticas libres de contexto en su habitát

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

Page 49: Gramáticas libres de contexto en su habitát

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

Page 50: Gramáticas libres de contexto en su habitát

Jerarquía de ChomskyLenguaje Gramática Máquina

Independiente de contexto Tipo 2, ??

Regular Tipo 3, Autómata finito

V → α

V → aA

Page 51: Gramáticas libres de contexto en su habitát

Autómata de pilaUn AFND- + una pilaϵ

Page 52: Gramáticas libres de contexto en su habitát

No confundir

Page 53: Gramáticas libres de contexto en su habitát

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ϵ

Page 54: Gramáticas libres de contexto en su habitát

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 × Γ∗

Page 55: Gramáticas libres de contexto en su habitát

q₀ q₁ q₂b,A/ε

b,A/εa,Z₀/AZ₀

a,A/AA

ε,Z₀/Z₀

Page 56: Gramáticas libres de contexto en su habitát

Posición inicialEstado: Pila:

q0Z0

Page 57: Gramáticas libres de contexto en su habitát

OperacionesPush: Pop: Sin operación:

A/BAA/ϵ

A/A

Page 58: Gramáticas libres de contexto en su habitát

q₀ q₁ q₂b,A/ε

b,A/εa,Z₀/AZ₀

a,A/AA

ε,Z₀/Z₀

Z0

Page 59: Gramáticas libres de contexto en su habitát

¿Qué recuerda el AP?

Page 60: Gramáticas libres de contexto en su habitát

[email protected] 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