We describe a simple strictness analyser for purely-functional programs, show how its results are used to improve programs, and provide measurements of the effects of these improvements. These measurements are given both in terms of overall run-time, and in terms of internal operations such as allocations, updates, etc. Despite its simplicity, the analyser handles higher-order functions, and non-flat domains provided they are non-recursive. Ths paper appears in Functional Programming, Glasgow 1993, ed Hammond and O'Donnell, Springer Workshops in Computer Science, 1993, pp201-220. 1 Introduction A lot has been written about strictness analysis for non-strict functional programs, usually in the hope that the results of the analysis can ...
AbstractIn this paper we present two non-standard-type inference systems for conjunctive strictness ...
A problem arises when the usual rules of fold/unfold transformation are applied in a non--strict pro...
This report deals with strictness types, a way of recording whether a function needs its argument(s)...
AbstractAbstract interpretation is a compile-time technique which is used to gain information about ...
A substantial amount of work has been devoted to the proof of correctness of various program analyse...
Properties of programs can be formulated using various techniques: dataflow analysis, abstract inter...
. We show that compiler optimisations based on strictness analysis can be expressed formally in the ...
Abstract. Properties of programs can be formulated using various tech-niques: dataflow analysis, abs...
In a non-strict functional programming language functions that yield the same result for all total a...
AbstractExpression evaluation in lazy applicative languages is usually implemented by an expensive m...
. In this paper we present a general framework for type-based analyses of functional programs. Our f...
Profiling tools, which measure and display the dynamic space and time behaviour of programs, are ess...
In a non-strict programming language like Haskell a function only evaluates the parts of an argument...
The major question examined by this paper is whether sufficient fine-grain parallelism can be obtain...
This paper shows how to implement sensible polymorphic strictness analysis using the Frontiers algor...
AbstractIn this paper we present two non-standard-type inference systems for conjunctive strictness ...
A problem arises when the usual rules of fold/unfold transformation are applied in a non--strict pro...
This report deals with strictness types, a way of recording whether a function needs its argument(s)...
AbstractAbstract interpretation is a compile-time technique which is used to gain information about ...
A substantial amount of work has been devoted to the proof of correctness of various program analyse...
Properties of programs can be formulated using various techniques: dataflow analysis, abstract inter...
. We show that compiler optimisations based on strictness analysis can be expressed formally in the ...
Abstract. Properties of programs can be formulated using various tech-niques: dataflow analysis, abs...
In a non-strict functional programming language functions that yield the same result for all total a...
AbstractExpression evaluation in lazy applicative languages is usually implemented by an expensive m...
. In this paper we present a general framework for type-based analyses of functional programs. Our f...
Profiling tools, which measure and display the dynamic space and time behaviour of programs, are ess...
In a non-strict programming language like Haskell a function only evaluates the parts of an argument...
The major question examined by this paper is whether sufficient fine-grain parallelism can be obtain...
This paper shows how to implement sensible polymorphic strictness analysis using the Frontiers algor...
AbstractIn this paper we present two non-standard-type inference systems for conjunctive strictness ...
A problem arises when the usual rules of fold/unfold transformation are applied in a non--strict pro...
This report deals with strictness types, a way of recording whether a function needs its argument(s)...