This thesis is concerned with the resource consumption of lazy functional languages. It touches upon two aspects: how to reason about the space-safety of program transformations, and how to apply usage analysis for compiler optimisation. The thesis is a collection of articles. In the rst paper we study the notion of space improvement. We say that that a program fragment is space improved by another if and only if when we replace the former by the latter in any whole program the space behaviour is improved. We will refer to the induced equivalence as space equivalence. We show that many of the extensional equivalences that lazy functional languages enjoy carry over as space equivalences, and we demonstrate that the space improvement theory ...
Automatic memory management is an important concept in many high order languages. It improves produc...
Programming resource-sensitive systems, such as real-time embedded systems, requires guaranteeing bo...
In this paper we examine parameterized procedural abstraction. This is an extension of an optimizati...
AbstractWe introduce a space-improvement relation on programs which guarantees that whenever M is im...
We explore space improvements in LRP, a polymorphically typed call-by-need functional core language....
Innocent-looking program transformations can easily change the space complexity of lazy functional ...
We explore space improvements in LRP, a polymorphically typed call-by-need functional core language....
Existing work on compilers has often primarily concerned itself with preserving behavior, but progra...
International audienceThe omnipresence of resource-constrained embedded systems makes them critical ...
In this thesis we present and analyse a set of automatic source-to-source program transformations th...
Usage analysis aims to predict the number of times a heap allocated closure is used. Previously prop...
AbstractIf it can be determined at compile-time how many times values will be used within lazy funct...
. This paper will present an analysis for detecting single uses of values in functional programs du...
In Part I [5], we proposed an approach to formally describe and compare functional languages impleme...
We present an implementation of an interpreter LRPi for the call-by-need calculus LRP, based on a va...
Automatic memory management is an important concept in many high order languages. It improves produc...
Programming resource-sensitive systems, such as real-time embedded systems, requires guaranteeing bo...
In this paper we examine parameterized procedural abstraction. This is an extension of an optimizati...
AbstractWe introduce a space-improvement relation on programs which guarantees that whenever M is im...
We explore space improvements in LRP, a polymorphically typed call-by-need functional core language....
Innocent-looking program transformations can easily change the space complexity of lazy functional ...
We explore space improvements in LRP, a polymorphically typed call-by-need functional core language....
Existing work on compilers has often primarily concerned itself with preserving behavior, but progra...
International audienceThe omnipresence of resource-constrained embedded systems makes them critical ...
In this thesis we present and analyse a set of automatic source-to-source program transformations th...
Usage analysis aims to predict the number of times a heap allocated closure is used. Previously prop...
AbstractIf it can be determined at compile-time how many times values will be used within lazy funct...
. This paper will present an analysis for detecting single uses of values in functional programs du...
In Part I [5], we proposed an approach to formally describe and compare functional languages impleme...
We present an implementation of an interpreter LRPi for the call-by-need calculus LRP, based on a va...
Automatic memory management is an important concept in many high order languages. It improves produc...
Programming resource-sensitive systems, such as real-time embedded systems, requires guaranteeing bo...
In this paper we examine parameterized procedural abstraction. This is an extension of an optimizati...