Filters








2,069 Hits in 5.3 sec

Proving the correctness of recursion-based automatic program transformations [chapter]

David Sands
1995 Lecture Notes in Computer Science  
This paper shows how the Improvement Theorem--a semantic condition for the total correctness of program transformation on hlgher-order functional programs--has practical value in proving the correctness  ...  of automatic techniques, including deforestation and supercompilation.  ...  for suggesting a number of clarifications and improvements.  ... 
doi:10.1007/3-540-59293-8_228 fatcat:xbtc3ogw6ff65ptobbvgu3wjwq

Page 3619 of Mathematical Reviews Vol. , Issue 95f [page]

1995 Mathematical Reviews  
Chin has shown how one can apply deforestation to all first-order programs: annotate non-treeless subterms and apply the extended deforestation algo- rithm, which essentially leaves annotated subterms  ...  Summary: “Wadler’s deforestation algorithm removes intermedi- ate data structures from functional programs, but is only guar- anteed to terminate for treeless programs.  ... 

Higher order deforestation [chapter]

G. W. Hamilton
1996 Lecture Notes in Computer Science  
Deforestation is a well known transformation algorithm which can eliminate intermediate structures from functional programs.  ...  In previous work, we have shown how the deforestation algorithm can be extended to handle higher order programs.  ...  Techniques to ensure the termination of the deforestation transformation for all first order programs were proposed by Chin [5, 6, 8, 9, 11] , Hamilton [22, 21, 17] and Sørensen and Seidl [42, 38]  ... 
doi:10.1007/3-540-61756-6_87 fatcat:woreicyd4bgphdhe34r7jsitny

Deforestation: Transforming programs to eliminate trees [chapter]

Philip Wadler
1988 Lecture Notes in Computer Science  
However, for the implementor of a program transformation system, such as the Deforestation Algorithm, first-order languages may be easier to cope with.  ...  This section shows how much (but not all) of the expressiveness of higher-order functions can be achieved in a first-order language, by treating higher-order functions as macros.  ... 
doi:10.1007/3-540-19027-9_23 fatcat:4bodqg4ykrflvoau2wxsftyrjm

Advanced Logic Program Specialisation [chapter]

Michael Leuschel
1999 Lecture Notes in Computer Science  
On the other hand, the techniques developed for tupling of functional programs [5, 6] are incapable of performing deforestation.  ...  For instance, in functional programming we know that for the same function call we always get the same, unique output.  ... 
doi:10.1007/3-540-47018-2_11 fatcat:szhkjbl3mzef7nx6yyppd5h74i

Type-Inference Based Short Cut Deforestation (Nearly) without Inlining [chapter]

Olaf Chitil
2000 Lecture Notes in Computer Science  
Deforestation optimises a functional program by transforming it into another one that does not create certain intermediate data structures.  ...  We show that Gill's use of a function build limits deforestation and note that his reasons for using build do not apply to our approach.  ...  Acknowledgements I thank Simon Peyton Jones for several comments that inspired this paper. Especially, he drew my attention to producers that consume their own result.  ... 
doi:10.1007/10722298_2 fatcat:l3jfkbfcirb6xhbkm6pc6is5ey

The Next 700 Program Transformers [article]

