Está en la página 1de 6

Universidad Nacional de Ingeniería

UNI-IES

Ing. Computación
Teoría de la Computación
3t1-Co
Tema: Gramática Libre de Contexto.
Integrantes: Ismary Junieth Flores Orozco.
Jesús Enmanuel Hernández Castro.
Docente: Hilda Saavedra Jirón

31 de marzo del 2023


Gramática libre de contexto
Una gramática independiente del contexto (GIC) es una tupla que esta
compuesta por los siguientes elementos:
G=(ΣT, ΣN, S, P)
ΣT= Alfabeto de símbolos terminales.
ΣN= Alfabeto de símbolos no terminales.
S= Símbolo inicial de la gramática.
P= producción.
Una gramática libre de contexto (o de contexto libre) es una gramática
formal en la que cada regla de producción es de la forma:
V → w
Donde V es un símbolo no terminal y w es una cadena de terminales y/o no
terminales. El término libre de contexto se refiere al hecho de que el no
terminal V puede siempre ser sustituido por w sin tener en cuenta el contexto
en el que ocurra. Un lenguaje formal es libre de contexto si hay una gramática
libre de contexto que lo genera.
El lenguaje definido por una gramática independiente de contexto se
denomina lenguaje independiente del contexto.
Las producciones de una gramática se utilizan para derivar cadenas. En este
proceso, las producciones se utilizan como reglas de reescritura.
Ejemplos:

1. Una simple gramática donde | es un operador lógico y es usado


S → aSb | ε
libre de contexto es para separar múltiples opciones para el
mismo no terminal, ε indica una cadena
vacía. Esta gramática genera el lenguaje
no regular
2. Aquí hay una gramática libre
de contexto para expresiones
S → x | y | z | S + S | S - S | S *S | S/S | (S)
enteras algebraicas
sintácticamente correctas sobre
las variables x, y y z:
T genera todas las cadenas
3. Una gramática libre de contexto S→U|V
con la misma cantidad de
para un lenguaje consistente en
U → TaU | TaT letras a que b, U genera
todas las cadenas que se pueden
todas las cadenas con más
formar con las letras a y b, V → TbV | TbT
letras a, y V todas las
habiendo un número diferente de
T → aTbT | bTaT | ε cadenas con más letras b.
una que de otra, sería:

Ambigüedades de las gramáticas libre de contexto:


En Ciencias de la Computación, una gramática ambigua es un Gramática libre
del contexto para la que existe una cadena que puede tener más de una
derivación a la izquierda, mientras una gramática no ambigua es una
Gramática libre del contexto para la que cada cadena válida tiene una única
derivación a la izquierda.
Una gramática es ambigua cuando se puede llegar la misma palabra pero con
diferentes recorridos/Caminos

transformación de las gramáticas libre de contexto


Las transformaciones en las gramáticas libres de contexto (GLC) son reglas
que permiten modificar una GLC existente para obtener una nueva GLC
equivalente que reconozca un lenguaje diferente o que presente una estructura
sintáctica distinta. Las transformaciones más comunes son las siguientes:
Eliminación de símbolos inútiles: Esta transformación consiste en eliminar los
símbolos no terminales y las reglas de producción que no tienen ninguna
posibilidad de aparecer en una cadena terminal del lenguaje generado por la
GLC. Para ello se utiliza el algoritmo conocido como "eliminación de
símbolos inútiles".
Eliminación de reglas inútiles: Esta transformación consiste en eliminar las
reglas de producción que no contribuyen a generar cadenas terminales del
lenguaje generado por la GLC. Para ello se utiliza el algoritmo conocido como
"eliminación de reglas inútiles".
Eliminación de producciones anidadas: Esta transformación consiste en
eliminar producciones anidadas que se presenten en una misma regla. Por
ejemplo, si la regla de producción es A -> A B, se puede transformar en A ->
B, lo que evita la recursión infinita.
Eliminación de producciones unitarias: Esta transformación consiste en
eliminar producciones unitarias que se presenten en una misma regla. Por
ejemplo, si la regla de producción es A -> B y B -> C, se puede transformar en
A -> C, lo que simplifica la gramática.
Factorización de reglas: Esta transformación consiste en factorizar las reglas
de producción que tengan la misma secuencia de símbolos no terminales en su
lado derecho. Por ejemplo, si la regla de producción es A -> B C | B D, se
puede transformar en A -> B E y E -> C | D, lo que reduce el número de reglas
y aumenta la eficiencia del análisis sintáctico.
En resumen, las transformaciones en las gramáticas libres de contexto son
técnicas que permiten obtener gramáticas equivalentes más simples y
eficientes para describir la estructura sintáctica de un lenguaje.
Tipo 0 = No restringida o recursivamente e numerables.
Tipo 1 = Dependiente del contexto.
Topo 2 = Libre de contexto.
Tipo 3 = Regular.
Cada gramática genera un lenguaje diferente
Simplificación de gramática libre de contexto
- Eliminación de producciones Nulas (Quiere decir las
producciones que deriven en la cadena basia)
- Eliminación de producciones Unitarias.
- Eliminación de símbolos y producciones inútiles
El objetivo al simplificar una gramática de contexto libre es obtener una
gramática equivalente, pero en la que se asegura que cada derivación es
útil, y que no obliga a aplicar ningún paso innecesario.
Gramática libre de contexto en formas formales:
Se llama gramática formal a una cuádrupla definida sobre un alfabeto Σ de la
forma:
G = ( VT , VN , S , P )
También puede ser representada así: G = (Σ, N, P, S) o G = (V,T,P,S)
(En el que podemos notar que el orden y las letras que representan cada
termino de la tupla pueden variar, pero no su significado)
donde:
VT = {conjunto finito de símbolos terminales}. Sus elementos se suelen
representar con
letras minúsculas.
VN = {conjunto finito de símbolos no terminales} (aparecen en los ejemplos
encerrados
entre <>). Sus elementos se suelen representar con letras mayúsculas.
S = es el símbolo inicial de la gramática y pertenece a VN.
P = {conjunto de las producciones gramaticales o de reglas de derivación}
Hay que tener en cuenta que:
• S ∈ ΣN
• ΣT ∩ ΣN = Ø
• Σ=ΣT ∪ ΣN
La razón de notar los elementos del alfabeto V con letras mayúsculas es para
no confundirlos con los símbolos terminales. Las cadenas del alfabeto (V ∪T)
se notan con letras griegas para
no confundirlas con las cadenas del alfabeto T, que las denotaremos como
minúsculas: u, v, x
Una gramática se usa para generar las distintas palabras de un determinado
lenguaje. Esta generación se hace mediante una aplicación sucesiva de reglas
de producción comenzando por el símbolo de partida S.

También podría gustarte