Results 1  10
of
11
A Region Inference Algorithm
 ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
, 1998
"... This article presents an algorithm which implements the specification. We prove that the algorithm is sound with respect to the region inference rules and that it always terminates even though the region inference rules permit polymorphic recursion in regions. The algorithm is the result of several ..."
Abstract

Cited by 86 (4 self)
 Add to MetaCart
This article presents an algorithm which implements the specification. We prove that the algorithm is sound with respect to the region inference rules and that it always terminates even though the region inference rules permit polymorphic recursion in regions. The algorithm is the result of several years of experiments with region inference algorithms in the ML Kit, a compiler from Standard ML to assembly language. We report on practical experience with the algorithm and give hints on how to implement it.
A Retrospective on RegionBased Memory Management
 HigherOrder and Symbolic Computation Journal
, 2004
"... We report on our experience with designing, implementing, proving correct, and evaluating a regionbased memory management system. ..."
Abstract

Cited by 24 (2 self)
 Add to MetaCart
(Show Context)
We report on our experience with designing, implementing, proving correct, and evaluating a regionbased memory management system.
Syntactic Type Soundness for the Region Calculus
, 2000
"... The region calculus of Tofte and Talpin is an annotated polymorphically typed lambda calculus which makes memory allocation and deallocation explicit. It is intended as an intermediate language in a compiler for MLlike languages. The region annotations are obtained by static region and effect infer ..."
Abstract

Cited by 21 (6 self)
 Add to MetaCart
The region calculus of Tofte and Talpin is an annotated polymorphically typed lambda calculus which makes memory allocation and deallocation explicit. It is intended as an intermediate language in a compiler for MLlike languages. The region annotations are obtained by static region and effect inference, which makes it an attractive alternative for garbage collection. Soundness of the region and effect system is crucial to guarantee safe deallocation of regions, i.e. deallocation should only take place for objects which are provable dead. Tofte and Talpin have proved type soundness of the region calculus using rulebased coinduction. This proof is quite complicated and not very intuitive. Much of the problem lies in the lowlevel bigstep operational semantics which involves manipulations of an explicit store and which has a coinductive definition. In this paper, we present a smallstep operational semantics for the region calculus, based on syntactic rewriting. We prove type soundness ...
Polymorphic Specialization for ML
 ACM Transactions on Programming Languages and Systems
, 2002
"... We present a novel technique for offine partial evaluation of functional languages with an MLstyle typing discipline. Our program specialization method comprises a polymorphic bindingtime analysis with polymorphic recursion. Based on the region calculus of Tofte and Talpin, we develop a bindingti ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
(Show Context)
We present a novel technique for offine partial evaluation of functional languages with an MLstyle typing discipline. Our program specialization method comprises a polymorphic bindingtime analysis with polymorphic recursion. Based on the region calculus of Tofte and Talpin, we develop a bindingtime analysis as a constraint analysis on top of region inference. Our insight is to regard binding times as properties of regions.
Bisimilarity for the region calculus
 HigherOrder and Symbolic Computation
