WORK IT, WRAP IT, FIX IT, FOLD IT

Click here to load reader

download WORK IT, WRAP IT, FIX IT, FOLD IT

of 17

  • date post

    16-Jan-2016
  • Category

    Documents

  • view

    31
  • download

    0

Embed Size (px)

description

WORK IT, WRAP IT, FIX IT, FOLD IT. Graham Hutton and Neil Sculthorpe. This Talk. Worker/wrapper is a simple but powerful method for optimizing recursive programs; Previously, we developed theories for fix and fold , but with different correctness conditions; - PowerPoint PPT Presentation

Transcript of WORK IT, WRAP IT, FIX IT, FOLD IT

  • WORK IT, WRAP IT, FIX IT, FOLD ITGraham Hutton and Neil Sculthorpe

  • *This TalkWorker/wrapper is a simple but powerful method for optimizing recursive programs;

    Previously, we developed theories for fix and fold, but with different correctness conditions;

    We combine and extend the two approaches to give a generalised worker/wrapper theory.

  • *Worker / Wrapper

    program

    A technique for changing the type of a recursive program to improve its performance:

  • *Fixed Pointsones = 1 : onesones = fix f

    f xs = 1 : xscan be rewritten as:fix f = f (fix f)Our original formalisation was based on the use of explicit fixed points. For example:

  • *The ProblemAType of the desired worker, fix g.Type of the original program, fix f.BSuppose we wish to change the type of a recursiveprogram that is defined using fix.

  • *AssumptionsWe assume conversion functionsA can be faithfully represented by B.such that:abs . rep = idA

  • *Lets Calculate!*fix f

  • *Summaryfix fWe have derived the following factorisation:Wrapper of type B A.Recursive program of type A.abs=Recursive worker of type B.fix g

  • *Final StepWe simplify the workerfix (rep . f. abs)to eliminate the overhead of repeatedly convertingbetween the two types, by fusing togetherfix g=

  • *The Worker / Wrapper RecipeExpress the original program using fix;Choose the new type for the program;Define appropriate conversion functions;Apply the worker/wrapper transformation;Simplify the resulting definitions.

  • *GeneralisingThe technique also works for weaker assumptions:From the fix paper.abs . rep = idAabs . rep . f = ffix (abs . rep . f) = fix f

  • *

  • *Generalised RecipeIf the worker is already given, we aim to verify that one of the conditions is satisfied;

    Otherwise, our aim is to construct the worker, using one of the conditions as a specification;

    Similar assumptions and conditions also give a generalised worker/wrapper theory for fold.

  • *Example

  • *Example

  • *SummaryGeneralised technique for changing the type of a program to improve its performance;

    Captures a wide variety of program optimization techniques in a single unified framework;

    The paper also presents a range of new results concerning strictness side conditions.

  • *Further WorkOther recursion patterns;Time and space analysis;Computational effects;Implementing the technique.