Geoffrey Hamilton
2021 arXiv   pre-print
In this paper, we describe a hierarchy of program transformers in which the transformer at each level of the hierarchy builds on top of those at lower levels.  ...  The program transformer at level 1 of the hierarchy corresponds to positive supercompilation, and that at level 2 corresponds to distillation. We prove that the transformers at each level terminate.  ...  Several program transformation techniques have been proposed to eliminate some of these intermediate data structures; for example partial evaluation [11] , deforestation [24] and supercompilation [21  ... 
arXiv:2108.11347v3 fatcat:r6jx7enhp5em3aqtz43etxlt6e

Logic program specialisation through partial deduction: Control issues [article]

Michael Leuschel, Maurice Bruynooghe
2002 arXiv   pre-print
A common approach within functional and logic programming, known respectively as partial evaluation and partial deduction, is to exploit partial knowledge about the input.  ...  Program specialisation aims at improving the overall performance of programs by performing source to source transformations.  ...  Acknowledgements First, we would like to thank Danny De Schreye, André de Waal, Robert Glück, Bern Martens, and Morten Heine Sørensen for all the joint work and stimulating discussions.  ... 
arXiv:cs/0202012v1 fatcat:6r2tlgglgvbdpnwuu5dxppyxcu

Conjunctive partial deduction in practice [chapter]

Jesper Jørgensen, Michael Leuschel, Bern Martens
1997 Lecture Notes in Computer Science  
Conjunctive partial deduction aims at achieving unfold/fold-like program transformations such as tupling and deforestation within fully automated partial deduction.  ...  In this paper, we present a first investigation of conjunctive partial deduction in practice.  ...  The authors would like to thank Annalisa Bossi for enlightening comments on termination issues in the context of unfold/fold transformations.  ... 
doi:10.1007/3-540-62718-9_5 fatcat:5lx3cu2bujcstbjcwatjozydei

Positive supercompilation for a higher order call-by-value language

Peter A. Jonsson, Johan Nordlander
2008 Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '09  
Previous deforestation and supercompilation algorithms may introduce accidental termination when applied to call-by-value programs.  ...  We present a supercompilation algorithm for a higher-order call-by-value language and we prove that the algorithm both terminates and preserves termination properties.  ...  We would also like to thank Viktor Leijon and the anonymous referees for providing useful comments that helped improve the presentation and contents and Germán Vidal for explaining narrowing to us.  ... 
doi:10.1145/1480881.1480916 dblp:conf/popl/JonssonN09 fatcat:qvkwsgedozhufpcqdzqtob5qme

Positive supercompilation for a higher order call-by-value language

Peter A. Jonsson, Johan Nordlander
2009 SIGPLAN notices  
Previous deforestation and supercompilation algorithms may introduce accidental termination when applied to call-by-value programs.  ...  We present a supercompilation algorithm for a higher-order call-by-value language and we prove that the algorithm both terminates and preserves termination properties.  ...  We would also like to thank Viktor Leijon and the anonymous referees for providing useful comments that helped improve the presentation and contents and Germán Vidal for explaining narrowing to us.  ... 
doi:10.1145/1594834.1480916 fatcat:2pmwnklnyncgzkg2l3jczz3ngm

Introduction to Supercompilation [chapter]

Morten Heine B. Sørensen, Robert Glück
1999 Lecture Notes in Computer Science  
The presented algorithm is guaranteed to terminate by means of generalisation steps.  ...  Jones, Laura Lafave and Michael Leuschel for discussions and comments. Thanks to Peter Sestoft for many insightful comments to [15] .  ...  In particular, the language of the programs to be transformed by positive supercompilation is a typical first-order functional language -the one usually studied in deforestation -which is rather different  ... 
doi:10.1007/3-540-47018-2_10 fatcat:oxbth2ashjgtnlxlvgpamzqnom

Logic program specialisation through partial deduction: Control issues

MICHAEL LEUSCHEL, MAURICE BRUYNOOGHE
2002 Theory and Practice of Logic Programming  
A common approach within functional and logic programming, known respectively as partial evaluation and partial deduction, is to exploit partial knowledge about the input.  ...  Program specialisation aims at improving the overall performance of programs by performing source to source transformations.  ...  Acknowledgements First, we would like to thank Danny De Schreye, Andr e de Waal, Robert Gl uck, Bern Martens, and Morten Heine S rensen for all the joint work and stimulating discussions.  ... 
doi:10.1017/s147106840200145x fatcat:ers3xp5nzjaqxcrkyo3cjo2yaq

A tutorial on the universality and expressiveness of fold

GRAHAM HUTTON
1999 Journal of functional programming  
In functional programming, fold is a standard operator that encapsulates a simple pattern of recursion for processing lists.  ...  First of all, we emphasize the use of the universal property of fold both as a proof principle that avoids the need for inductive proofs, and as a definition principle that guides the transformation of  ...  Acknowledgements I would like to thank Erik Meijer and the members of the Languages and Programming group in Nottingham for many hours of interesting discussions about fold .  ... 
doi:10.1017/s0956796899003500 fatcat:s75vhlbrfvegtnsivno6g3q7se

LIX: an Effective Self-applicable Partial Evaluator for Prolog [chapter]

Stephen-John Craig, Michael Leuschel
2004 Lecture Notes in Computer Science  
Notably, we show first attempts at using the system for deforestation and tupling in an offline fashion.  ...  The attempts to self-apply partial evaluators for logic programs have, of yet, not been all that successful.  ...  For example f(X), f(a) and f are all nonvar but the variable X is not. During generalisation, the top level function symbol is kept but all its sub-arguments are replaced by fresh variables.  ... 
doi:10.1007/978-3-540-24754-8_8 fatcat:5m2thirmhzff7dklh3xi2tn3r4
« Previous Showing results 1 — 15 out of 2,069 results