Results 1  10
of
25
A Linearly Typed Assembly Language
 In Workshop on Types in Compilation
"... Today's typesafe lowlevel languages rely on garbage collection to recycle heapallocated objects safely. We present LTAL, a safe, lowlevel, yet simple language that "stands on its own": it guarantees safe execution within a fixed memory space, without relying on external runtime support. We demo ..."
Abstract

Cited by 145 (35 self)
 Add to MetaCart
Today's typesafe lowlevel languages rely on garbage collection to recycle heapallocated objects safely. We present LTAL, a safe, lowlevel, yet simple language that "stands on its own": it guarantees safe execution within a fixed memory space, without relying on external runtime support. We demonstrate the expressiveness of LTAL by giving a typepreserving compiler for the functional core of ML. But this independence comes at a steep price: LTAL's type system imposes a draconian discipline of linearity that ensures that memory can be reused safely, but prohibits any useful kind of sharing. We present the results of experiments with a prototype LTAL system that show just how high the price of linearity can be.
A Type System for Bounded Space and Functional inPlace Update
, 2000
"... We show how linear typing can be used to obtain functional programs which modify heapallocated data structures in place. We present this both as a "design pattern" for writing Ccode in a functional style and as a compilation process from linearly typed firstorder functional programs into malloc() ..."
Abstract

Cited by 84 (14 self)
 Add to MetaCart
We show how linear typing can be used to obtain functional programs which modify heapallocated data structures in place. We present this both as a "design pattern" for writing Ccode in a functional style and as a compilation process from linearly typed firstorder functional programs into malloc()free C code. The main technical result is the correctness of this compilation. The crucial innovation over previous linear typing schemes consists of the introduction of a resource type # which controls the number of constructor symbols such as cons in recursive definitions and ensures linear space while restricting expressive power surprisingly little. While the space e#ciency brought about by the new typing scheme and the compilation into C can also be realised by with stateoftheart optimising compilers for functional languages such as Ocaml [16], the present method provides guaranteed bounds on heap space which will be of use for applications such as languages for embedd...
A lambda calculus for quantum computation
 SIAM Journal of Computing
"... The classical lambda calculus may be regarded both as a programming language and as a formal algebraic system for reasoning about computation. It provides a computational model equivalent to the Turing machine, and continues to be of enormous benefit in the classical theory of computation. We propos ..."
Abstract

Cited by 49 (1 self)
 Add to MetaCart
The classical lambda calculus may be regarded both as a programming language and as a formal algebraic system for reasoning about computation. It provides a computational model equivalent to the Turing machine, and continues to be of enormous benefit in the classical theory of computation. We propose that quantum computation, like its classical counterpart, may benefit from a version of the lambda calculus suitable for expressing and reasoning about quantum algorithms. In this paper we develop a quantum lambda calculus as an alternative model of quantum computation, which combines some of the benefits of both the quantum Turing machine and the quantum circuit models. The calculus turns out to be closely related to the linear lambda calculi used in the study of Linear Logic. We set up a computational model and an equational proof system for this calculus, and we argue that it is equivalent to the quantum Turing machine.
Operational Properties of Lily, a Polymorphic Linear Lambda Calculus with Recursion
"... Plotkin has advocated the combination of linear lambda calculus, polymorphism and fixed point recursion as an expressive semantic metalanguage. We study its expressive power from an operational point of view. We show that the naturally callbyvalue operators of linear lambda calculus can be given a ..."
Abstract

Cited by 35 (1 self)
 Add to MetaCart
Plotkin has advocated the combination of linear lambda calculus, polymorphism and fixed point recursion as an expressive semantic metalanguage. We study its expressive power from an operational point of view. We show that the naturally callbyvalue operators of linear lambda calculus can be given a callbyname semantics without affecting termination at exponential types and hence without affecting ground contextual equivalence. This result is used to prove properties of a logical relation that provides a new extensional characterisation of ground contextual equivalence and relational parametricity properties of polymorphic types.
Secure Information Flow and CPS
 In Proc. of the 10th European Symposium on Programming, volume 2028 of Lecture Notes in Computer Science
, 2001
"... Securitytyped languages enforce secrecy or integrity policies by type checking. This paper investigates continuationpassing style as a means of proving that such languages enforce noninterference and as a first step towards understanding their compilation. We present a lowlevel, secure calcul ..."
Abstract

