2009
DOI: 10.1145/1594834.1480916
|View full text |Cite
|
Sign up to set email alerts
|

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

Abstract: Abstract. Previous deforestation and supercompilation algorithms may introduce accidental termination when applied to call-by-value programs. This hides looping bugs from the programmer, and changes the behavior of a program depending on whether it is optimized or not. We present a supercompilation algorithm for a higher-order call-by-value language and prove that the algorithm both terminates and preserves termination properties. This algorithm utilizes strictness information to decide whether to substitute o… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
5
0

Year Published

2009
2009
2018
2018

Publication Types

Select...
2
2
2

Relationship

2
4

Authors

Journals

citations
Cited by 7 publications
(5 citation statements)
references
References 37 publications
0
5
0
Order By: Relevance
“…From the very beginning the development of supercompilation has been conducted mainly in the context of the programming language Refal [43,44,45,54] based on syntax and semantics similar to that of our presentation language L . A number of model supercompilers for subsets of functional languages based on Lisp data were implemented with the aim of formalizing some aspects of the supercompilation algorithms [24,27,42,50]. The most advanced supercompiler for Refal is SCP4 [43,44,46].…”
Section: On Supercompilationmentioning
confidence: 99%
“…From the very beginning the development of supercompilation has been conducted mainly in the context of the programming language Refal [43,44,45,54] based on syntax and semantics similar to that of our presentation language L . A number of model supercompilers for subsets of functional languages based on Lisp data were implemented with the aim of formalizing some aspects of the supercompilation algorithms [24,27,42,50]. The most advanced supercompiler for Refal is SCP4 [43,44,46].…”
Section: On Supercompilationmentioning
confidence: 99%
“…They report average performance boosts on a set of programs of 40%. Supercompilation has also been investigated in a call-by-value setting and can give good speedups there too [6,8].…”
Section: Related Workmentioning
confidence: 99%
“…The focus in this paper has been on a practical algorithm that can supercompile programs without risking code explosion. We believe that our previous proofs of correctness of a closely related algorithm [7] should go through without much adjustment for the algorithm presented.…”
Section: Future Workmentioning
confidence: 99%
“…We prove that our supercompiler both terminates and does not alter whether a program terminates or not. The complete proofs are available from a companion technical report (Jonsson and Nordlander 2008), but they do not reveal anything unexpected.…”
Section: Correctnessmentioning
confidence: 99%
“…We show that our positive supercompiler does remove intermediate structures, and can improve the performance by an order of magnitude for certain benchmarks. We have left out the full details of the instrumentation of the runtime system and the transformed result of each benchmark for space reasons, but they are available in a separate report (Jonsson 2008). All measurements were performed on an idle machine running in an xterm.…”
Section: Benchmarksmentioning
confidence: 99%