Results 1  10
of
11
Typed Memory Management in a Calculus of Capabilities
, 2000
"... Regionbased memory management is an alternative to standard tracing garbage collection that makes potentially dangerous operations such as memory deallocation explicit but verifiably safe. In this article, we present a new compiler intermediate language, called the Capability Calculus, that supp ..."
Abstract

Cited by 215 (22 self)
 Add to MetaCart
(Show Context)
Regionbased memory management is an alternative to standard tracing garbage collection that makes potentially dangerous operations such as memory deallocation explicit but verifiably safe. In this article, we present a new compiler intermediate language, called the Capability Calculus, that supports regionbased memory management and enjoys a provably safe type system. Unlike previous regionbased type systems, region lifetimes need not be lexically scoped and yet the language may be checked for safety without complex analyses. Therefore, our type system may be deployed in settings such as extensible operating systems where both the performance and safety of untrusted code is important.
Representing Layered Monads
 PROCEEDINGS OF THE TWENTYSIXTH ANNUAL ACM SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES
, 1999
"... There has already been considerable research on constructing modular, monadbased specications of computational effects (state, exceptions, nondeterminism, etc.) in programming languages. We present a simple framework in this tradition, based on a Churchstyle effecttyping system for an MLlike lan ..."
Abstract

Cited by 67 (2 self)
 Add to MetaCart
(Show Context)
There has already been considerable research on constructing modular, monadbased specications of computational effects (state, exceptions, nondeterminism, etc.) in programming languages. We present a simple framework in this tradition, based on a Churchstyle effecttyping system for an MLlike language. The semantics of this language is formally dened by a series of monadic translations, each one expanding away a layer of effects. Such a layered specication is easy to reason about, but its direct implementation (whether by parameterized interpretation or by actual translation) is often prohibitively inefficient. By exploiting deeper semantic properties of monads, however, it is also possible to derive a vastly more efficient implementation: we show that each layer of eects can be uniformly simulated by continuationpassing, and further that multiple such layers can themselves be simulated by a standard semantics for call/cc and mutable state. Thus, even multieffect programs can be execu...
Typed Memory Management via Static Capabilities
 ACM Transactions on Programming Languages and Systems
, 2000
"... Machine We have described the type constructor language of CL and the typing rules for the main termlevel constructs. In fact, the previous section contains all of the ACM Transactions on Programming Languages and Systems, Vol. TBD, No. TDB, Month Year. 20 D. Walker, K. Crary, and G. Morriset ..."
Abstract

Cited by 64 (7 self)
 Add to MetaCart
(Show Context)
Machine We have described the type constructor language of CL and the typing rules for the main termlevel constructs. In fact, the previous section contains all of the ACM Transactions on Programming Languages and Systems, Vol. TBD, No. TDB, Month Year. 20 D. Walker, K. Crary, and G. Morrisett #; #;# # h at r : # # # # f : Type #; ## # ; #{f :# f , x 1 :# 1 , . . . , xn :# n}; C # e # # f = #[# # ].(C, # 1 , . . . , #n ) # 0 at r f, x 1 , . . . , xn ## Dom(#) # #; #;# # fix f[# # ](C, x 1 :# 1 , . . . , xn :# n ).e at r : # f (hfix) #; #;# # v i : # i (for 1 # i # n) # # r : Rgn #; #;# # #v 1 , . . . , vn # at r : ## 1 , . . . , #n # at r (htuple) #; #;# # h at r : # # # # # # = # : Type #; #;# # h at r : # (heq) #; #;# # v : # #; #;# # x : # (#(x) = #) (vvar) #; #;# # i : int (vint) #; #;# # v : #[#:#, # # ].(C, # 1 , . . . , #n ) # 0 at r # # c : # #; #;# # v[c] : (#[# # ].(C, # 1 , . . . , #n ) # 0)[c/#] at r (vtype) #; #;# # v : #[# # C ## , # # ].(C # , # 1 , . . . , #n ) # 0 at r # # C # C ## #; #;# # v[C] : (#[# # ].(C # , # 1 , . . . , #n ) # 0)[C/#] at r (vsub) #; #;# # v : # # # # # # = # : Type #; #;# # v : # (veq) Fig. 6. Capability static semantics: Heap and word values. information programmers or compilers require to write typesafe programs in CL. However, in order to prove a type soundness result in the style of Wright and Felleisen [Wright and Felleisen 1994], we must be able to type check programs at every step during their evaluation. In this section, we give the static semantics of the runtime values that are not normally manipulated by programmers, but are nevertheless necessary to prove our soundness result. At first, the formal definition ...
Embedded Interpreters
 UNDER CONSIDERATION FOR PUBLICATION IN J. FUNCTIONAL PROGRAMMING
, 2003
"... This is a tutorial on using typeindexed embedding/projection pairs when writing interpreters in staticallytyped functional languages. The method allows (higherorder) values in the interpreting language to be embedded in the interpreted language and values from the interpreted language may be proj ..."
Abstract

Cited by 22 (2 self)
 Add to MetaCart
This is a tutorial on using typeindexed embedding/projection pairs when writing interpreters in staticallytyped functional languages. The method allows (higherorder) values in the interpreting language to be embedded in the interpreted language and values from the interpreted language may be projected back into the interpreting one. This is particularly useful when adding commandline interfaces or scripting languages to applications written in functional languages. We first
Axioms for Recursion in CallbyValue
 HIGHERORDER AND SYMBOLIC COMPUT