Cited by 32 (10 self)
 Add to MetaCart
Securitytyped languages enforce secrecy or integrity policies by type checking. This paper investigates continuationpassing style as a means of proving that such languages enforce noninterference and as a first step towards understanding their compilation. We present a lowlevel, secure calculus with higherorder, imperative features. Our type system makes novel use of ordered linear continuations.
A Type Theory for Memory Allocation and Data Layout (Extended Version)
 In Proceedings of the 30th ACM SIGPLANSIGACT Symposium on Principles of Programming Languages
, 2002
"... Ordered type theory is an extension of linear type theory in which variables in the context may be neither dropped nor reordered. This restriction gives rise to a natural notion of adjacency. We show that a language based on ordered types can use this property to give an exact account of the layout ..."
Abstract

Cited by 27 (3 self)
 Add to MetaCart
Ordered type theory is an extension of linear type theory in which variables in the context may be neither dropped nor reordered. This restriction gives rise to a natural notion of adjacency. We show that a language based on ordered types can use this property to give an exact account of the layout of data in memory. The fuse constructor from ordered logic describes adjacency of values in memory, and the mobility modal describes pointers into the heap. We choose a particular allocation model based on a common implementation scheme for copying garbage collection and show how this permits us to separate out the allocation and initialization of memory locations in such a way as to account for optimizations such as the coalescing of multiple calls to the allocator.
System E: Expansion variables for flexible typing with linear and nonlinear types and intersection types
 IN PROGRAMMING LANGUAGES & SYSTEMS, 13TH EUROPEAN SYMP. PROGRAMMING
, 2004
"... Types are often used to control and analyze computer programs. ..."
Abstract

Cited by 25 (15 self)
 Add to MetaCart
Types are often used to control and analyze computer programs.
A Concurrent Lambda Calculus with Futures
 THEORETICAL COMPUTER SCIENCE
, 2006
"... We introduce a new lambda calculus with futures, λ(fut), to model the operational semantics of concurrent extensions of ML. λ(fut) can safely express a variety of highlevel concurrency constructs, including channels, semaphores, or ports. Safe implementations of these constructs in (fut) cannot be ..."
Abstract

Cited by 22 (4 self)
 Add to MetaCart
We introduce a new lambda calculus with futures, λ(fut), to model the operational semantics of concurrent extensions of ML. λ(fut) can safely express a variety of highlevel concurrency constructs, including channels, semaphores, or ports. Safe implementations of these constructs in (fut) cannot be corrupted in any welltyped context. We prove safety on basis of a linear type system.
Modal proofs as distributed programs (Extended Abstract)
 EUROPEAN SYMPOSIUM ON PROGRAMMING
, 2004
"... We develop a new foundation for distributed programming languages by defining an intuitionistic, modal logic and then interpreting the modal proofs as distributed programs. More specifically, the proof terms for the various modalities have computational interpretations as remote procedure calls, c ..."
Abstract

Cited by 21 (0 self)
 Add to MetaCart
We develop a new foundation for distributed programming languages by defining an intuitionistic, modal logic and then interpreting the modal proofs as distributed programs. More specifically, the proof terms for the various modalities have computational interpretations as remote procedure calls, commands to broadcast computations to all nodes in the network, commands to use portable code, and finally, commands to invoke computational agents that can find their own way to safe places in the network where they can execute. We prove some simple metatheoretic results about our logic as well as a safety theorem that demonstrates that the deductive rules act as a sound type system for a distributed programming language.
Modal proofs as distributed programs
 13th European Symposium on Programming
, 2003
"... We develop a new foundation for distributed programming languages by defining an intuitionistic, modal logic and then interpreting the modal proofs as distributed programs. More specifically, the proof terms for the various modalities have computational interpretations as remote procedure calls, com ..."
Abstract

Cited by 18 (1 self)
 Add to MetaCart
We develop a new foundation for distributed programming languages by defining an intuitionistic, modal logic and then interpreting the modal proofs as distributed programs. More specifically, the proof terms for the various modalities have computational interpretations as remote procedure calls, commands to broadcast computations to all nodes in the network, commands to use portable code, and finally, commands to invoke computational agents that can find their own way to safe places in the network where they can execute. We prove some simple metatheoretic results about our logic as well as a safety theorem that demonstrates that the deductive rules act as a sound type system for a distributed programming language. 1