Termination Analysis for Offline Partial Evaluation of a Higher Order Functional Language

Abstract

One of the remaining problems on the path towards fully automatic partial evaluation is ensuring termination of the specialization phase. In [10] we gave a termination analysis which could be applied to partial evaluation of first-order strict languages, using a new result about inductive arguments (loosely: if whenever something grows, something gets smaller then the program will only enter finitely many different states). In this paper we extend this work to cover higher-order functional languages. We take an operational approach to the problem and consider the closure representation of higher-order functions to perform a combined dataand control-dependency analysis. The result of this analysis is then used, as in the first-order case, to decide which arguments need to be dynamic to guarantee termination of partial evaluation of the analysed program. The new methods have been tested on a variety of programs, and will be incorporated in a future release of the Similix partial evaluator for Scheme.

DOI: 10.1007/3-540-61739-6_34

Extracted Key Phrases

Cite this paper

@inproceedings{Andersen1996TerminationAF, title={Termination Analysis for Offline Partial Evaluation of a Higher Order Functional Language}, author={Peter Holst Andersen and Carsten Kehler Holst}, booktitle={SAS}, year={1996} }