Results 11  20
of
37
Region Analysis and the Polymorphic Lambda Calculus
 In Proc. of the 14th Annual IEEE Symposium on Logic in Computer Science
, 1999
"... We show how to translate the region calculus of Tofte and Talpin, a typed lambda calculus that can statically delimit the lifetimes of objects, into an extension of the polymorphic lambda calculus called F # . We give a denotational semantics of F # , and use it to give a simple and abstract proof o ..."
Abstract

Cited by 28 (0 self)
 Add to MetaCart
We show how to translate the region calculus of Tofte and Talpin, a typed lambda calculus that can statically delimit the lifetimes of objects, into an extension of the polymorphic lambda calculus called F # . We give a denotational semantics of F # , and use it to give a simple and abstract proof of the correctness of memory deallocation. 1 Introduction Implementations of modern programming languages divide dynamically allocated memory into two parts. The stack is used for data that has a simple lastin, firstout lifetime determined by block structure; the other part (often called the heap) is used for data whose lifetime extends beyond the scope of program blocks. The heap is periodically "garbage collected" to reclaim memory that is no longer needed. Tofte and Talpin's region calculus [23] attempts to unify these two styles of memory management. The region calculus divides memory into regions, and provides a local scoping mechanism for those regions. Every value created by the pro...
L³: A Linear Language with Locations
 IN SEVENTH INTERNATIONAL CONFERENCE ON TYPED LAMBDA CALCULI AND APPLICATIONS
, 2005
"... We explore foundational typing support for strong updates  updating a memory cell to hold values of unrelated types at different points in time. We present a simple, but expressive type system based upon standard linear logic, one that also enjoys a simple semantic interpretation for types tha ..."
Abstract

Cited by 23 (3 self)
 Add to MetaCart
We explore foundational typing support for strong updates  updating a memory cell to hold values of unrelated types at different points in time. We present a simple, but expressive type system based upon standard linear logic, one that also enjoys a simple semantic interpretation for types that is closely related to models for spatial logics. The typing
Correctness of Data Representations involving Heap Data Structures
 Science of Computer Programming
, 2003
"... While the semantics of local variables in programming languages is by now wellunderstood, the semantics of pointeraddressed heap variables is still an outstanding issue. In particular, the commonly assumed relational reasoning principles for data representations have not been validated in a se ..."
Abstract

Cited by 23 (8 self)
 Add to MetaCart
While the semantics of local variables in programming languages is by now wellunderstood, the semantics of pointeraddressed heap variables is still an outstanding issue. In particular, the commonly assumed relational reasoning principles for data representations have not been validated in a semantic model of heap variables. In this paper, we de ne a parametricity semantics for a Pascallike language with pointers and heap variables which gives such reasoning principles. It is found that the correspondences between data representations are not simply relations between states, but more intricate correspondences that also need to keep track of visible locations whose pointers can be stored and leaked.
Objects and classes in Algollike languages
 Information and Computation
, 2002
"... Many objectoriented languages used in practice descend from Algol. With this motivation, we study the theoretical issues underlying such languages via the theory of Algollike languages. It is shown that the basic framework of this theory extends cleanly and elegantly to the concepts of objects and ..."
Abstract

Cited by 22 (5 self)
 Add to MetaCart
Many objectoriented languages used in practice descend from Algol. With this motivation, we study the theoretical issues underlying such languages via the theory of Algollike languages. It is shown that the basic framework of this theory extends cleanly and elegantly to the concepts of objects and classes. An important idea that comes to light is that classes are abstract data types, whose theory corresponds to that of existential types. Equational and Hoarelike reasoning methods, and relational parametricity provide powerful formal tools for reasoning about Algollike objectoriented programs. 1
The Logical Approach to Stack Typing
, 2003
"... We develop a logic for reasoning about adjacency and separation of memory blocks, as well as aliasing of pointers. We provide a memory model for our logic and present a sound set of natural deductionstyle inference rules. We deploy the logic in a simple type system for a stackbased assembly langu ..."
Abstract

Cited by 22 (4 self)
 Add to MetaCart
