Zipper-Based Modular and Deforested Computations

In this paper we present a methodology to implement multiple traversal algorithms in a functional programming setting. The implementations we obtain s of highly modular and intermediate structure free programs, that rely on the concept of functional zippers to navigate on data structures.

[1]  S. Doaitse Swierstra,et al.  Linear, bounded, functional pretty-printing , 2009, J. Funct. Program..

[2]  S. Doaitse Swierstra,et al.  First-class Attribute Grammars , 2000, Informatica.

[3]  João Paulo Sousa Ferreira Fernandes Design, implementation and calculation of circular programs , 2009 .

[4]  Thomas Johnsson,et al.  Attribute grammars as a functional programming paradigm , 1987, FPCA.

[5]  Michael D. Adams Scrap your zippers: a generic zipper for heterogeneous types , 2010, WGP '10.

[6]  Chris Okasaki,et al.  Breadth-first numbering: lessons from a small exercise in algorithm design , 2000, ICFP '00.

[7]  João Saraiva,et al.  Strictification of circular programs , 2011, PEPM '11.

[8]  Philip Wadler XQuery: A Typed Functional Language for Querying XML , 2002, Advanced Functional Programming.

[9]  Bernard Fotsing,et al.  Attribute Grammars as Recursion Schemes over Cyclic Representations of Zippers , 2011, Electron. Notes Theor. Comput. Sci..

[10]  Bernard Fotsing,et al.  Yet Another Implementation of Attribute Evaluation , 2007 .

[11]  Tarmo Uustalu,et al.  Comonadic functional attribute evaluation , 2005, Trends in Functional Programming.

[12]  Simon L. Peyton Jones,et al.  Scrap your boilerplate: a practical design pattern for generic programming , 2003, TLDI '03.

[13]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[14]  Gérard P. Huet,et al.  The Zipper , 1997, Journal of Functional Programming.

[15]  João Saraiva,et al.  A shortcut fusion rule for circular program calculation , 2007, Haskell '07.

[16]  João Saraiva,et al.  Zipper-Based Attribute Grammars and Their Extensions , 2013, SBLP.

[17]  S. D. Swierstra,et al.  Using attribute grammars to derive efficient functional programs , 1986 .

[18]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[19]  S. Doaitse Swierstra,et al.  Attribute grammars fly first-class: how to do aspect oriented programming in Haskell , 2009, ICFP.

[20]  Uwe Kastens,et al.  The Eli System , 1998, CC.

[21]  Richard S. Bird Using circular programs to eliminate multiple traversals of data , 2004, Acta Informatica.

[22]  Johan Jeuring,et al.  Generic programming with fixed points for mutually recursive datatypes , 2009, ICFP.

[23]  João Saraiva,et al.  Designing and Implementing Combinator Languages , 1998, Advanced Functional Programming.