Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 8 Gramaticas Contexto Libre
Tema 8 Gramaticas Contexto Libre
Tema 8.-
8.- Gramáticas de Contexto Libre
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
3
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
S ⇒1 identificador = E
⇒2 identificador = E + E
⇒3 identificador = E + E ∗ E
⇒6 identificador = E + número ∗ E
⇒5 identificador = E + número ∗ identificador
⇒5 identificador = identificador + número ∗ identificador
4
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
5
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
S ⇒1 a A a
⇒2 a a A a a
⇒3 a a b B b a a
⇒4 a a b b B b b a a
⇒5 a a b b c b b a a
7
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
Ambigüedad
• Definición
• Gramática de las expresiones aritméticas
• Problema del “else danzante”
• Lenguajes “intrínsecamente” ambiguos
8
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
Ambigüedad
• Definición
G es una gramática ambigua si ∃ x ∈ VT* que posee
o dos derivaciones por la izquierda diferentes
o dos derivaciones por la derecha diferentes
o dos árboles sintácticos diferentes
9
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
S ⇒1 identificador = E
⇒2 identificador = E + E
⇒5 identificador = identificador + E
⇒3 identificador = identificador + E ∗ E
⇒6 identificador = identificador + número ∗ E
⇒5 identificador = identificador + número ∗ identificador
11
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
S ⇒1 identificador = E
⇒2 identificador = E ∗ E
⇒3 identificador = E + E ∗ E
⇒5 identificador = identificador + E ∗ E
⇒5 identificador = identificador + número ∗ E
⇒5 identificador = identificador + número ∗ identificador
12
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
13
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
14
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
17
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
Árbol de la 2ª derivación
19
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
Derivación
Árbol sintáctico
S ⇒2 S2
⇒5 if C S
⇒1 if C S1
⇒3 if C if C S1 else S2
21
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
Ambigüedad
Lenguaje intrínsecamente ambiguo
L = {a i b i c j | i, j ≥ 1} ∪ {a i b j c j |i, j ≥ 1}
P 5= {
(1) S → AC (6) C → c
(2) S → BD (7) B → a B
(3) A → a A b (8) B → a
(4) A → a b (9) D → b D c
(5) C → c C (10) D → b c
}
22
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
23
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
P’7 = {
(1) S → A B
(2) S → A b
(3) A → a C
(4) B → b C a
(6) C → b
(8) E → c a
}
29
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
P’7 = {
(1) S → A B
(2) S → A b
(3) A → a C
(4) B → b C a
(6) C → b
(8) E → c a
}
31
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
P’7 = {
(1) S → A B
(2) S → A b
(3) A → a C
(4) B → b C a
(6) C → b
(8) E → c a E y c no son accesibles
}
32
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
P’’7 = {
(1) S → A B
(2) S → A b
(3) A → a C
(4) B → b C a
(6) C → b
}
33
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
• Observación
o Si estos pasos se aplican en orden inverso
entonces no se garantiza que se eliminen
todos los símbolos inútiles
34
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
39
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
[1] inicio
[2] Viejo ← ∅
[3] Nuevo ← {A|A ∈ V N ∧ ∃ A → ε ∈ P }
[4] mientras (Nuevo ≠ Viejo) hacer
[5] Viejo ← Nuevo
[6] Nuevo ← Viejo ∪ {A|A ∈ V N ∧ ∃ A → α ∈ P ∧ α ∈ Viejo * }
[7] fin mientras
[8] Anulables ← Nuevo
[9] fin
40
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
41
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
Gramática sin ε
• No posee reglas - ε
• o sólo posee la regla S ε y S no aparece en la parte derecha de
ninguna regla de producción
42
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
43
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
P8={
(1) S → A D (2) S → B
(3) A → C D E
(4) B → C E
(5) C → S (6) C → a (7) C → ε
(8) D → A (9) D → b
(10) E → S (11) E → a (12) E → ε
}
45
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
47
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
48
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
} La regla B → ε no se añade 50
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
} 52
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
56
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
57
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
58
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
59
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
E T
T F
61
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
} NT = {T,F}
NF = {F}
63
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
66
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
67
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
68
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
P' = {
S' → ε| A D | C E | a | c
S→AD|CE|a|c
A→CDE|DE|CD|b
B→CE|AD|a|c •Observación
C→AD|CE|a|c
•Símbolos no accesibles:
D→CDE|DE|CD|b
•S y B
E→AD|CE|a|c
• No están en la parte
} derecha de ninguna regla
71
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
72
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
75
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
P={
S → identificador = E
E → E + T | T * F | ( E ) | identificador
dentificador | número
T → T ∗ F | ( E ) | identificador | número
F → ( E ) | identificador | número
}
77
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
Regla de S
P’ = {
S → identificador = E
}
78
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
Reglas de E
P ’= {
S → identificador = E
E → T * F | ( E ) | identificador
dentificador | número |
T * F E’ | ( E ) E’ | identificador
dentificador E’ | número E’
E’ → + T | + T E’
}
79
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
(3) A → B b
(4) A → S d
(5) A → a
(6) B → S b
(7) B → A a
} 85
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
86
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
87
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
P’ = {
S→AB | c
A → B b | c d | a | B b A' | c d A' | a A'
A' → B d | B d A’
}
88
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
89
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
• En general,
oSi A tiene dos reglas de la forma A → α β1 | α β2
oy la cadena a analizar comienza por una cadena no vacía derivada a
partir de α, no se sabe si expandir A a α β1 o a α β 2
o Por tanto, se hace la siguiente transformación
A → α A’
A’ → β1 | β2
93
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
Ejemplo
P={
S→ABc|ABde|ABdf|ABS
A→a
B→b
}
95
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
98
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
99
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
donde α ∈ VN*
100
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
101
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
103
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
105
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
106
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
• Algoritmo
o Paso 1: aplicación del algoritmo que elimina la
recursividad general por la izquierda.
o Paso 2: transformación de las reglas de los símbolos
no terminales de la gramática original.
o Paso 3: transformación de las reglas de los símbolos
no terminales obtenidos al eliminar la recursividad
inmediata por la izquierda.
108
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
111
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
113
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
115
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
118
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
119
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
120
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
121
Teoría de Autómatas y Lenguajes Formales Tema 8.- Gramáticas de Contexto Libre
Tema 8.-
8.- Gramáticas de Contexto Libre