Este documento describe las gramáticas libres de contexto y cómo se pueden usar para definir lenguajes formales. Explica los componentes de una gramática libre de contexto y cómo se pueden derivar cadenas usando reglas de producción. También discute la ambigüedad y cómo diferentes derivaciones pueden producir árboles sintácticos diferentes para la misma cadena.
MAYO 1 PROYECTO día de la madre el amor más grande
Gramáticas libres de contexto en su habitát
1. Gramáticas libres de contexto en
su habitat
Avecestevasporlasramasparanotenerqueirdirectoalaraíz.Sobretodosilaraízesdolorosay
puedederribarelárbol—
AlbertEspinosa
Ivan Meza
2. Son una tupla , donde:
Gramáticas libres de contexto
G = (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
3. GLC para el lenguaje de ER
dondeG = ({R, B}, {a, b, ϵ, ∅}, P , R, +, ∗, (, )) P
R → B
R → R + R
R → R∗
R → RR
R → (R)
B → a
B → b
B → ϵ
B → ∅
25. Oye, pues mi hijo en su nuevo trabajo se siente como pez en el
agua.
¿Qué hace?
Nada
26. 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
29. Forzar preferencia: introducir
nuevas variables
donde
G = ({E, T , F , B}, {a, b, ϵ, ∅, P , R, +, ∗, (, )}, E)
P
E → T |E + T
T → F |T F
F → B|F ∗ |(E)
B → a
B → b
B → ϵ
B → ∅
30. Derivación por la izquierda
a + ab
E
⇒ E + T
⇒ T + T
⇒ F + T
⇒ B + T
⇒ a + T
⇒ a + T F
⇒ a + F F
⇒ a + BF
⇒ a + aF
⇒ a + aB
⇒ a + ab
40. ¿A qué lenguajes corresponden?
G = (V , Σ, ∅, S)
G = (V , Σ, {S → ϵ}, S)
G = (V , Σ, {S → a}, S)
41. Entonces
Tenemos 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 con
gramáticas!
45. con , reescribir las transiciones
a reglas
G = ({A, B}, {a, b}, P , A)
A → aA
A → bB
B → aB
B → bA
Incluir las nales, que lleguen a un estado nal
A → b
B → a
46. Derivación por la izquierda y
derecha
ababa
A
⇒ aA
⇒ abB
⇒ abaB
⇒ ababA
⇒ ababa
47. Entonces
Dado 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
48. con , reescribir las reglas a
transiciones
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
49. Son una tupla , donde:
Gramáticas regulares
G = (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 ∈ V
S ∈ V
50. Jerarquía de Chomsky
Lenguaje Gramática Máquina
Independiente de contexto Tipo 2, ??
Regular Tipo 3, Autómata finito
V → α
V → aA
53. Autómata de pila
Es 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
Σ
Γ
q0
Z0
A
δ Q × (Σ ∪ {ϵ}) × Γ → Q × Γ
∗
Un AFND- + una pilaϵ
54. 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 × Σ → 2
Q
Q × (Σ ∪ {ϵ}) → 2
Q
Q × (Σ ∪ {ϵ}) × Γ → Q × Γ
∗
60. 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 Ruiz
Creative Commons Reconocimiento 4.0 Internacional License
http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/intro.html