Académique Documents
Professionnel Documents
Culture Documents
Olger V
Universidad de Costa Rica, Escuela de Ciencias de la Computacin e Informtica,
San Jos, Costa Rica
olger031@hotmail.com
Resumen
Este artculo trata de exponer, de manera resumida, dos de los temas analizados en el curso de Autmatas
y Compiladores, impartido en la Universidad de Costa Rica, especficamente en la Escuela de Ciencias de
la Computacin e Informtica, durante el segundo semestre del ao 2009. Tal artculo se divide en varias
secciones las cuales son: una introduccin a la temtica del artculo y la utilidad de los temas tratados, un
desarrollo donde se detallan los temas propuestos, una seccin de conclusiones donde se resume la
utilidad del contenido de los temas, y una seccin final de referencias.
Palabras claves: Gramtica, Factorizacin, Eliminacin de la Recursividad.
INTRODUCCIN
Ante la importancia que representan los analizadores sintcticos en la creacin de compiladores, es
indispensable conocer que el principal objeto de su anlisis, que es una gramtica independiente del
contexto, no puede ser interpretada de buena manera, por un analizador, si no sigue un conjunto de
restricciones para ello. Tanto la factorizacin, como la eliminacin de la recursividad de una gramtica,
son mtodos que hacen posible que una gramtica que no es correcta para un analizador llegue a serlo, el
primero se utiliza para hacer posible el anlisis sintctico de tipo predictivo. El segundo es sumamente
importante porque los mtodos de anlisis sintctico descendente no son capaces de manejar gramticas
recursivas por la izquierda, lo que requiere la eliminacin de recursividad. A continuacin se tratan
ambos mtodos, que hacen que una gramtica se convierta en una gramtica correcta para el anlisis
sintctico, se detallan sus casos de uso y sus algoritmos.
DESARROLLO
2.1 FACTORIZACIN UNA GRAMTICA LIBRE DE CONTEXTO
Como se mencion anteriormente en la introduccin de este artculo, el mtodo de factorizacin lo que
permite es una transformacin gramatical til para el anlisis sintctico de tipo predictivo. Esto ocurre
cuando se tienen dos producciones alternativas para un mismo no terminal y no s sabe cual de ellas
utilizar para ampliarlo. Un ejemplo que permite visualizar este problema es el representado por las
producciones:
A 1 | 2 = A 1
A 2
Aqu si se pretende expandir el no terminal A, no se sabe si expandirlo a 1 o a 2, ya que ambas
empiezan con la misma cadena no vaca .
Para resolver este problema se plantea un algoritmo general de factorizacin, este recibe una gramtica, y
produce como salida una gramtica factorizada por la izquierda. Consiste en tomar cada no terminal
igual, sea A el no terminal del ejemplo planteado, y encontrar el prefijo ms largo que est presente en
todas las producciones para A, es decir, en el ejemplo, el smbolo , ya que ste es el smbolo comn en
las dos producciones. Si el prefijo comn no es igual a , que se cumple en el ejemplo pues es , entonces
se sustituye:
A 1 | 2 | | n |
CONCLUSIONES
Ante la posibilidad, en la vida real, de encontrar gramticas independientes del contexto, que no se
ajusten a los requerimientos de los analizadores sintcticos, es necesario conocer cuales son las formas de
lograr que esas gramticas, lleguen a cumplir esos requerimientos. Los mtodos de factorizacin y
eliminacin de la recursividad son mtodos sencillos y relativamente fciles de implementar, en el
presente artculo se consigui ms que describirlos, llegarlos a entender y saber en que casos son
necesarios y cual es el procedimiento que cada uno sigue.
REFERENCIAS
1.