Results 1 
7 of
7
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 18 (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 ...
Syntactic Type Soundness Results for the Region Calculus
 INFORMATION AND COMPUTATION
, 2001
"... The region calculus of Tofte and Talpin is a polymorphically typed lambda calculus with annotations that make memory allocation and deallocation explicit. It is intended as an intermediate language for implementing ML without garbage collection. Static region and eect inference can be used to genera ..."
Abstract

Cited by 15 (5 self)
 Add to MetaCart
The region calculus of Tofte and Talpin is a polymorphically typed lambda calculus with annotations that make memory allocation and deallocation explicit. It is intended as an intermediate language for implementing ML without garbage collection. Static region and eect inference can be used to generate annotations from a given ML program. Soundness of the calculus with respect to the region and eect system is crucial to guarantee safe deallocation of regions, i.e., deallocation should only take place for objects which are provably dead. The original soundness proof by Tofte and Talpin requires a complex coinductive safety relation. In this paper, we present two smallstep operational semantics for the region calculus and prove their soundness. Following the syntactic approach of Wright, Felleisen, and Harper, we obtain simple inductive proofs. The rst semantics is storeless. It is simple and elegant and gives rise to perspicuous proofs. The second semantics provides a storebased model for the region calculus. It is slightly more complicated, but includes operations on references with destructive update. We prove (the pure fragment of) both semantics equivalent to the original evaluationstyle formulation by Tofte and Talpin.
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 14 (0 self)
 Add to MetaCart
We report on our experience with designing, implementing, proving correct, and evaluating a regionbased memory management system.
Confining Data and Processes in Global Computing Applications
 Science of Computer Programming
, 2004
"... A programming notation is introduced that can be used for protecting secrecy and integrity of data in global computing applications. The approach is based on the explicit annotations of data and network nodes. Data are tagged with information about the allowed movements, while network nodes are t ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
A programming notation is introduced that can be used for protecting secrecy and integrity of data in global computing applications. The approach is based on the explicit annotations of data and network nodes. Data are tagged with information about the allowed movements, while network nodes are tagged with information about which nodes can send data and spawn processes over them. These restrictions/annotations are used to confine the movement of data and processes. First, a general framework for describing global computing applications is proposed and the issues related to confinement are discussed in such a context. Then, the general framework is instantiated onto three models for process interaction and mobility, namely cKlaim (the kernel of Klaim), D# (a distributed version of the #calculus) and M (a variant of the Mobile Ambient Calculus). For all of these formalisms, it is shown that their semantics guarantees that computations proceed only while respecting confinement constraints. It is proven that, after successful static type checking, data can reside at, and cross only, authorized nodes. Possible "localizations" of this property are discussed that require checking only relevant subnets. Finally, the theory is used to model secure behaviours of a UNIXlike multiuser system.
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
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.
RegionBased Program Specialization – An Operational Approach to Polymorphic Offline Partial Evaluation for MLlike Languages
, 2002
"... des Quellprogramms statisch, also wenig veränderlich ist; denn partielle Auswerter spezialisieren Programme, indem sie möglichst viele Operationen durch das aggressive Weiterleiten von Konstanten und das Entfalten von Funktionen bezüglich der statischen Eingabe reduzieren. Eine besonders viel benutz ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
des Quellprogramms statisch, also wenig veränderlich ist; denn partielle Auswerter spezialisieren Programme, indem sie möglichst viele Operationen durch das aggressive Weiterleiten von Konstanten und das Entfalten von Funktionen bezüglich der statischen Eingabe reduzieren. Eine besonders viel benutzte Variante ist die offline partielle Auswertung, die durch Bindungszeitanalyse ermittelt, welche Operationen spezialisiert werden können. In der Vergangenheit haben offlineSysteme sich jedoch überwiegend auf naive Techniken zur Annotation von Bindungszeiten oder einfach getypte Programmiersprachen beschränkt. Das volle Potential der Methode wurde dadurch nicht annähernd ausgeschöpft; eine Integration von fortgeschrittenen Annotationstechniken und eine Erweiterung auf komplexere Typsysteme blieben, sowohl theoretisch als auch praktisch, offene und interessante Fragen. In der vorliegenden Arbeit präsentieren wir im Kontext MLähnlicher funktionaler Sprachen eine zufriedenstellende Antwort auf diese Fragen. Unsere grundlegende Idee ist es, Techniken aus dem Bereich der Speicherverwaltung zu erweitern und in den
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
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.