Documente Academic
Documente Profesional
Documente Cultură
CAPITULO IV
4.1. GRAMÁTICA
Para D. K. Rodrigo1 “La Gramática es el estudio de las reglas y principios que
regulan el uso de las lenguas y la organización de las palabras dentro de una
oración. También se denomina así al conjunto de reglas y principios que gobiernan
el uso de un lenguaje determinado; así, cada lenguaje tiene su propia gramática”
1
D.K. Rodrigo. Teoría de la Computación: Lenguajes, Autómatas y Gramáticas. Colombia: Unilibros, 2004.
pp. 81.
2
IBIB, 81
93
94
TIPOS DE GRAMÁTICAS
G’ = {
G={ es una GCSP.
94
95
G’ = {
G={ es una GLCP.
1. Terminal: símbolo básico a partir del cual se pueden formar las cadenas,
ejemplo: una letra, palabra reservada, *, etc. Los terminales son elementos
de un alfabeto Σ .
95
96
2. No terminal: es una variable sintáctica que puede ser sustituida por una
terminal, una expresión u otra variable sintáctica. Se les puede llamar
también variables
Cada producción o regla tiene el lado izquierdo una no terminal y del lado derecho
también llamado forma de frase puede tener una, terminal, una no terminal o una
concatenatción de terminales y no terminales así:
NT T
NT NT.T
NT T.NT
NT NT.NT
NT T.T
3
D.K. Rodrigo. Teoría de la Computación: Lenguajes, Autómatas y Gramáticas.
Colombia: Unilibros, 2004. pp. 83.
96
97
Ejemplo 4.12.
S aSb | ab
Explicación
El (|) indica un (ó), es decir que podemos sustituir ya sea por la primera o la
segunda “expresión”, en este caso si entramos por la segunda “expresión”
encontraremos la primera cadena del lenguaje que es (ab).
97
98
S aaa ab bbb
4.2.7.1. Derivación
Izquierda
Derivación
Derecha
98
99
Ejemplo 4.13.
Derivación izquierda:
Derivación derecha:
Ejemplo 4.14.
99
100
L= {ai b 2i , i>0}
S aAbb
A aAbb|
Se recomienda crear una tabla con lo valores de (i) y poder ver las posibles
cadenas.
i ai b 2i
1 abb
2 aabbbb
3 aaabbbbbb
Ejemplo 4.15.
S aaPb
P aPb|aP|
Ejemplo 4.16
100
101
B aBb|
A cA|
D aDc|C
C bC|
Ejemplo 4.17.
S 0C|1B
C 0C| 1A|
B 1B|0C|
A 0C
101
102
Gramática Independiente del contexto para evaluar una expresión aritmética que
contiene dígitos y el operador suma, es decir una expresión aritmética de suma.
P → P + P | dig
dig → 0|1|2|3…|9
Caso1
P P+P
P P+P+P
P dig + dig + dig
Caso2
P P+P
P P+P+P
P dig + dig + dig
Como se encontraron dos formas para evaluar la cadena, esto indica que la
gramática es ambigua. En la sección siguiente se aborda el tema de ambigüedad.
103
104
La raíz es el símbolo inicia, los nodos interiores son las no terminales y las hojas
son las terminales.
Caso1
P P+P
P P+P+P
P dig + dig + dig
Caso2
P P+P
P P+P+P
P dig + dig + dig
104
105
Para eliminar la ambiguedad debemos hacer que la cadena solo puedar ser
reconocido por la gramática con una sola derivación, o sea que se pueda formar
un solo árbol.
La gramática ambigua es
P → P + P | dig
dig → 0|1|2|3…|9
105
106
Ahora si evaluamos la misma cadena (5+7+2). Solo hay una forma de escoger P,
que es 5+7 y dig es 2, por lo tanto la siguiente derivación es por P de manera que
resultaría un árbol descendente por izquierda.
P → P + dig
P → P + dig + dig
P → dig + dig + dig
P P + T|P – T|T
T (P) |dig
P P–T
P T–T
P (P) – dig
106
107
P (P+T) – dig
P (P+dig) – dig
P (T+dig) – dig
P (dig+dig) – dig
P P+T
P T + (P)
P dig + (P–dig)
P dig + (T–dig)
P dig + (dig–dig)
P T
P (P)
P (P-T)
P (P+T-dig)
P (T+dig-dig)
P (dig+dig-dig)
Como se puede observar las cadenas anteriormente evaluadas solo tienen una
forma de ser representados a través de la gramática y por lo tanto solo se pueden
implementar mediante un árbol de análisis sintáctico, esto quiere decir que la
gramática es no ambigua.
P P + T|P – T|T
107
108
T T*K| T/k |K
K dig| (P)
P P+T
P P+T*K
P T+K*dig
P K+dig*dig
P dig+dig*dig
P T
P K*T
P K*T/K
P K*K/K
P dig*dig/dig
108