"... Abstract. A region calculus is a programming language calculus with explicit instrumentation for memory management. Every value is annotated with a region in which it is stored and regions are allocated and deallocated in a stacklike fashion. The annotations can be statically inferred by a type and ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
Abstract. A region calculus is a programming language calculus with explicit instrumentation for memory management. Every value is annotated with a region in which it is stored and regions are allocated and deallocated in a stacklike fashion. The annotations can be statically inferred by a type and effect system, making a region calculus suitable as an intermediate language for a compiler of statically typed programming languages. Although a lot of attention has been paid to type soundness properties of different flavors of region calculi, it seems that little effort has been made to develop a semantic framework. In this paper, we present a theory based on bisimulation, which serves as a coinductive proof principle for showing equivalences of polymorphically regionannotated terms. Our notion of bisimilarity is reminiscent of open bisimilarity for the πcalculus and we prove it sound and complete with respect to Morrisstyle contextual equivalence. As an application, we formulate a syntactic equational theory, which is used elsewhere to prove the soundness of a specializer based on region inference. We use our bisimulation framework to show that the equational theory is sound with respect to contextual equivalence.
An Equational Theory for a Region Calculus
, 2002
"... A region calculus is a polymorphically typed lambda calculus with explicit memory management primitives. Every value is annotated with a region in which it is stored. Regions are allocated and deallocated in a stacklike fashion. The annotations can be statically inferred by a type and eect syst ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
A region calculus is a polymorphically typed lambda calculus with explicit memory management primitives. Every value is annotated with a region in which it is stored. Regions are allocated and deallocated in a stacklike fashion. The annotations can be statically inferred by a type and eect system, making a region calculus suitable as an intermediate language for a compiler of statically typed programming languages.
Typed Regions for TagFree Garbage Collection
, 2002
"... Abstract. This paper presents an extension to the TofteTalpin region type system, which makes it possible to combine regionbased memory management with a partly tagfree garbage collection algorithm. The memory discipline is implemented for Standard ML in the ML Kit compiler. Experiments show tha ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. This paper presents an extension to the TofteTalpin region type system, which makes it possible to combine regionbased memory management with a partly tagfree garbage collection algorithm. The memory discipline is implemented for Standard ML in the ML Kit compiler. Experiments show that, for a range of benchmark programs, the discipline improves performance, both with respect to memory usage and execution time. 1
Region Inference with Rank2 Intersection Types and its Formalization in Isabelle
, 1999
"... This working paper develops a TofteTalpin style region inference system... this paper have been formalized in Isabelle and all proofs have been mechanically verified. ..."
Abstract
 Add to MetaCart
This working paper develops a TofteTalpin style region inference system... this paper have been formalized in Isabelle and all proofs have been mechanically verified.
Abstract HOOTS’00 to appear Syntactic Type Soundness for the Region Calculus
"... The region calculus of Tofte and Talpin is an annotated polymorphically typed lambda calculus which makes memory allocation and deallocation explicit. It is intended as an intermediate language in a compiler for MLlike languages. The region annotations are obtained by static region and effect infer ..."
Abstract
 Add to MetaCart
(Show Context)
The region calculus of Tofte and Talpin is an annotated polymorphically typed lambda calculus which makes memory allocation and deallocation explicit. It is intended as an intermediate language in a compiler for MLlike languages. The region annotations are obtained by static region and effect inference, which makes it an attractive alternative for garbage collection. Soundness of the region and effect system is crucial to guarantee safe deallocation of regions, i.e. deallocation should only take place for objects which are provable dead. Tofte and Talpin have proved type soundness of the region calculus using rulebased coinduction. This proof is quite complicated and not very intuitive. Much of the problem lies in the lowlevel bigstep operational semantics which involves manipulations of an explicit store and which has a coinductive definition. In this paper, we present a smallstep operational semantics for the region calculus, based on syntactic rewriting. We prove type soundness following the approach of Wright and Felleisen, leading to very simple inductive proofs. 1
An Operational Theory for a Region Calculus
, 2001
"... A region calculus is a polymorphically typed lambda calculus with explicit memory management primitives. Every storable object is annotated with a region in which it resides as long as the region is not deallocated. Such regions can be statically inferred by a type and effect system, thereby making ..."
Abstract
 Add to MetaCart
(Show Context)
A region calculus is a polymorphically typed lambda calculus with explicit memory management primitives. Every storable object is annotated with a region in which it resides as long as the region is not deallocated. Such regions can be statically inferred by a type and effect system, thereby making a region calculus suitable as an intermediate language for a compiler of statically typed programming languages. One of the attractive properties of region inference for memory management is that it avoids the need of runtime garbage collection. Although a lot of attention has been paid to type soundness properties of different avors of region calculi, it seems that little effort has been made to develop a semantic framework for reasoning about regionannotated expressions. In this paper, we formulate an entirely operational theory for a region calculus based on the syntactic notion of contextual equivalence. We do so by defining an appropriate notion of bisimilarity and prove it equivalent to contextual equivalence, ie. two expressions are equivalent if they exhibit the same termination behavior when embedded in an arbitrary context. Bisimilarity provides a coinductive proof principle which we use to prove the soundness of an operational theory. The theory specifies an equivalence for region calculus terms and includes standard evaluation, congruence rules and a handful of useful transformations.