Results 1 
7 of
7
Complexity Analysis for a Lazy HigherOrder Language
 In Proceedings of the 3rd European Symposium on Programming
, 1990
"... This paper is concerned with the timeanalysis 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 compu ..."
Abstract

Cited by 48 (2 self)
 Add to MetaCart
This paper is concerned with the timeanalysis 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 timecomplexity of expressions in a lazy higherorder language. The problem with higherorder functions is that complexity is dependent on the cost of applying functional parameters. Structures called costclosures 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 costequations are parameterised by this contextdescription to give a compositional timeanalysis. Using this form of context information we introduce two types of timeequation: sufficienttime equations and nece...
Adventures in time and space
 33th ACM Symposium on Principles of Programming Languages
, 2006
"... Abstract. This paper investigates what is essentially a callbyvalue version of PCF under a complexitytheoretically motivated type system. The programming formalism, ATR, has its firstorder programs characterize the polynomialtime computable functions, and its secondorder programs characterize ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
Abstract. This paper investigates what is essentially a callbyvalue version of PCF under a complexitytheoretically motivated type system. The programming formalism, ATR, has its firstorder programs characterize the polynomialtime computable functions, and its secondorder programs characterize the type2 basic feasible functionals of Mehlhorn and of Cook and Urquhart. (The ATRtypes are confined to levels 0, 1, and 2.) The type system comes in two parts, one that primarily restricts the sizes of values of expressions and a second that primarily restricts the time required to evaluate expressions. The sizerestricted part is motivated by Bellantoni and Cook’s and Leivant’s implicit characterizations of polynomialtime. The timerestricting part is an affine version of Barber and Plotkin’s DILL. Two semantics are constructed for ATR. The first is a pruning of the naïve denotational semantics for ATR. This pruning removes certain functions that cause otherwise feasible forms of recursion to go wrong. The second semantics is a model for ATR’s time complexity relative to a certain abstract machine. This model provides a setting for complexity recurrences arising from ATR recursions, the solutions of which yield secondorder polynomial time bounds. The timecomplexity semantics is also shown to be sound relative to the costs of interpretation on the abstract machine. 1.
unknown title
"... Semanticsbased parallel cost models and their use in provably efficient implementations ..."
Abstract
 Add to MetaCart
Semanticsbased parallel cost models and their use in provably efficient implementations
Operational Semantics Models of Complexity (thesis proposal)
, 1994
"... Definitions of complexity are traditionally given relative to a relatively lowlevel, machineoriented model of computation. As programming languages become more complex, the relation between a program and its machine model time, space, etc., complexities becomes less clear. An alternative is to prov ..."
Abstract
 Add to MetaCart
Definitions of complexity are traditionally given relative to a relatively lowlevel, machineoriented model of computation. As programming languages become more complex, the relation between a program and its machine model time, space, etc., complexities becomes less clear. An alternative is to provide a languageoriented definition of complexity in terms of costs that make sense for that language and its semantics. The languagelevel complexity can then be related to the machinelevel complexity. The programmer can use the more intuitive languagelevel definition and then use this relation, which is proved separately, to obtain machineoriented complexities when needed. 1 Introduction Definitions of complexity must be given relative to a model of computation. Traditionally, these models have been machine models, such as the Random Access Machine (RAM) and Turing Machine for serial computation, and the Parallel RAM (PRAM), circuits, and models based on specific communication networks ...
Abstract Interpretation and LowLevel Code Optimization
, 1995
"... Abstract Interpretation is widely accepted as ..."
Abstract
"... This paper investigates what is essentially a callbyvalue version of PCF under a complexitytheoretically motivated type system. The programming formalism, ATR1, has its firstorder programs characterize the polytime computable functions, and its secondorder programs characterize the type2 basic ..."
Abstract
 Add to MetaCart
This paper investigates what is essentially a callbyvalue version of PCF under a complexitytheoretically motivated type system. The programming formalism, ATR1, has its firstorder programs characterize the polytime computable functions, and its secondorder programs characterize the type2 basic feasible functionals of Mehlhorn and of Cook and Urquhart. (The ATR1types are confined to levels 0, 1, and 2.) The type system comes in two parts, one that primarily restricts the sizes of values of expressions and a second that primarily restricts the time required to evaluate expressions. The sizerestricted part is motivated by Bellantoni and Cook’s and Leivant’s implicit characterizations of polytime. The timerestricting part is an affine version of Barber and Plotkin’s DILL. Two semantics are constructed for ATR1. The first is a pruning of the naïve denotational semantics for ATR1. This pruning removes certain functions that cause otherwise feasible forms of recursion to go wrong. The second semantics is a model for ATR1’s time complexity relative to a certain abstract machine. This model provides a setting for complexity recurrences arising from ATR1 recursions, the solutions of which yield secondorder polynomial time bounds. The timecomplexity semantics is also shown to be sound relative to the costs of interpretation on the abstract machine.