, 2001
"... We propose an axiomatization of fixpoint operators in typed callbyvalue programming languages, and give its justifications in two ways. First, it is shown to be sound and complete for the notion of uniform Tfixpoint operators of Simpson and Plotkin. Second, the axioms precisely account for Filins ..."
Abstract

Cited by 12 (5 self)
 Add to MetaCart
(Show Context)
We propose an axiomatization of fixpoint operators in typed callbyvalue programming languages, and give its justifications in two ways. First, it is shown to be sound and complete for the notion of uniform Tfixpoint operators of Simpson and Plotkin. Second, the axioms precisely account for Filinski's fixpoint operator derived from an iterator (infinite loop constructor) in the presence of firstclass continuations, provided that we define the uniformity principle on such an iterator via a notion of effectfreeness (centrality). We then explain how these two results are related in terms of the underlying categorical structures.
A Study of Evaluation Order Semantics in Expressions with Side Effects
, 2000
"... The presence of side effects in even a very simple language of expressions gives rise to a number of semantic questions. The issue of evaluation order becomes a crucial one and, unless a specific order is enforced, the language becomes nondeterministic. In this paper we study the denotational seman ..."
Abstract

Cited by 10 (3 self)
 Add to MetaCart
The presence of side effects in even a very simple language of expressions gives rise to a number of semantic questions. The issue of evaluation order becomes a crucial one and, unless a specific order is enforced, the language becomes nondeterministic. In this paper we study the denotational semantics of such a language under a variety of possible evaluation strategies, from simpler to more complex, concluding with unspecified evaluation order, unspecified order of side effects and the mechanism of sequence points that is particular to the ANSI C programming language. In doing so, we adopt a dialect of Haskell as a metalanguage, instead of mathematical notation, and use monads and monad transformers to improve modularity. In this way, only small modifications are required for each transition. The result is a better understanding of different evaluation strategies and a unified way of specifying their semantics. Furthermore, a significant step is achieved towards a complete and accurate semant...
A Monadic Probabilistic Language
 In Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
, 2003
"... Motivated by many practical applications that have to compute in the presence of uncertainty, we propose a monadic probabilistic language based upon the mathematical notion of sampling function. Our language provides a unified representation scheme for probability distributions, enjoys rich expressi ..."
Abstract

Cited by 10 (5 self)
 Add to MetaCart
Motivated by many practical applications that have to compute in the presence of uncertainty, we propose a monadic probabilistic language based upon the mathematical notion of sampling function. Our language provides a unified representation scheme for probability distributions, enjoys rich expressiveness, and o#ers high versatility in encoding probability distributions. We also develop a novel style of operational semantics called a horizontal operational semantics, under which an evaluation returns not a single outcome but multiple outcomes. We have preliminary evidence that the horizontal operational semantics improves the ordinary operational semantics with respect to both execution time and accuracy in representing probability distributions.
A Modal Calculus for Effect Handling
, 2003
"... In their purest formulation, monads are used in functional programming for two purposes: (1) to hygienically propagate effects, and (2) to globalize the effect scope  once an effect occurs, the purity of the surrounding computation cannot be restored. As a consequence, monadic typing does not prov ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
In their purest formulation, monads are used in functional programming for two purposes: (1) to hygienically propagate effects, and (2) to globalize the effect scope  once an effect occurs, the purity of the surrounding computation cannot be restored. As a consequence, monadic typing does not provide very naturally for the practically important ability to handle effects, and there is a number of previous works directed toward remedying this deficiency. It is mostly based on extending the monadic framework with further extralogical constructs to support handling. In this paper we adopt...
Typespecialized Serialization with Sharing
, 2004
"... In this paper we present an implementation of a Standard ML combinator library for serializing and deserializing data structures. The combinator library supports serialization of cyclic data structures and sharing. It generates compact serialized values, both due to sharing, but also due to type spe ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
In this paper we present an implementation of a Standard ML combinator library for serializing and deserializing data structures. The combinator library supports serialization of cyclic data structures and sharing. It generates compact serialized values, both due to sharing, but also due to type specialization. The library is type safe in the sense that a type specialized serializer can be applied only to values of the specialized type. In the paper, we demonstrate how programmer control provided by the combinator library can lead to efficient serializers compared to generic serializers supported by traditional language implementations. 1
Axioms for Recursion in CallbyValue (Extended Abstract)
, 2001
"... ) Masahito Hasegawa and Yoshihiko Kakutani Research Institute for Mathematical Sciences, Kyoto University {hassei,kakutani}@kurims.kyotou.ac.jp Abstract. We propose an axiomatization of fixpoint operators in typed callbyvalue programming languages, and give its justifications in two ways. First ..."
Abstract
 Add to MetaCart
(Show Context)
) Masahito Hasegawa and Yoshihiko Kakutani Research Institute for Mathematical Sciences, Kyoto University {hassei,kakutani}@kurims.kyotou.ac.jp Abstract. We propose an axiomatization of fixpoint operators in typed callbyvalue programming languages, and give its justifications in two ways. First, it is shown to be sound and complete for the notion of uniform T fixpoint operators of Simpson and Plotkin. Second, the axioms precisely account for Filinski's fixpoint operator derived from an iterator (infinite loop constructor) in the presence of firstclass controls, provided that we define the uniformity principle on such an iterator via a notion of e#ectfreeness (centrality). We also investigate how these two results are related in terms of the underlying categorical models. 1 Introduction While the equational theories of fixpoint operators in callbyname programming languages and in domain theory have been extensively studied and now there are some canonical axiomatizations (inc...