A number of useful optimisations are enabled if we can determine when a value is accessed at most once. We extend the Hindley-Milner type system with uses, yielding a typeinference based program analysis which determines when values are accessed at most once. Our analysis can handle higher-order functions and data structures, and admits principal types for terms. Unlike previous analyses, we prove our analysis sound with respect to call-by-need reduction. Call-by-name reduction does not provide an accurate model of how often a value is used during lazy evaluation, since it duplicates work which would actually be shared in a real implementation. Our type system can easily be modified to analyse usage in a call-by-value language
AbstractThe Hindley/Milner discipline for polymorphic type inference in functional programming langu...
Abstract. We present a procedure to infer a typing for an arbitrary -term M in an intersection-type ...
We propose a typed call-by-name λ-calculus with shift, reset and strict functions and describe its l...
A number of useful optimisations are enabled if we can determine when a value is accessed at most on...
A number of useful optimisations are enabled if we can determine when a value is accessed at most on...
. This paper will present an analysis for detecting single uses of values in functional programs du...
AbstractApproaches to static analysis based on nonstandard type systems have received considerable i...
Effect systems refine types with information about the behaviour of programs. They have been used fo...
Usage analysis aims to predict the number of times a heap allocated closure is used. Previously prop...
. In this paper we present a general framework for type-based analyses of functional programs. Our f...
Linear dependent types were introduced recently [1] as a formal system that allows to precisely capt...
International audienceLinear dependent types allow to precisely capture both the extensional behavio...
International audienceA cornerstone of the theory of λ-calculus is that intersection types character...
Highly dynamic languages like Smalltalk do not have much static type information immediately availab...
Understanding procedure calls is crucial in computer science and everyday programming. Among the mos...
AbstractThe Hindley/Milner discipline for polymorphic type inference in functional programming langu...
Abstract. We present a procedure to infer a typing for an arbitrary -term M in an intersection-type ...
We propose a typed call-by-name λ-calculus with shift, reset and strict functions and describe its l...
A number of useful optimisations are enabled if we can determine when a value is accessed at most on...
A number of useful optimisations are enabled if we can determine when a value is accessed at most on...
. This paper will present an analysis for detecting single uses of values in functional programs du...
AbstractApproaches to static analysis based on nonstandard type systems have received considerable i...
Effect systems refine types with information about the behaviour of programs. They have been used fo...
Usage analysis aims to predict the number of times a heap allocated closure is used. Previously prop...
. In this paper we present a general framework for type-based analyses of functional programs. Our f...
Linear dependent types were introduced recently [1] as a formal system that allows to precisely capt...
International audienceLinear dependent types allow to precisely capture both the extensional behavio...
International audienceA cornerstone of the theory of λ-calculus is that intersection types character...
Highly dynamic languages like Smalltalk do not have much static type information immediately availab...
Understanding procedure calls is crucial in computer science and everyday programming. Among the mos...
AbstractThe Hindley/Milner discipline for polymorphic type inference in functional programming langu...
Abstract. We present a procedure to infer a typing for an arbitrary -term M in an intersection-type ...
We propose a typed call-by-name λ-calculus with shift, reset and strict functions and describe its l...