Results 1  10
of
19
A Core Calculus of Dependency
 IN PROC. 26TH ACM SYMP. ON PRINCIPLES OF PROGRAMMING LANGUAGES (POPL
, 1999
"... Notions of program dependency arise in many settings: security, partial evaluation, program slicing, and calltracking. We argue that there is a central notion of dependency common to these settings that can be captured within a single calculus, the Dependency Core Calculus (DCC), a small extension ..."
Abstract

Cited by 225 (24 self)
 Add to MetaCart
Notions of program dependency arise in many settings: security, partial evaluation, program slicing, and calltracking. We argue that there is a central notion of dependency common to these settings that can be captured within a single calculus, the Dependency Core Calculus (DCC), a small extension of Moggi's computational lambda calculus. To establish this thesis, we translate typed calculi for secure information flow, bindingtime analysis, slicing, and calltracking into DCC. The translations help clarify aspects of the source calculi. We also define a semantic model for DCC and use it to give simple proofs of noninterference results for each case.
A Syntactic Theory of Dynamic Binding
 HigherOrder and Symbolic Computation
, 1997
"... . Dynamic binding, which has always been associated with Lisp, is still semantically obscure to many. Although largely replaced by lexical scoping, not only does dynamic binding remain an interesting and expressive programming technique in specialised circumstances, but also it is a key notion in se ..."
Abstract

Cited by 33 (1 self)
 Add to MetaCart
. Dynamic binding, which has always been associated with Lisp, is still semantically obscure to many. Although largely replaced by lexical scoping, not only does dynamic binding remain an interesting and expressive programming technique in specialised circumstances, but also it is a key notion in semantics. This paper presents a syntactic theory that enables the programmer to perform equational reasoning on programs using dynamic binding. The theory is proved to be sound and complete with respect to derivations allowed on programs in "dynamicenvironment passing style". From this theory, we derive a sequential evaluation function in a contextrewriting system. Then, we exhibit the power and usefulness of dynamic binding in two different ways. First, we prove that dynamic binding adds expressiveness to a purely functional language. Second, we show that dynamic binding is an essential notion in semantics that can be used to define the semantics of exceptions. Afterwards, we further refin...
Monadic Encapsulation of Effects: A Revised Approach (Extended Version)
 Journal of Functional Programming
, 1999
"... Launchbury and Peyton Jones came up with an ingenious idea for embedding regions of imperative programming in a pure functional language like Haskell. The key idea was based on a simple modification of HindleyMilner's type system. Our first contribution is to propose a more natural encapsulati ..."
Abstract

Cited by 28 (4 self)
 Add to MetaCart
Launchbury and Peyton Jones came up with an ingenious idea for embedding regions of imperative programming in a pure functional language like Haskell. The key idea was based on a simple modification of HindleyMilner's type system. Our first contribution is to propose a more natural encapsulation construct exploiting higherorder kinds, which achieves the same encapsulation effect, but avoids the ad hoc type parameter of the original proposal. The second contribution is a type safety result for encapsulation of strict state using both the original encapsulation construct and the newly introduced one. We establish this result in a more expressive context than the original proposal, namely in the context of the higherorder lambdacalculus. The third contribution is a type safety result for encapsulation of lazy state in the higherorder lambdacalculus. This result resolves an outstanding open problem on which previous proof attempts failed. In all cases, we formalize the intended implementations as simple bigstep operational semantics on untyped terms, which capture interesting implementation details not captured by the reduction semantics proposed previously. 1
Monadic Regions
, 2004
"... Regionbased type systems provide programmer control over memory management without sacrificing typesafety. However, the type systems for regionbased languages, such as the MLKit or Cyclone, are relatively complicated, so proving their soundness is nontrivial. This paper shows that the complicati ..."
Abstract

Cited by 18 (2 self)
 Add to MetaCart
Regionbased type systems provide programmer control over memory management without sacrificing typesafety. However, the type systems for regionbased languages, such as the MLKit or Cyclone, are relatively complicated, so proving their soundness is nontrivial. This paper shows that the complication is in principle unnecessary. In particular, we show that plain old parametric polymorphism, as found in Haskell, is all that is needed. We substantiate this claim by giving a type and meaningpreserving translation from a regionbased language based on core Cyclone to a monadic variant of System F with region primitives whose types and operations are inspired by (and generalize) the ST monad.
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
(Show Context)
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.
Note on algol and conservatively extending functional programming
 Journal of Functional Programming
, 1995
"... ..."
Relational semantics for higherorder programs
 Proc. 8th Int. Conf. Mathematics of Program Construction (MPC’06
, 2006
"... Abstract. Most previous work on the semantics of higherorder programs with local state involves complex storage modeling with pointers and memory cells, complicated categorical constructions, or reasoning in the presence of context. In this paper we show how a relatively simple relational semantics ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
Abstract. Most previous work on the semantics of higherorder programs with local state involves complex storage modeling with pointers and memory cells, complicated categorical constructions, or reasoning in the presence of context. In this paper we show how a relatively simple relational semantics can be used to avoid these complications. We provide a natural relational semantics for a programming language with higherorder functions. The semantics is purely compositional, with all contextual considerations completely encapsulated in the state. We show several equivalence proofs using this semantics based on examples of Meyer and Sieber (1988). 1
An EquivalencePreserving CPS Translation via MultiLanguage Semantics (Technical Appendix)
"... the complete set of technical definitions (Sections 3 to 7), and the proofs (Sections 8 to 13). In particular, in Section 1.3, we adopt System F without the CPS restriction as our target language and present the changes needed—to the backtranslation and the proofs—to establish full abstraction in t ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
(Show Context)
the complete set of technical definitions (Sections 3 to 7), and the proofs (Sections 8 to 13). In particular, in Section 1.3, we adopt System F without the CPS restriction as our target language and present the changes needed—to the backtranslation and the proofs—to establish full abstraction in this setting.
Relational Semantics of Local Variable Scoping
, 2005
"... Most previous work on the equivalence of programs in the presence of local state has involved intricate memory modeling and the notion of contextual (observable) equivalence. We show how relational semantics can be used to avoid these complications. We define a notion of local variable scoping, ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Most previous work on the equivalence of programs in the presence of local state has involved intricate memory modeling and the notion of contextual (observable) equivalence. We show how relational semantics can be used to avoid these complications. We define a notion of local variable scoping, along with a purely compositional semantics based on binary relations, such that all contextual considerations are completely encapsulated in the semantics. We then give an axiom system for program equivalence in the presence of local state that avoids all mention of memory or context and that does not use semantic arguments. The system is complete relative to the underlying flat equational theory. We also indicate briefly how the semantics can be extended to include higherorder functions.
Retraction Approach to CPS Transform
 HIGHERORDER AND SYMBOLIC COMPUTATION
, 1998
"... We study the continuation passing style (CPS) transform and its generalization, the computational transform, in which the notion of computation is generalized from continuation passing to an arbitrary one. To establish a relation between direct style and continuation passing style interpretation ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We study the continuation passing style (CPS) transform and its generalization, the computational transform, in which the notion of computation is generalized from continuation passing to an arbitrary one. To establish a relation between direct style and continuation passing style interpretation of sequential callbyvalue programs, we prove the Retraction Theorem which says that a lambda term can be recovered from its continuationized form via a definable retraction. The Retraction Theorem is proved in the logic of computational lambda calculus for the simply typable terms.