Download PDFOpen PDF in browser

Local Driving in Higher-Order Positive Supercompilation via the Omega-theorem

16 pagesPublished: July 28, 2014

Abstract

A program transformation technique should terminate, return efficient output programs and be efficient itself.

For positive supercompilation ensuring termination requires memoisation of expressions, and these are subsequently used to determine when to perform generalization and folding. For a first-order language, every infinite
sequence of transformation steps must include function unfolding, so it is sufficient to memoise only those expressions immediately prior to a function unfolding step.

However, for a higher-order language, it is possible for an expression to have an infinite sequence of transformation steps which do not include function unfolding, so memoisation prior to a function unfolding step is not sufficient by itself
to ensure termination. But memoising additional expressions is expensive during transformation and may lead to less efficient output programs due to auxiliary functions. This additional memoisation may happen explicitly during transformation
or implicitly via a pre-processing transformation as outlined in previous work by the first author.

We introduce a new technique for local driving in higher-order positive supercompilation which obliviates the need for memoising other expressions than function unfolding steps, thereby improving efficiency of both the transformation and the generated programs. We exploit the fact, due to the second author in the setting of type-free lambda-calculus that every expression with an infinite sequence of transformation steps not involving function unfolding must have somthing like the term Omega = (lambda x. x x) (lambda x . x x) embedded within it in a certain sense. The technique has proven useful on a host of examples.

Keyphrases: higher order, lambda calculus, supercompilation, termination

In: Alexei Lisitsa and Andrei Nemytykh (editors). VPT 2014. Second International Workshop on Verification and Program Transformation, vol 28, pages 36-51.

BibTeX entry
@inproceedings{VPT2014:Local_Driving_Higher_Order,
  author    = {Geoff Hamilton and Morten Heine Sørensen},
  title     = {Local Driving in Higher-Order Positive Supercompilation via the Omega-theorem},
  booktitle = {VPT 2014. Second International Workshop on Verification and Program Transformation},
  editor    = {Alexei Lisitsa and Andrei Nemytykh},
  series    = {EPiC Series in Computing},
  volume    = {28},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/fV},
  doi       = {10.29007/t4gz},
  pages     = {36-51},
  year      = {2014}}
Download PDFOpen PDF in browser