semi-inversion of functional parameters
Semi-inversion is a generalisation of inversion: A semi-inverse of a program takes some of the inputs and outputs of the original programand returns the remaining inputs and outputs. Previous papers by the author have described semi-inversion for a first-order functional language. We now extend semi-inversion to handle functions as parameters. We start by summarising the steps of the semi-inversion transformation for first-order functional languages and then describes how these steps can be extended to handle functions as parameters and illustrate this by a running example. It turns out that, even with the fairly modest extension of the language, the resequentialisation step of the semi-inversion transformation is considerably complicated. We conclude by comparison with related work and discussion of future developments.
semi-inversion inversion higher-order functions program transformation