Deforestation: Transforming programs to eliminate trees

From MaRDI portal
Publication:914358

DOI10.1016/0304-3975(90)90147-AzbMath0701.68013MaRDI QIDQ914358

Philip Wadler

Publication date: 1990

Published in: Theoretical Computer Science (Search for Journal in Brave)




Related Items

The BinProlog experience: Architecture and implementation choices for continuation passing Prolog and first-class logic engines, A regeneration scheme for generating extensions, Rules + strategies for transforming lazy functional logic programs, Ensuring the quasi-termination of needed narrowing computations, Complexity bounds for container functors and comonads, Pointlessness is Better than Listlessness, Solving Horn Clauses on Inductive Data Types Without Induction, Push versus pull-based loop fusion in query engines, Fusion for Free, Lambda calculus with explicit recursion, Efficient high-level parallel programming, Attribute grammars as tree transducers over cyclic representations of infinite trees and their descriptional composition, Trends in trends in functional programming 1999/2000 versus 2007/2008, Functional un\(|\)unparsing, Shortcut fusion rules for the derivation of circular and higher-order programs, Indexed types, Iterating on multiple collections in synchrony, Analysis and Transformation of Constrained Horn Clauses for Program Verification, Excommunication: transforming \(\pi \)-calculus specifications to remove internal communication, \textsc{Synbit}: synthesizing bidirectional programs using unidirectional sketches, Structured handling of scoped effects, A positive supercompiler, Unnamed Item, REACHABILITY ANALYSIS IN VERIFICATION VIA SUPERCOMPILATION, Unnamed Item, Generic functional programming with types and relations, A pattern for almost compositional functions, Algebraic fusion of functions with an accumulating parameter and its improvement, Enhancing semantic bidirectionalization via shape bidirectionalizer plug-ins, Manipulating accumulative functions by swapping call-time and return-time computations, Unfolding--definition--folding, in this order, for avoiding unnecessary variables in logic programs, A Duality of Sorts, Polynomial-time inverse computation for accumulative functions with multiple data traversals, Deforestation, program transformation, and cut-elimination, When is a function a fold or an unfold?, A Case Study in Abstract Interpretation Based Program Transformation, A Gröbner free alternative for polynomial system solving, Fusion of recursive programs with computational effects, An efficient composition of bidirectional programs by memoization and lazy update, A partial evaluation framework for order-sorted equational programs modulo axioms, Proving the correctness of recursion-based automatic program transformations, Algebra of programming in Agda: Dependent types for relational program derivation, Flattening tuples in an SSA intermediate representation, Characterizing Compatible View Updates in Syntactic Bidirectionalization, Fusing Logic and Control with Local Transformations, Scoped Dynamic Rewrite Rules, Lambda-dropping: Transforming recursive equations into programs with block structure, Preserving Sharing in the Partial Evaluation of Lazy Functional Programs, The Projective Noether Maple Package: Computing the dimension of a projective variety, Functional programming concepts and straight-line programs in computer algebra, A residualizing semantics for the partial evaluation of functional logic programs., Strongly Typed Rewriting For Coupled Software Transformation, A type- and scope-safe universe of syntaxes with binding: their semantics and proofs, Derivation of efficient logic programs by specialization and reduction of nondeterminism


Uses Software


Cites Work