• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

CPS transformation after strictness analysis (0)

by O Danvy, J Hatcliff
Add To MetaCart

Tools

Sorted by:
Results 11 - 19 of 19

Reflections on Reflections

by Gilles Barthe, John Hatcliff, Morten Heine Sørensen , 1997
"... In the functional programming literature, compiling is often expressed as a translation between source and target program calculi. In recent work, Sabry and Wadler proposed the notion of a reflection as a basis for relating the source and target calculi. A reflection elegantly describes the situati ..."
Abstract - Cited by 5 (1 self) - Add to MetaCart
In the functional programming literature, compiling is often expressed as a translation between source and target program calculi. In recent work, Sabry and Wadler proposed the notion of a reflection as a basis for relating the source and target calculi. A reflection elegantly describes the situation where there is a kernel of the source language that is isomorphic to the target language. However, we believe that the reflection criteria is so strong that it often excludes the usual situation in compiling where one is compiling from a higher-level to a lower-level language. We give a detailed analysis of several translations commonly used in compiling that fail to be reflections. We conclude that, in addition to the notion of reflection, there are several relations weaker a reflection that are useful for characterizing translations. We show that several familiar translations (that are not naturally reflections) form what we call a reduction correspondence. We introduce the more genera...

Lazy Type Inference for the Strictness Analysis of Lists

by Chris Hankin, Daniel Le Métayer , 1994
"... We present a type inference system for the strictness analysis of lists and we show that it can be used as the basis for an efficient algorithm. The algorithm is as accurate as the usual abstract interpretation technique. One distinctive advantage of this approach is that it is not necessary to impo ..."
Abstract - Cited by 4 (1 self) - Add to MetaCart
We present a type inference system for the strictness analysis of lists and we show that it can be used as the basis for an efficient algorithm. The algorithm is as accurate as the usual abstract interpretation technique. One distinctive advantage of this approach is that it is not necessary to impose an abstract domain of a particular depth prior to the analysis: the lazy type algorithm will instead explore the part of a potentially infinite domain required to prove the strictness property. 1 Introduction Simple strictness analysis returns information about the fact that the result of a function application is undefined when some of the arguments are undefined. This information can be used in a compiler for a lazy functional language because the argument of a strict function can be evaluated (up to weak head normal form) and passed by value. However a more sophisticated property might be useful in the presence of lists or other recursive data structures which are pervasive in functio...

Proving the Correctness of Compiler Optimisations Based on Strictness Analysis

by Geoffrey Burn, Daniel Le Métayer - in Proceedings 5th int. Symp. on Programming Language Implementation and Logic Programming, LNCS 714 , 1993
"... . We show that compiler optimisations based on strictness analysis can be expressed formally in the functional framework using continuations. This formal presentation has two benefits: it allows us to give a rigorous correctness proof of the optimised compiler; and it exposes the various optimisatio ..."
Abstract - Cited by 4 (2 self) - Add to MetaCart
. We show that compiler optimisations based on strictness analysis can be expressed formally in the functional framework using continuations. This formal presentation has two benefits: it allows us to give a rigorous correctness proof of the optimised compiler; and it exposes the various optimisations made possible by a strictness analysis. 1 Introduction Realistic compilers for imperative or functional languages include a number of optimisations based on non-trivial global analyses. Proving the correctness of such optimising compilers can be done in three steps: 1. proving the correctness of the original (unoptimised) compiler; 2. proving the correctness of the analysis; and 3. proving the correctness of the modifications of the simple-minded compiler to exploit the results of the analysis. A substantial amount of work has been devoted to steps (1) and (2) but there have been surprisingly few attempts at tackling step (3). In this paper we show how to carry out this third step in the...

A Computational Formalization for Partial Evaluation (Extended Version)

by John Hatcliff, Olivier Danvy , 1996
"... We formalize a partial evaluator for Eugenio Moggi's computational metalanguage. This formalization gives an evaluation-order independent view of binding-time analysis and program specialization, including a proper treatment of call unfolding, and enables us to express the essence of "control-ba ..."
Abstract - Cited by 4 (0 self) - Add to MetaCart
We formalize a partial evaluator for Eugenio Moggi's computational metalanguage. This formalization gives an evaluation-order independent view of binding-time analysis and program specialization, including a proper treatment of call unfolding, and enables us to express the essence of "control-based binding-time improvements" for let expressions. Specifically,

