Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
6 45
*
7 ' 45
' 45
*
'0u$ si se pretende e%pandir el no terminal ', no se sa1e si e%pandirlo a 45
o a 45
*
, (a 0ue am1as
empie&an con la misma cadena no vac$a 4#
8ara resolver este pro1lema se plantea un algoritmo general de factori&acin, este reci1e una gramtica, (
produce como salida una gramtica factori&ada por la i&0uierda# Consiste en tomar cada no terminal
igual, sea ' el no terminal del e2emplo planteado, ( encontrar el prefi2o ms largo 0ue est presente en
todas las producciones para ', es decir, en el e2emplo, el s$m1olo 4, (a 0ue ste es el s$m1olo com3n en
las dos producciones# Si el prefi2o com3n no es igual a 9, 0ue se cumple en el e2emplo pues es 4, entonces
se sustitu(e-
' 45
6 45
*
6 : 6 45
n
6 ; , con ; 7 todas las alternativas distintas al prefi2o com3n
por las producciones-
' 4'< 6 ;
'< 5
6 5
*
6 : 6 5
n
'< es un nuevo no terminal, este procedimiento se de1e aplicar "asta 0ue todos los no terminales iguales
cumplan con el "ec"o de no tener un prefi2o en com3n en sus producciones# En el e2emplo la gramtica
resultante ser$a-
' 4'<
'< 5
6 5
*
Se omite ; pues no e%iste en la gramtica original, (a 0ue las producciones empie&an con 4#
2
*+* E)I.I"(CI&" $E )( REC%R'IVI$($ $E %"( GR(./#IC(
=a necesidad de este mtodo, mencionada en la introduccin del art$culo, es 0ue el anlisis descendente
no puede mane2ar una gramtica recursiva#
>?u es una gramtica recursiva@ RA Es a0uella en la 0ue al menos un no terminal deriva en cadenas 0ue
empie&an con el mismo no terminal, es decir e%isten producciones por e2emplo con el no terminal ', en
las 0ue van "acia una cadena 0ue empie&a con '#
>Cmo resolver el pro1lema@
RA Se agrupan todas las producciones de ' 0ue e%istan, las 0ue presentan recursividad ( las 0ue no, de la
siguiente manera-
' '4
6 '4
*
6 : 6 '4
m
6 5
6 5
*
6 : 6 5
n
=as producciones de ' 0ue van a 5 son lgicamente las 0ue no empie&an con el mismo s$m1olo no
terminal '# Bespus de "acer esto se sustitu(en las producciones de ', primero las 0ue empie&an con 5,
por-
' 5
'< 6 5
*
'< 6: 6 5
n
'<
( despus las producciones 0ue tienen recursividad, por-
'< 4
'< 6 4
*
'< 6 : 6 4
m
'<6 9
CO"C)%'IO"E'
'nte la posi1ilidad, en la vida real, de encontrar gramticas independientes del conte%to, 0ue no se
a2usten a los re0uerimientos de los anali&adores sintcticos, es necesario conocer cuales son las formas de
lograr 0ue esas gramticas, lleguen a cumplir esos re0uerimientos# =os mtodos de factori&acin (
eliminacin de la recursividad son mtodos sencillos ( relativamente fciles de implementar, en el
presente art$culo se consigui ms 0ue descri1irlos, llegarlos a entender ( sa1er en 0ue casos son
necesarios ( cual es el procedimiento 0ue cada uno sigue#
REFERE"CI('
1. '"o, '# Set"i, R# Ullman, J# Compiladores: Principios, Tcnicas y Herramientas. C%ico-
8earson Educacin D++0E#
3