Download PDFOpen PDF in browser

On the Termination of Positive Supercompilation

15 pagesPublished: July 25, 2013

Abstract

The verification of program transformation systems requires that we prove their termination.
For positive supercompilation, ensuring termination usually requires the memoisation of expressions
which are subsequently used to determine when to perform generalization and folding.
However, determining which expressions to memoise can greatly affect the results obtained.
Memoising too many expressions requires a lot more expensive checking for the possibility
of generalization or folding. More new functions will also be created and generalization will
be performed more often, resulting in less improved residual programs. We would therefore
like to memoise as few expressions as possible, but this could lead to non-termination.
In this paper, we describe a simple pre-processing step which can be applied to programs
prior to transformation by positive supercompilation to ensure that in any potentially infinite
sequence of transformation steps there must be function unfolding. We prove, for programs
that have been pre-processed in this way, that it is only necessary to memoise expressions
immediately before function unfolding to ensure termination, and we demonstrate this on
a number of tricky examples.

Keyphrases: positive supercompilation, program transformation, termination

In: Alexei Lisitsa and Andrei Nemytykh (editors). VPT 2013. First International Workshop on Verification and Program Transformation, vol 16, pages 42-56.

BibTeX entry
@inproceedings{VPT2013:Termination_Positive_Supercompilation,
  author    = {Geoff Hamilton},
  title     = {On the Termination of Positive Supercompilation},
  booktitle = {VPT 2013. First International Workshop on Verification and Program Transformation},
  editor    = {Alexei Lisitsa and Andrei Nemytykh},
  series    = {EPiC Series in Computing},
  volume    = {16},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/FJ},
  doi       = {10.29007/4vl2},
  pages     = {42-56},
  year      = {2013}}
Download PDFOpen PDF in browser