Strictness types: An inference algorithm and an application

by Torben Amtoft , 1993
"... This report deals with strictness types, a way of recording whether a function needs its argument(s) or not. We shall present an inference system for assigning strictness types to expressions and subsequently we transform this system into an algorithm capable of annotating expressions with strictnes ..."
Abstract - Cited by 3 (2 self) - Add to MetaCart
This report deals with strictness types, a way of recording whether a function needs its argument(s) or not. We shall present an inference system for assigning strictness types to expressions and subsequently we transform this system into an algorithm capable of annotating expressions with strictness types. We give an example of a transformation which can be optimized by means of these annotations, and finally we prove the correctness of the optimized transformation – at the same time proving the correctness of the annotation. Everything has been implemented; documentation can be found in appendix.

Language Support for Program Generation: Reasoning, Implementation, and Applications

by Zhe Yang, Olivier Danvy, Benjamin Goldberg - Computer Science Department, New York University , 2001
"... iii Acknowledgment My graduate study and life, of which this dissertation is one of the outcomes, benefitted greatly from the time, energy, and enthusiasm of many people. ..."
Abstract - Cited by 2 (0 self) - Add to MetaCart
iii Acknowledgment My graduate study and life, of which this dissertation is one of the outcomes, benefitted greatly from the time, energy, and enthusiasm of many people.

Reasoning about Code Generation in Two-Level Languages

by Zhe Yang , 2000
"... ..."
Abstract - Cited by 2 (0 self) - Add to MetaCart
Abstract not found

Une Analyse De Globalisation De Programmes Fonctionnels Basée Sur Une Sémantique Naturelle

by Valérie Gouranton
"... Introduction Nous d'ecrivons d'abord la motivation g'en'erale de ce travail puis nous pr'esentons la d'emarche suivie dans le corps de l'article. 1.1 Motivation Les travaux sur l'analyse statique de programmes ont 'et'e nombreuses durant ces derni`eres ann'ees parce que l'optimisation des compilat ..."
Abstract - Add to MetaCart
Introduction Nous d'ecrivons d'abord la motivation g'en'erale de ce travail puis nous pr'esentons la d'emarche suivie dans le corps de l'article. 1.1 Motivation Les travaux sur l'analyse statique de programmes ont 'et'e nombreuses durant ces derni`eres ann'ees parce que l'optimisation des compilateurs est cruciale pour l'impl'ementation des langages fonctionnels. En particulier un certain nombre de cadres et d'algorithmes sophistiqu'es ont 'et'e propos'es pour l'analyse de strictness [4, 12], de chemin [3, 2, 15] et de globalisation [8, 14, 16]. La correction et la pr'ecision des analyses ont 'et'e beaucoup 'etudi'ees et plusieurs techniques ont 'et'e r'ecemment propos'ees pour am'eliorer l'efficacit'e des analyseurs [11, 13]. En d'epit du fait que l'interpr'etation abstraite a 'et'e `a l'origine d'efinie dans un cadre op'erationnel [6], la plupart des analyseurs pour les langages fonctionnels sont bas'es sur des interpr'etations abstraites de

A Unified Approach to Strictness Analysis and Optimising Transformations

by Benton University, P. N. Benton , 1996
"... We present an inference system for translating programs in a PCF-like source language into a variant of Moggi's computational lambda calculus. This translation combines a simple strictness analysis with its associated optimising transformations into a single system. The correctness of the translatio ..."
Abstract - Add to MetaCart
We present an inference system for translating programs in a PCF-like source language into a variant of Moggi's computational lambda calculus. This translation combines a simple strictness analysis with its associated optimising transformations into a single system. The correctness of the translation is established using a logical relation between the denotational semantics of the source and target languages. 1 Introduction 1.1 Background Strictness analysis of lazy functional programs has been studied extensively during the the last 15 years or so, usually with the justification that the results of the analysis can be used in an optimising compiler [Myc81, BHA86, Ben92]. There has, however, been surprisingly little serious work on just how the results of strictness analysis can be used as the basis for optimising transformations. This is probably because it turns out to be rather more difficult to express and justify these optimisations than one might at first imagine. Roughly speak...
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University