Vous êtes sur la page 1sur 28

GRAMATICA LIBRE DE

CONTEXTO

LENGUAJE LIBRE DE CONTEXTO


Definicin informal de
Gramtica
Es el mecanismo empleado para establecer la
estructura de un lenguaje, es decir las sentencias
que lo forman.
Consiste de un conjunto de reglas sintcticas que
establecen la forma en la que se pueden combinar
los smbolos 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 CONJUNCIN y una ORACION.
Gramticas Formales

Gramtica regulares.
Gramticas independientes de contexto.
Gramticas sensibles al contexto.
Gramtica sin restricciones o de estructura de frase.
Tipos de Gramticas
N. Chomsky clasifica las
gramticas en cuatro tipos:
Gramticas sin restricciones o
gramticas de estructura de frases
(Tipo 0).
Gramticas sensibles al contexto
(Tipo 1).
Gramticas independientes de
contexto (Tipo 2).
Gramticas regulares (Tipo 3).

Tipo 0
Tipo 1 Tipo 2 Tipo 3
Tipos de Lenguajes

Conforme a la clasificacin 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).
Teora de Autmatas - Lenguajes
Formales
(Mquinas abstractas - Gramticas Formales)

equivale

Gramtica Mquina

describe reconoce
genera genera

Lenguajes
Teora de Autmatas - Lenguajes
Formales
(Mquinas abstractas - Gramticas Formales)
Gramticas Lenguajes Mquinas

Sin restricciones Sin restricciones Mquina de


o de Tipo 0 o de Tipo 0 Turing

Autmata
Sensible al Sensible al linealmente
contexto o de contexto o de acotado
Tipo 1 Tipo 1
Libre de Libre de Autmata a pila
contexto o de contexto o de
Tipo 2 Tipo 2
Regular o de Regular o de Autmata Finito
Tipo 3 Tipo 3
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
Xy
X
Se interpreta como puede ser, se compone
de, es sustituida por.

\ Se interpreta como o

Se interpreta como derivar, produce o


genera
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
MaMa
Nz
NbNb
Nz
El termiano independiente del contexto refleja que ,
como el lado izq de cada regla de reescritura
unicamente puede contener un solo no teminal, la regla
puede aplicarse sin importar el contexto donde se
encuentre dicho no terminal.
rbol de derivacin

Un rbol de anlisis sintctico o rbol de derivacin es


un rbol cuyos nodos representan terminales y no
terminales de la gramtica, donde el nodo raz es el
smbolo de inicio y los hijos de cada nodo no terminal
son smbolos que remplazan a ese no terminal en la
derivacin.
Ningn smbolo terminal puede ser nodo interior del
rbol , ni ningn smbolo no terminal puede ser una
hoja.
S SMNZ
MxZb
Nb
M N Z ZXN
Zba
Xx
x Z b b X N Nabx

b a x 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
MSY
Xx
Yy
FORMA NORMAL DE
GREIBACH
Se dice que una gramtica independiente del contexto (GIC) est
en Forma normal de Greibach (FNG), si todas y cada una de sus
reglas de produccin tienen un consecuente que empieza por un
carcter del alfabeto, tambin llamado smbolo 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 smbolo auxiliar. Por su parte, "a"
es el mencionado comienzo del consecuente y, por tanto, un
smbolo terminal. Finalmente, "w" representa una concatenacin
genrica de elementos gramaticales, esto es, una sucesisin
exclusivamente de auxiliares, inclusive, pudiera ser la palabra
vaca; en este caso particular, se tendra una regla llamada
"terminal":
A>a
Definicin: Una Gramtica 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 smbolo no Terminal, a es
un smbolo Terminal y B1B2..Bk son
smbolos no Terminales.
Ejemplo de FNG:
S aSB | aB
B b
ELIMINACION DE FACTORES
COMUNES IZQUIERDOS
Se trata de rescribir las producciones de la gramtica
con igual comienzo para retrasar la decisin hasta
haber visto lo suficiente de la entrada como para elegir
la opcin correcta
Procedimiento:

A := 1 |2 | | n | i

A := A | i
A := 1 | 2 | | n
ELIMINACION DE
RECURSIVIDAD IZQUIERDA
Tipos de recursividad
Directa. Una gramtica G es recursiva si
tiene alguna regla de produccin 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
Eliminacin 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
ELIMINACIN DE
AMBIGEDAD
Una gramtica ambigua permite ms de una
derivacin para la misma forma sentencial por lo que
tambin habr ms de un rbol de derivacin para la
misma. Por ello basta con encontrar dos rboles
derivacin distintos para la misma forma sentencial
para demostrar que una gramtica es ambigua.
Para eliminar este tipo de ambigedad, es necesario,
primero eliminar:

- Factores comunes izquierdos inmediatos y No-


inmediatos.
- Recursividad izquierda inmediata y No-inmediata.
TIPOS DE AMBIGEDAD:
Dentro del estudio de gramticas existen dos
tipos fundamentales de ambigedad, los cuales
son:

Ambigedad Inherente: Las gramticas que


presentan este tipo de ambigedad no pueden
utilizarse para lenguajes de programacin, ya que
por ms transformaciones que se realicen sobre
ellas, NUNCA se podr eliminar completamente la
ambigedad que presentan.
Ambigedad Transitoria: Este tipo de
ambigedad puede llegar a ser eliminada
realizando una serie de transformaciones sobre la
gramtica original. Una vez que se logra lo
anterior, la gramtica queda lista para ser
reconocida por la mayor parte de los analizadores
sintcticos.
Autmata de pila

Un autmata con pila o autmata


de pila o autmata a pila o
autmata apilador es un modelo
matemtico de un sistema que
recibe una cadena constituida por
smbolos de un alfabeto y determina
si esa cadena pertenece al lenguaje
que el autmata reconoce.
Los Autmatas de Pila, que al igual que un
Autmata Finito, cuenta con un flujo de entrada
y un flujo de control que puede encontrarse en
uno de entre un nmero finito de estados.
Uno de estos estados se designa como el inicial
y por lo menos un estado de aceptacin
La principal diferencia es que los Autmatas de
pila cuentan justamente con una pila en donde
se puede almacenar informacin para
recuperarla ms tarde
Los smbolos que pueden almacenarse en esta pila se
conocen como smbolos de pila de la maquina,
constituyen un conjunto finito que puede incluir algunos
smbolos definiendo el alfabeto de la maquina y quiz
algunos smbolos adicionales que se utilizan como
marcas internas.
Si una maquina inserta un smbolo especial en la pila
antes de efectuar algn otro clculo, entonces ese
smbolo en la cima de la pila puede usarse como
indicador de pila vaca para clculos posteriores, dicho
smbolo es #
Caractersticas
La Pila funciona de manera que el ltimo carcter que se
almacena en ella es el primero en salir (ordenLIFO).
Un aspecto crucial de la pila es que slo 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 estn 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
segn las necesidades de diseo del autmata
Principio de Pre Anlisis

Tcnica que permite a los autmatas de pila observar


uno o varios smbolos ms all de donde se encuentra
la cabeza lectora del autmata, pero sin leerlos
realmente.
Esta tcnica permite superar el no determinismo de
algunos autmatas de pila.
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 tcnica utililzada para


demostrarlo

Vous aimerez peut-être aussi