We develop a logic for reasoning about adjacency and separation of memory blocks, as well as aliasing of pointers. We provide a memory model for our logic and present a sound set of natural deductionstyle inference rules. We deploy the logic in a simple type system for a stackbased assembly language. The connectives for the logic provide a flexible yet concise mechanism for controlling allocation, deallocation and access to both heapallocated and stackallocated data.
The RegularLanguage Semantics of SecondOrder Idealized ALGOL
, 2003
"... We explain how recent developments in game semantics can be applied to reasoning about equivalence of terms in a nontrivial fragment of Idealized Algol (IA) by expressing sets of complete plays as regular languages. Being derived directly from the fully abstract game semantics for IA, our model inh ..."
Abstract

Cited by 20 (8 self)
 Add to MetaCart
We explain how recent developments in game semantics can be applied to reasoning about equivalence of terms in a nontrivial fragment of Idealized Algol (IA) by expressing sets of complete plays as regular languages. Being derived directly from the fully abstract game semantics for IA, our model inherits its good theoretical properties; in fact, for secondorder IA taken as a standalone language the regular language model is fully abstract. The method is algorithmic and formal, which makes it suitable for automation. We show how reasoning is carried out using a metalanguage of extended regular expressions, a language for which equivalence is decidable.
A stepindexed model of substructural state
 In: Proc. International Conference on Functional Programming. (2005) 78–91
, 2005
"... The concept of a “unique ” object arises in many emerging programming languages such as Clean, CQual, Cyclone, TAL, and Vault. In each of these systems, unique objects make it possible to perform operations that would otherwise be prohibited (e.g., deallocating an object) or to ensure that some obli ..."
Abstract

Cited by 18 (5 self)
 Add to MetaCart
The concept of a “unique ” object arises in many emerging programming languages such as Clean, CQual, Cyclone, TAL, and Vault. In each of these systems, unique objects make it possible to perform operations that would otherwise be prohibited (e.g., deallocating an object) or to ensure that some obligation will be met (e.g., an opened file will be closed). However, different languages provide different interpretations of “uniqueness ” and have different rules regarding how unique objects interact with the rest of the language. Our goal is to establish a common model that supports each of these languages, by allowing us to encode and study the interactions of the different forms of uniqueness. The model we provide is based on a substructural variant of the polymorphic λcalculus, augmented with four kinds of mutable references: unrestricted, relevant, affine, and linear. The language has a natural operational semantics that supports deallocation of references, strong (typevarying) updates, and storage of unique objects in shared references. We establish the strong soundness of the type system by constructing a novel, semantic interpretation of the types.
A Relational Account of CallbyValue Sequentiality
 IN: PROC. 12TH SYMP. LOGIC IN COMPUTER SCIENCE
, 1999
"... We construct a model for FPC, a purely functional, sequential, callbyvalue language. The model is built from partial continuous functions, in the style of Plotkin, further constrained to be uniform with respect to a class of logical relations. We prove that the model is fully abstract. ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
We construct a model for FPC, a purely functional, sequential, callbyvalue language. The model is built from partial continuous functions, in the style of Plotkin, further constrained to be uniform with respect to a class of logical relations. We prove that the model is fully abstract.
Proof of Imperative Programs in Type Theory
, 1998
"... We present a new approach to certifying functional programs with imperative aspects, in the context of Type Theory. The key is a functional translation of imperative programs, based on a combination of the type and effect discipline and monads. Then an incomplete proof of the specification is built ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
We present a new approach to certifying functional programs with imperative aspects, in the context of Type Theory. The key is a functional translation of imperative programs, based on a combination of the type and effect discipline and monads. Then an incomplete proof of the specification is built in the Type Theory, whose gaps would correspond to proof obligations. On sequential imperative programs, we get the same proof obligations as those given by FloydHoare logic. Compared to the latter, our approach also includes functional constructions in a straightforward way. This work has been implemented in the Coq Proof Assistant and applied on nontrivial examples.
Answer type polymorphism in callbyname continuation passing
 In Proc. European Symposium on Programming, Springer Lecture Notes in Comput. Sci
, 2004
"... Abstract. This paper studies continuations by means of a polymorphic type system. The traditional callbyname continuation passing style transform admits a typing in which some answer types are polymorphic, even in the presence of firstclass control operators. By building on this polymorphic typin ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
Abstract. This paper studies continuations by means of a polymorphic type system. The traditional callbyname continuation passing style transform admits a typing in which some answer types are polymorphic, even in the presence of firstclass control operators. By building on this polymorphic typing, and using parametricity reasoning, we show that the callbyname transform satisfies the etalaw, and is in fact isomorphic to the more recent CPS transform defined by Streicher. 1