8 research outputs found

    Convergence of program transformers in the metric space of trees

    Get PDF
    AbstractIn recent years increasing consensus has emerged that program transformers, e.g. partial evaluation and unfold/fold transformations, should terminate; a compiler should stop even if it performs fancy optimizations! A number of techniques to ensure termination of program transformers have been invented, but their correctness proofs are sometimes long and involved. We present a framework for proving termination of program transformers, cast in the metric space of trees. We first introduce the notion of an abstract program transformer; a number of well-known program transformers can be viewed as instances of this notion. We then formalize what it means that an abstract program transformer terminates and give a general sufficient condition for an abstract program transformer to terminate. We also consider some specific techniques for satisfying the condition. As applications we show that termination of some well-known program transformers either follows directly from the specific techniques or is easy to establish using the general condition. Our framework facilitates simple termination proofs for program transformers. Also, since our framework is independent of the language being transformed, a single correctness proof can be given in our framework for program transformers that use essentially the same technique in the context of different languages. Moreover, it is easy to extend termination proofs for program transformers to accommodate changes to these transformers. Finally, the framework may prove useful for designing new termination techniques for program transformers

    Convergence of Program Transformers in the Metric Space of Trees

    No full text
    . In recent years increasing consensus has emerged that program transformers, e.g., partial evaluation and unfold/fold transformations, should terminate; a compiler should stop even if it performs fancy optimizations! A number of techniques to ensure termination of program transformers have been invented, but their correctness proofs are sometimes long and involved. We present a framework for proving termination of program transformers, cast in the metric space of trees. We first introduce the notion of an abstract program transformer; a number of well-known program transformers can be viewed as instances of this notion. We then formalize what it means that an abstract program transformer terminates and give a general sufficient condition for an abstract program transformer to terminate. We also consider some specific techniques for satisfying the condition. As applications we show that termination of some well-known program transformers either follows directly from the specific techn..

    An Induction Principle for Pure Type Systems

    No full text
    We present an induction principle for Pure Type Systems and use that principle to define CPS translations and to solve the problem of Expansion Postponement for a large class of Pure Type Systems. Our principle strengthens and generalises similar principles by Dowek, Huet and Werner [12] and Barthe, Hatcliff and Sørensen [6], which have been respectively used to define eta-long normal forms and CPS translations for the systems of Barendregt's lambda-cube [2, 3]

    An Induction Principle for Pure Type Systems

    No full text
    We present an induction principle for Pure Type Systems and use that principle to define CPS translations and to solve partially the -- open -- problem of Expansion Postponement. Our principle strengthens and generalises similar principles by Dowek, Huet and Werner [12] and Barthe, Hatcliff and Sørensen [5], which have been respectively used to define eta-long normal forms and CPS translations for the systems of Barendregt's lambda-cube [2, 3]

    Perpetual Reductions in Lambda Calculus.

    Get PDF
    This paper surveys a part of the theory of fi-reduction in λ-calculus which might aptly be called perpetual reductions. The theory is concerned with perpetual reduction strategies, i.e., reduction strategies that compute infinite reduction paths from λ-terms (when possible), and with perpetual redexes, i.e., redexes whose contraction in λ-terms preserves the possibility (when present) of infinite reduction paths. The survey not only recasts classical theorems in a unified setting, but also offers new results, proofs, and techniques, as well as a number of applications to problems in λ-calculus and type theory
    corecore