Declarative Program Transformation: A Deforestation Case-Study

Software engineering has to reconcile modularity with efficiency. One way to grapple with this dilemma is to automatically transform a modular-specified program into an efficient-implementable one. This is the aim of deforestation transformations which get rid of intermediate data structure constructions that occur when two functions are composed. Beyond classical compile time optimization, these transformations are undeniable tools for generic programming and software component specialization.

[1]  Pierre Deransart,et al.  Programming Languages Implementation and Logic Programming , 1989, Lecture Notes in Computer Science.

[2]  Gilles Roussel,et al.  Generic Programming by Program Composition (position paper) , 1998 .

[3]  Pieter H. Hartel,et al.  Programming Languages: Implementations, Logics, and Programs , 1996, Lecture Notes in Computer Science.

[4]  Didier Parigot,et al.  Coupling Evaluators for Attribute Coupled Grammars , 1994, CC.

[5]  John Launchbury,et al.  Warm fusion: deriving build-catas from recursive definitions , 1995, FPCA '95.

[6]  Jukka Paakki,et al.  Attribute grammar paradigms—a high-level methodology in language implementation , 1995, CSUR.

[7]  Boaz Patt-Shamir,et al.  A New Approach to Compiling Adaptive Programs , 1996, ESOP.

[8]  Maarten M. Fokkinga,et al.  Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire , 1991, FPCA.

[9]  Hanne Riis Nielson,et al.  Programming Languages and Systems — ESOP '96 , 1996, Lecture Notes in Computer Science.

[10]  Akihiko Takano,et al.  Shortcut deforestation in calculational form , 1995, FPCA '95.

[11]  Étienne Duris,et al.  Contribution aux relations entre les grammaires attribuées et la programmation fonctionnelle. (Contribution to the relation between attribute grammars and functional programming) , 1998 .

[12]  Johan Jeuring,et al.  PolyP—a polytypic programming language extension , 1997, POPL '97.

[13]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[14]  Didier Parigot,et al.  Specification and Implementation of Grammar Couplings using Attribute Grammars , 1993, PLILP.

[15]  Simon L. Peyton Jones,et al.  Type Classes in Haskell , 1994, ESOP.

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

[17]  G. Roussel,et al.  Algorithmes de base pour la modularité et la reutilisabilité des grammaires attribuées , 1994 .

[18]  Helmut Seidl,et al.  Constraints to Stop Deforestation , 1998, Sci. Comput. Program..

[19]  Tim Sheard,et al.  A fold for all seasons , 1993, FPCA '93.

[20]  Loïc Correnson Equational Semantics , 2000, Informatica.

[21]  Didier Parigot,et al.  Dynamic Attribute Grammars , 1996, PLILP.

[22]  Wei-Ngan Chin,et al.  Better Consumers for Deforestation (Extended Abstract) , 1995, PLILP.

[23]  Simon L. Peyton Jones,et al.  A short cut to deforestation , 1993, FPCA '93.

[24]  Masato Takeichi,et al.  Deriving structural hylomorphisms from recursive definitions , 1996, ICFP '96.

[25]  Martin Jourdan,et al.  Attribute Grammars: a Declarative Functional Language , 1995 .

[26]  Philip Wadler,et al.  Deforestation: Transforming Programs to Eliminate Trees , 1988, Theoretical Computer Science.