| P. Wadler, Listlessness is better than laziness, in "Proceedings of ACM Symposium on Lisp and Functional Programming," Austin, Texas, 1984. |
....users or certifying compilers to have far more control over the memory management of complex data structures. To demonstrate this fact, we show how two classes of space optimization can be encoded in a language based on recursive alias types. The rst optimization, called destination passing style [41, 22, 7, 24] transforms algorithms that are tail recursive modulo allocation into properly tail recursive algorithms, thereby avoiding the space overheads of a control stack. The second optimization shows how we can safely encode Deutsch Schorr Waite algorithms [35] for traversing a tree using minimal ....
....style (DPS) transformation detects a certain form of almost tail recursive function and automatically transforms it into an ecient properly tail recursive function. The transformation improves many functional programs signi cantly, leading a number researchers to study the problem in depth [41, 22, 7, 24]. Our contribution is to provide a type system that can be used in a type preserving compiler and is capable of verifying that the code resulting from the transformation is safe. Append is the canonical example of a function suitable for DPS: fun append (xs,ys) case xs of [ ys hd : ....
Philip Wadler. Listlessness is Better than Laziness. PhD thesis, Carnegie Mellon University, August 1985. Available as Carnegie Mellon University technical report CMU-CS-85-171.
....by another function f. In some cases, most of the efficiency improvement of the composition strategy can be simply obtained by lazy evaluation [16] Nevertheless, the composition strategy often allows the derivation of 11 programs with improved performance also in the context of lazy evaluation [37]. Laziness is decisive when, given a nested function call f(g(X) the intermediate data structure produced by g is infinite but the function f can produce its outcome by knowing only a finite portion of the output of g. The following example illustrates the advantages of our transformation rules ....
P.L. Wadler. Listlessness is better than Laziness. Computer Science Department, CMU-CS-85-171, Carnegie Mellon Univertsity, Pittsburgh, PA, 1985. Ph.D. Thesis.
....creating (modr) writing (write) and reading (read) modi ables. Only values placed in a modi able can change over time the user controls the adaptivity by choosing where to place the modi ables. Any value, including functions, can be modi able. Modi ables are used in a destination passing style [6, 17, 9] the modr creates the destination which is passed into a body which is responsible for writing to it (examples are given in the next section) The reads take a modi able and a reader function as arguments. The reader function is applied to the value of the modi able, and is stored and rerun if the ....
Philip L. Wadler. Listlessness Is Better Than Laziness. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, 1985.
....users or certifying compilers to have far more control over the memory management of complex data structures. To demonstrate this fact, we show how two classes of space optimization can be encoded in a language based on recursive alias types. The first optimization, called destinationpassing style [41, 22, 7] transforms algorithms that are tailrecursive modulo allocation into properly tail recursive algorithms, thereby avoiding the space overheads of a control stack. The second optimization shows how we can safely encode Deutsch Schorr Waite algorithms [35] for traversing a tree using minimal ....
....style (DPS) transformation detects a certain form of almost tail recursive function and automatically transforms it into an efficient properly tailrecursive function. The transformation improves many functional programs significantly, leading a number researchers to study the problem in depth [41, 22, 7, 24]. Our contribution is to provide a type system that can be used in a type preserving compiler and is capable of verifying that the code resulting from the transformation is safe. Append is the canonical example of a function suitable for DPS: fun append (xs,ys) case xs of [ ys hd : ....
Philip Wadler. Listlessness is Better than Laziness. PhD thesis, Carnegie Mellon University, August 1985. Available as Carnegie Mellon University technical report CMU-CS-85-171.
....method are described in the next subsections. 2.2 Listlessness and Deforestation Wadler s work on deforestation, which grew out of his earlier work on listlessness, provides one example of a program improvement algorithm based on fold unfold transformations. The original listless transformer ([Wad83]) used many of the same ideas that Turchin used in developing his supercompiler (see section 4.1) to design a semidecision procedure for transforming recursive programs which can be lazily evaluated in constant bounded space into equivalent listless programs resembling finite automata. The ....
P. Wadler. Listlessness is Better than Laziness. Dissertation, Department of Computer Science, Carnegie Mellon University, 1983.
....method are described in the next subsections. 8 2.2 Listlessness and Deforestation Wadler s work on deforestation, which grew out of his earlier work on listlessness, provides one example of a program improvement algorithm based on fold unfold transformations. The original listless transformer ([Wad83]) used many of the same ideas that Turchin used in developing the supercompiler (see section 4.1) to design a semidecision procedure for transforming recursive programs which can be lazily evaluated in constant bounded space into equivalent listless programs resembling finite automata. The ....
P. Wadler. Listlessness is Better than Laziness. Dissertation, Department of Computer Science, Carnegie Mellon University, 1993.
....by another function f. In some cases, most of the efficiency improvement of the composition strategy can be simply obtained by lazy evaluation [12] Nevertheless, the composition strategy often allows the derivation of programs with improved performance also in the context of lazy evaluation [29]. Laziness is decisive when, given a nested function call f(g(X) the intermediate data structure produced by g is infinite but the function f can produce its outcome by knowing only a finite portion of the output of g. The following example illustrates the advantages of our transformation rules ....
P.L. Wadler. Listlessness is better than Laziness. Computer Science Department, CMU-CS-85-171, Carnegie Mellon Univertsity, Pittsburgh, PA, 1985. Ph.D. Thesis.
....functional languages like ML, Haskell, and Miranda include higher order functions which should be transformed too. Several preliminary approaches reduce the higher order case to the well studied first order case. Wadler [55] considers programs with higher order 1 Earlier techniques include [3, 6, 14, 15, 31, 33, 50, 51, 52, 53]. macros. Any such program typable in the HindleyMilner [27, 36] type system can be expanded out to a first order program, and transformed with first order deforestation. These programs include applications of the fold and map functions, but exclude useful constructions, e.g. lists of functions. ....
P.L. Wadler. Listlessness is better than laziness. In ACM Conference on Lisp and Functional Programming, pages 282--305. ACM Press, 1984.
....we present a positive supercompiler comprising a driving and a folding component. The driving component can be viewed as a reformulation of a certain fragment of driving as defined in Turchin s supercompiler. For the second 1 Earlier work by Turchin et al. 1982) Feather (1982) Bird (1984) Wadler (1984), and others, also addressed elimination of intermediate data structures. A Positive Supercompiler 3 component we fold only calls that are identical up to renaming, the same strategy as in deforestation. 2 The formulation of our two components is inspired by Wadler s formulation of ....
Wadler, P.L. 1984. Listlessness is better than laziness. In ACM Symposium on Lisp and Functional Programming 1984, pages 282--305, ACM.
....generalized this to any i and o. ffl The normal form used by Paredaen and Van Gucht is a normal form of logic formulae and the intuition behind their proof is mainly that of logical equivalence. In our case, our inspiration comes from a well known optimization strategy (see Wadler s early paper [23, 24] on this subject) In plain terms, we have evaluated the query without looking at the input and managed to flatten the query sufficiently until all intermediate operators of higher heights are optimized out. This idea is summarized by the rewriting rule fe j Delta 1 ; x 2 fe 0 j Delta 0 g; ....
P. Wadler. Listlessness is better than laziness. In Proceedings of ACM Symposium on Lisp and Functional Programming, Austin, Texas, August 1984.
....and o. ffl The normal form used by Paredaens and Van Gucht is a normal form of logic formulae and the intuition behind their proof is mainly that of logical equivalence and quantifier elimination. In our case, the inspiration comes from a well known optimization strategy (see Wadler s early paper [32, 33] on this subject) In plain terms, we have evaluated the query without looking at the input and managed to flatten the query sufficiently until all intermediate operators of higher heights are optimized out. This idea is summarized by the pipeline rule fe j Delta 1 ; x 2 fe 0 j Delta 0 g; ....
P. Wadler, Listlessness is better than laziness, in "Proceedings of ACM Symposium on Lisp and Functional Programming," Austin, Texas, 1984.
....collect a set of integer constraints. These termination techniques concern only first order programs. However, modern functional languages like ML, Haskell, and Miranda include higher order functions which should be transformed too. Several preliminary approaches 1 Earlier techniques include [3, 5, 13, 14, 30, 32, 49, 50, 51, 52]. reduce the higher order case to the first order case. Wadler [54] considers programs with higher order macros. Any such program typable in the Hindley Milner [27, 35] type system can be expanded out to a first order program, and transformed with first order deforestation. These programs ....
P.L. Wadler. Listlessness is better than laziness. In ACM Conference on Lisp and Functional Programming, pages 282--305. ACM Press, 1984.
....8 the solution suggested here is simpler than Hughes , it does not address as wide a range of program structures. However, an alternative solution for this particular program is mentioned below. The results of this paper are also relevant to a different piece of work, the listless transformer [10, 11, 12]. Roughly speaking, the listless transformer will take any program which can be evaluated in constant space and transform it to an equivalent listless program. The advantage of doing this is that a listless program examines each input list only once and builds no intermediate lists. The listless ....
...., will count as listless once the modification to the garbage collector is included. In the original work, functions such as break were made listless by including annotations to indicate that extra reductions should be performed. This was called languid evaluation ; see Chapter 7 of reference [11]. The modification described here is a much simpler method of achieving this effect. The second advantage is as follows. There is an easy way of translating a listless program into an equivalent functional program; however, this translation involves where clauses with tuples on the left hand ....
Philip Wadler. Listlessness is better than laziness. PhD thesis, Carnegie-Mellon University, August 1984.
No context found.
P. Wadler, Listlessness is better than laziness, in "Proceedings of ACM Symposium on Lisp and Functional Programming," Austin, Texas, 1984.
No context found.
Philip Wadler. Listlessness is Better than Laziness.PhD thesis, Carnegie Mellon University, August 1985. Available as Carnegie Mellon University technical report CMU-CS-85171.
No context found.
P.L. Wadler. Listlessness is better than Laziness. Computer Science Department, CMU-CS-85-171, Carnegie Mellon Univertsity, Pittsburgh, PA, 1985. Ph.D. Thesis.
No context found.
Philip Wadler. Listlessness is Better than Laziness.PhD thesis, Carnegie Mellon University, August 1985. Available as Carnegie Mellon University technical report CMU-CS-85171.
No context found.
P. Wadler. Listlessness is Better than Laziness. In Proceedings of the 1984 ACM Symposium on Lisp and Functional Programming (LaFP), pages 4552. ACM, August 1984.
No context found.
P. L. Wadler. Listlessness is Better than Laziness. PhD thesis, Computer Science Department, Carnegie-Mellon University, 1985. CMU-CS-85-171.
No context found.
Wadler, P. L.: Listlessness is Better than Laziness. Ph.D. Thesis, Computer Science Department, CMU-CS-85-171, Carnegie Mellon University, Pittsburgh, PA, USA (1985)
No context found.
P.L. Wadler. Listlessness is better than laziness. In ACM Conference on Lisp and Functional Programming, pages 282--305. ACM Press, 1984.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC