Results 1 -
6 of
6
Complexity Analysis for a Lazy Higher-Order Language
- In Proceedings of the 3rd European Symposium on Programming
, 1990
"... This paper is concerned with the time-analysis of functional programs. Techniques which enable us to reason formally about a program's execution costs have had relatively little attention in the study of functional programming. We concentrate here on the construction of equations which compute t ..."
Abstract
-
Cited by 44 (2 self)
- Add to MetaCart
This paper is concerned with the time-analysis of functional programs. Techniques which enable us to reason formally about a program's execution costs have had relatively little attention in the study of functional programming. We concentrate here on the construction of equations which compute the time-complexity of expressions in a lazy higher-order language. The problem with higher-order functions is that complexity is dependent on the cost of applying functional parameters. Structures called cost-closures are introduced to allow us to model both functional parameters and the cost of their application. The problem with laziness is that complexity is dependent on context. Projections are used to characterise the context in which an expression is evaluated, and cost-equations are parameterised by this context-description to give a compositional time-analysis. Using this form of context information we introduce two types of time-equation: sufficient-time equations and nece...
A Naïve Time Analysis and its Theory of Cost Equivalence
- Journal of Logic and Computation
, 1995
"... Techniques for reasoning about extensional properties of functional programs are well understood, but methods for analysing the underlying intensional or operational properties have been much neglected. This paper begins with the development of a simple but useful calculus for time analysis of non-s ..."
Abstract
-
Cited by 40 (7 self)
- Add to MetaCart
Techniques for reasoning about extensional properties of functional programs are well understood, but methods for analysing the underlying intensional or operational properties have been much neglected. This paper begins with the development of a simple but useful calculus for time analysis of non-strict functional programs with lazy lists. One limitation of this basic calculus is that the ordinary equational reasoning on functional programs is not valid. In order to buy back some of these equational properties we develop a non-standard operational equivalence relation called cost equivalence, by considering the number of computation steps as an `observable' component of the evaluation process. We define this relation by analogy with Park's definition of bisimulation in CCS. This formulation allows us to show that cost equivalence is a contextual congruence (and thus is substitutive with respect to the basic calculus) and provides useful proof techniques for establishing cost-equivalen...
A normalization proof for Martin-Löf's type theory
, 1996
"... The theory we will be concerned with in this paper is Martin-Löf's polymorphic type theory with intensional equality and the universe of small sets. We will give a different proof of normalization for this theory. ..."
Abstract
- Add to MetaCart
The theory we will be concerned with in this paper is Martin-Löf's polymorphic type theory with intensional equality and the universe of small sets. We will give a different proof of normalization for this theory.
Some remarks on ... . Introduction to the abstracted size of extracted objects from Coq
, 1995
"... Automatic synthesis of programs certified with respect to their specification may be seen as a new method in software developping, whose main advantage is to carry a known behavior in terms of terminating properties. This very improvement of programming design however arouses some critics about the ..."
Abstract
- Add to MetaCart
Automatic synthesis of programs certified with respect to their specification may be seen as a new method in software developping, whose main advantage is to carry a known behavior in terms of terminating properties. This very improvement of programming design however arouses some critics about the performances of produced programs. The aim of this paper is to provide interesting basis for program behaviour control in terms of complexity. We particularly focus on defining a size notion for the manipulated objects in a formalism very close to functional languages: the F! system. The study of inductive types will let us generate a function that automatically performs the size of objects belonging to a given type. R'esum'e La g'en'eration automatique de programmes prouv'es corrects par rapport `a leurs sp'ecifications peut etre vue comme un nouveau moyen de cr'eation de logiciels dont le principal atout est d'avoir un comportement connu en termes de propri'et'es de terminaison. Cette am...
Recursive Program Optimization Through Inductive Synthesis Proof Transformation
, 1999
"... The research described in this paper involved developing transformation techniques which increase the efficiency of the noriginal program, the source, by transforming its synthesis proof into one, the target, which yields a computationally more efficient algorithm. We describe a working proof tran ..."
Abstract
- Add to MetaCart
The research described in this paper involved developing transformation techniques which increase the efficiency of the noriginal program, the source, by transforming its synthesis proof into one, the target, which yields a computationally more efficient algorithm. We describe a working proof transformation system which, by exploiting the duality between mathematical induction and recursion, employs the novel strategy of optimizing recursive programs by transforming inductive proofs. We compare and contrast this approach with the more traditional approaches to program transformation, and highlight the benefits of proof transformation with regards to search, correctness, automatability and generality.

