2008
02.06

Estos últimos meses, he estado desarrollando, por diversión y en mis (pocos :-( ) ratos libres, mi propio kit para construir compiladores. Más que un compilador, es una herramienta para construir compiladores (existen otras como Lex y Yacc -Flex y Bison en su versión GNU). Su nombre es Bparser.

Lo he colgado en mi wiki.

La ventaja que tiene sobre el binomio LEX/YACC es que YACC genera analizadores sintácticos LALR. Por contra esta herramienta permite construir herramientas para gramáticas más potentes, del tipo LR(n). En principio utiliza un símbolo (Lookahead) para tomar decisiones ante las reglas de la gramática, así como prefijos viables.

Finalmente, si no consigue discernir qué regla es la adecuada, empezará a hacer backtracking (marcha atrás) para intentar averiguar cual qué reglas se deben aplicar.

Permite pues, gramáticas ambiguas, y es, de alguna forma, similar al GLR. Yacc también puede emplear el algoritmo GLR, pero es menos eficiente, y puede tomar en algunos casos tiempo y memoria exponencial.

Leer Más »

  • Google Buzz
  • Twitter
  • Meneame
  • Facebook
  • Posterous
  • Share/Bookmark