GRAMATICA LIBRE DE
CONTEXTO
LENGUAJE LIBRE DE CONTEXTO
Marcela Hernandez
Definición informal de
Gramática
Es el mecanismo empleado para establecer la estructura de un
lenguaje, es decir las sentencias que lo forman.
Consiste de un conjunto de reglas sintácticas que establecen la forma
en la que se pueden combinar los símbolos del alfabeto:
ORACION es un SUJETO y un PREDICADO.
SUJETO es una FRASE NOMINAL.
FRASE NOMINAL es un GRUPO NOMINAL y un CALIFICATIVO que puede o no
estar.
GRUPO NOMINAL es un ARTICULO que puede no estar y un NOMBRE.
CALIFICATIVO es un ADJETIVO o una CONJUNCIÓN y una ORACION.
Marcela Hernandez
Gramáticas Formales
Gramática regulares.
Gramáticas independientes de
contexto.
Gramáticas sensibles al contexto.
Gramática sin restricciones o de
estructura de frase.
Marcela Hernandez
Tipos de Gramáticas
N. Chomsky clasifica las gramáticas en cuatro
tipos:
Gramáticas sin restricciones o gramáticas de
estructura de frases (Tipo 0).
Gramáticas sensibles al contexto (Tipo 1).
Gramáticas independientes de contexto (Tipo 2).
Gramáticas regulares (Tipo 3).
Tipo 0
Tipo 1
Tipo 2
Marcela Hernandez
Tipo 3
Tipos de Lenguajes
Conforme a la clasificación de N. Chomsky, los
lenguajes se clasifican en cuatro tipos:
Lenguajes sin restricciones (Tipo 0).
Lenguajes sensibles (o dependientes) al contexto
(Tipo 1).
Lenguajes independientes de contexto (Tipo 2).
Lenguajes regulares (Tipo 3).
Marcela Hernandez
equivale
Teoría de Autómatas - Lenguajes Formales
(Máquinas abstractas - Gramáticas Formales)
equivale
Gramática
Máquina
describe
reconoce
genera
genera
Lenguajes
Marcela Hernandez
Teoría de Autómatas - Lenguajes Formales
(Máquinas abstractas - Gramáticas Formales)
Gramáticas
Lenguajes
Máquinas
Sin restricciones o
de Tipo 0
Sin restricciones o
de Tipo 0
Máquina de Turing
Sensible al contexto
o de Tipo 1
Sensible al contexto
o de Tipo 1
Autómata
linealmente
acotado
Libre de contexto o
de Tipo 2
Libre de contexto o
de Tipo 2
Autómata a pila
Regular o de Tipo 3
Regular o de Tipo 3
Autómata Finito
Marcela Hernandez
GRAMATICA REGULAR
Es aquella cuyas reglas de reescritura tienen las
siguientes restricciones
1. El lado izq. debe de consistir en un solo no termnial
2. El lado derecho de un terminal o un terminal seguido
por un no terminal, o cadena vacia
Ej.
Z  yX
Xy
X λ
Marcela Hernandez
 Se interpreta como “puede ser”, “se compone de”, “es sustituida por”.
\ Se interpreta como “o”
 Se interpreta como “derivar”, “produce” o “genera”
