Francisco J. López Fraguas, Rafael Caballero Roldán

"Parsers Lógico-Funcionales en Toy"

Resumen

La construcción de parsers ha sido un banco de pruebas tradicional para los lenguajes declarativos. En esta charla estudiamos la construcción de parsers desde el punto de vista de la programación lógico-funcional. Apoyándonos en la utilización de funciones no deterministas, presentamos un método sencillo y natural para la definición de parsers, combinando las ventajas que presentan tanto los parsers de programación lógica como los de programación funcional. En particular, nuestro marco nos permite definir parsers en un estilo muy similar al de los "parsers monádicos" de programación funcional.

Por otra parte, aprovechando que nuestro lenguaje, Toy, permite la utilización de patrones de orden superior, mostramos cómo nuestros parsers pueden ser considerados "ciudadanos de primera clase" en un sentido muy amplio, pudiendo ser manejados como datos con objeto de examinar propiedades de la gramática subyacente, tales como ambiguedad o la propiedad LL(1).

Referencias

R.Caballero-Roldán and F.J. López Fraguas. Functional-Logic Parsers in Toy. Technical Report S.I.P. 74/98. Univ. Complutense de Madrid 1998.

G. Hutton. Higher-Order Functions for Parsing. J. of Functional Programming 2(3):323-343, July 1992.

G. Hutton, E. Meijer. Functional Pearls. Monadic Parsing in Haskell. To appear in J. of Functional Programming. Extended version: Tech-Rep NOTTCS-TR-96-4. Dept. of Computer Science. Univ. Nottingham,1996.

Postscript