Marcela Hernandez
Gramatica independiente del
contexto
A diferencia de las gramaticas regulares estas
gramaticas no tienen reestricciones con respecto al
lado derecho de sus reglas de reesritura, aunque se
quiere que el lado izq sea un no terminal.
S zMNz
MaMa
Nz
NbNb
Nz
Marcela Hernandez
El termiano independiente del contexto refleja
que , como el lado izq de cada regla de reescritura
unicamente puede contener un nolo no teminal,
la regla puede aplicarse sin importar el contexto
donde se encuentre dicho no terminal.
Marcela Hernandez
Árbol de derivación
Un árbol de análisis sintáctico o árbol de
derivación es un árbol cuyos nodos representan
terminales y no terminales de la gramática, donde
el nodo raíz es el símbolo de inicio y los hijos de
cada nodo no terminal son símbolos que
remplazan a ese no terminal en la derivación.
Ningún símbolo terminal puede ser nodo interior
del árbol , ni ningún símbolo no terminal puede
ser una hoja.
Marcela Hernandez
S
M
N
Z
x
b
b
a
b
SMNZ
MxZb
Nb
ZXN
Zba
Xx
Nabx
Z
X
x
Marcela Hernandez
N
a
b
x
FORMA NORMAL DE
CHOMSKY
Si L es un lenguaje independiente del contexto
que no tiene la cadena vacia, entonces existe una
gramatica G independiente del contexto tal que
G(L)=L y el lado derecho de cada regla de
reesritura en G consiste en un solo terminal o
exactamente dos no teminales.
S XM
MSY
Xx
Yy
Marcela Hernandez
FORMA NORMAL DE
GREIBACH
Se dice que una gramática independiente del contexto (GIC) está en
Forma normal de Greibach (FNG), si todas y cada una de sus reglas de
producción tienen un consecuente que empieza por un carácter del
alfabeto, también llamado símbolo terminal. Formalmente, cualquiera
de las reglas tendrá la estructura:
A − > aw
Donde "A" es el antecedente de la regla, que en el caso de las GIC debe
ser necesariamente un solo símbolo auxiliar. Por su parte, "a" es el
mencionado comienzo del consecuente y, por tanto, un símbolo
terminal. Finalmente, "w" representa una concatenación genérica de
elementos gramaticales, esto es, una sucesisión exclusivamente de
auxiliares, inclusive, pudiera ser la palabra vacía; en este caso
particular, se tendría una regla llamada "terminal":
A−>a
Marcela Hernandez
Definición: Una Gramática Libre de Contexto
(GLC) está en Forma Normal de Greibach (FNG) si
todas las producciones son de la forma:
A  aB1B2…..Bk
Donde A es un símbolo no Terminal, a es un
símbolo Terminal y B1B2…..Bk son símbolos no
Terminales.
Ejemplo de FNG:
S → aSB | aB
B →b
Marcela Hernandez
ELIMINACION DE FACTORES
COMUNES IZQUIERDOS
Se trata de rescribir las producciones de la
gramática con igual comienzo para retrasar la
decisión hasta haber visto lo suficiente de la
entrada como para elegir la opción correcta
Procedimiento:
A := αβ1 |αβ2 | … | αβn | δi
A := αA’ | δi
A’ := β1 | β2 | … | βn
Marcela Hernandez
ELIMINACION DE
RECURSIVIDAD IZQUIERDA
Tipos de recursividad
Directa. Una gramática G es recursiva si tiene alguna regla de
producción que sea recursiva por la izquierda
A := Aα
Indirecta. Si, a partir de una forma sentencial que empieza por
un no terminal se puede derivar una nueva forma no sentencial
donde reaparece al principio el no terminal
Aα =>* Aβα
Marcela Hernandez
Eliminación de la recursividad
Directa
A := Aα | β
A := βA’
A’ := αA’
A’ := ε
Indirecta
Ordenar No terminales: A1, A2, … An
For i := 1 To n Do
For j := 1 To i – 1 Do
Sustituir cada Ai := Aj β por Ai := α1 β | α2 β | αk β
donde Aj := α1 | α2 | … | αk producciones actuales de Aj
Eliminar la recursividad directa de Ai
Marcela Hernandez
ELIMINACION DE
AMBIGÛEDAD
Una gramática ambigua permite más de una derivación para
la misma forma sentencial por lo que también habrá más de
un árbol de derivación para la misma. Por ello basta con
encontrar dos árboles derivación distintos para la misma
forma sentencial para demostrar que una gramática es
ambigua.
Para eliminar este tipo de ambigüedad, es necesario, primero
eliminar:
- Factores comunes izquierdos inmediatos y No-inmediatos.
- Recursividad izquierda inmediata y No-inmediata.
Marcela Hernandez
TIPOS DE AMBIGÜEDAD:
Dentro del estudio de gramáticas existen dos tipos
fundamentales de ambigüedad, los cuales son:
Ambigüedad Inherente: Las gramáticas que
presentan este tipo de ambigüedad no pueden
utilizarse para lenguajes de programación, ya que por
más transformaciones que se realicen sobre ellas,
NUNCA se podrá eliminar completamente la
ambigüedad que presentan.
Ambigüedad Transitoria: Este tipo de ambigüedad
puede llegar a ser eliminada realizando una serie de
transformaciones sobre la gramática original. Una vez
que se logra lo anterior, la gramática queda lista para
ser reconocida por la mayor parte de los analizadores
sintácticos.
Marcela Hernandez
Autómata de pila
Un autómata con pila o autómata de pila o autómata a
pila o autómata apilador es un modelo matemático de
un sistema que recibe una cadena constituida por
símbolos de un alfabeto y determina si esa cadena
pertenece al lenguaje que el autómata reconoce.
Marcela Hernandez
Los Autómatas de Pila, que al igual que un
Autómata Finito, cuenta con un flujo de entrada y
un flujo de control que puede encontrarse en uno
de entre un número finito de estados.
Uno de estos estados se designa como el inicial y
por lo menos un estado de aceptación
La principal diferencia es que los Autómatas de
pila cuentan justamente con una pila en donde se
puede almacenar información para recuperarla
más tarde
Marcela Hernandez
Los símbolos que pueden almacenarse en esta
pila se conocen como símbolos de pila de la
maquina, constituyen un conjunto finito que
puede incluir algunos símbolos definiendo el
alfabeto de la maquina y quizá algunos símbolos
adicionales que se utilizan como marcas internas.
Si una maquina inserta un símbolo especial en la
pila antes de efectuar algún otro cálculo,
entonces ese símbolo en la cima de la pila puede
usarse como indicador de pila vacía para cálculos
posteriores, dicho símbolo es #
Marcela Hernandez
Características
La Pila funciona de manera que el último carácter que se almacena
en ella es el primero en salir (ordenLIFO).
Un aspecto crucial de la pila es que sólo podemos modificar el
“tope” de la pila, que es el extremo por donde entran o salen los
caracteres.
Los caracteres a la mitad de la pila no son accesibles sin quitar antes
los que están encima de ellos
La pila tendrá un alfabeto propio que puede o no coincidir con el
alfabeto de la palabra de entrada.
Esto se justifica porque puede ser necesario introducir en la pila
caracteres especiales usados como separadores según las
necesidades de diseño del autómata
Marcela Hernandez
Marcela Hernandez
Principio de Pre Análisis
Técnica que permite a los autómatas de pila
observar uno o varios símbolos más allá de donde
se encuentra la cabeza lectora del autómata, pero
sin leerlos realmente.
Esta técnica permite superar el no determinismo
de algunos autómatas de pila.
Marcela Hernandez
LENGUAJES NO REGULARES
Existen lenguajes no regulares, estos no pueden
ser representados por medio de una expresion ni
por un automata.
El Lema del bombeo es una técnica utililzada para
demostrarlo
Marcela Hernandez
Descargar

GRAMATICA LIBRE DE CONTEXTO