Results 11  20
of
54
HigherOrder, Linear, Concurrent Constraint Programming
, 1992
"... We present a very simple and powerful framework for indeterminate, asynchronous, higherorder computation based on the formulaasagent and proofascomputation interpretation of (higherorder) linear logic [Gir87]. The framework significantly refines and extends the scope of the concurrent constrai ..."
Abstract

Cited by 30 (5 self)
 Add to MetaCart
We present a very simple and powerful framework for indeterminate, asynchronous, higherorder computation based on the formulaasagent and proofascomputation interpretation of (higherorder) linear logic [Gir87]. The framework significantly refines and extends the scope of the concurrent constraint programming paradigm [Sar89] in two fundamental ways: (1) by allowing for the consumption of information by agents it permits a direct modelling of (indeterminate) state change in a logical framework, and (2) by admitting simplytyped terms as dataobjects, it permits the construction, transmission and application of (abstractions of) programs at runtime. Much more dramatically, however, the framework can be seen as presenting higherorder (and if desired, constraintenriched) versions of a variety of other asynchronous concurrent systems, including the asynchronous ("input guarded") fragment of the (firstorder) ßcalculus, Hewitt's actors formalism, (abstract forms of) Gelernter's Lin...
Asynchrony and the PiCalculus
, 1992
"... We introduce an asynchronous version of Milner's ßcalculus, based on the idea that the messages are elementary processes that can be sent without any sequencing constraint. We show that this simple message passing discipline, together with the restriction construct making a name private for an ..."
Abstract

Cited by 25 (0 self)
 Add to MetaCart
We introduce an asynchronous version of Milner's ßcalculus, based on the idea that the messages are elementary processes that can be sent without any sequencing constraint. We show that this simple message passing discipline, together with the restriction construct making a name private for an agent, is enough to encode the synchronous communication of the ßcalculus. 1. Introduction. The purpose of this note is to introduce an asynchronous variant of the ßcalculus of Milner, Parrow and Walker [8]. The ßcalculus is an extension of CCS, based on previous work by Engberg and Nielsen [5], that deals with name passing: in this calculus, agents pass channel names to other agents through named channels. The expressiveness of this link passing discipline has been demonstrated in [8] by a series of examples. Later on, Milner showed in [9] that even a restricted fragment of the original ßcalculus is enough to encode the calculus. More precisely, he showed that one can mimic in a "mini" ß...
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 19 (1 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
The LambdaCalculus with Multiplicities
, 1993
"... We introduce a refinement of the λcalculus, where the argument of a function is a bag of resources, that is a multiset of terms, whose multiplicities indicate how many copies of them are available. We show that this "λcalculus with multiplicities" has a natural functionality theory, simi ..."
Abstract

Cited by 16 (2 self)
 Add to MetaCart
We introduce a refinement of the λcalculus, where the argument of a function is a bag of resources, that is a multiset of terms, whose multiplicities indicate how many copies of them are available. We show that this "λcalculus with multiplicities" has a natural functionality theory, similar to Coppo and Dezani's intersection type discipline. In our functionality theory the conjunction is managed in a "multiplicative" manner, according to Girard's terminology. We show that this provides an adequate interpretation of the calculus, by establishing that a term is convergent if and only if it has a nontrivial functional character.
Eager normal form bisimulation
 In Proc. 20th Annual IEEE Symposium on Logic in Computer Science
, 2005
"... Abstract. Normal form bisimulation is a powerful theory of program equivalence, originally developed to characterize LévyLongo tree equivalence and Boehm tree equivalence. It has been adapted to a range of untyped, higherorder calculi, but types have presented a difficulty. In this paper, we prese ..."
Abstract

Cited by 14 (4 self)
 Add to MetaCart
Abstract. Normal form bisimulation is a powerful theory of program equivalence, originally developed to characterize LévyLongo tree equivalence and Boehm tree equivalence. It has been adapted to a range of untyped, higherorder calculi, but types have presented a difficulty. In this paper, we present an account of normal form bisimulation for types, including recursive types. We develop our theory for a continuationpassing style calculus, JumpWithArgument (JWA), where normal form bisimilarity takes a very simple form. We give a novel congruence proof, based on insights from game semantics. A notable feature is the seamless treatment of etaexpansion. We demonstrate the normal form bisimulation proof principle by using it to establish a syntactic minimal invariance result and the uniqueness of the fixed point operator at each type.
A nondeterministic callbyneed lambda calculus
 INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING
, 1998
"... In this paper we present a nondeterministic callbyneed (untyped) lambda calculus nd with a constant choice and a letsyntax that models sharing. Our main result is that nd has the nice operational properties of the standard lambda calculus: confluence on sets of expressions, and normal order redu ..."
Abstract

Cited by 14 (7 self)
 Add to MetaCart
In this paper we present a nondeterministic callbyneed (untyped) lambda calculus nd with a constant choice and a letsyntax that models sharing. Our main result is that nd has the nice operational properties of the standard lambda calculus: confluence on sets of expressions, and normal order reduction is sufficient to reach head normal form. Using a strong contextual equivalence we show correctness of several program transformations. In particular of lambdalifting using deterministic maximal free expressions. These results show that nd is a new and also natural combination of nondeterminism and lambdacalculus, which has a lot of opportunities for parallel evaluation. An intended application of nd is as a foundation for compiling lazy functional programming languages with I/O based on direct calls. The set of correct program transformations can be rigorously distinguished from noncorrect ones. All program transformations are permitted with the slight exception that for transformations like common subexpression elimination and lambdalifting with maximal free expressions the involved subexpressions have to be deterministic ones.
On the Expressiveness and Decidability of HigherOrder Process Calculi
, 2008
"... In higherorder process calculi the values exchanged in communications may contain processes. A core calculus of higherorder concurrency is studied; it has only the operators necessary to express higherorder communications: input prefix, process output, and parallel composition. By exhibiting a ne ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
In higherorder process calculi the values exchanged in communications may contain processes. A core calculus of higherorder concurrency is studied; it has only the operators necessary to express higherorder communications: input prefix, process output, and parallel composition. By exhibiting a nearly deterministic encoding of Minsky Machines, the calculus is shown to be Turing Complete and therefore its termination problem is undecidable. Strong bisimilarity, however, is proved to be decidable. Further, the main forms of strong bisimilarity for higherorder processes (higherorder bisimilarity, context bisimilarity, normal bisimilarity, barbed congruence) coincide. They also coincide with their asynchronous versions. A sound and complete axiomatization of bisimilarity is given. Finally, bisimilarity is shown to become undecidable if at least four static (i.e., toplevel) restrictions are added to the calculus.
A bisimulationbased semantic theory of safe ambients
 ACM Transactions on Programming Languages and Systems
, 2006
"... We develop a semantics theory for SAP, a variant of Levi and Sangiorgi’s Safe Ambients, SA. The dynamics of SA relies upon capabilities (and cocapabilities) exercised by mobile agents, called ambients, to interact with each other. These capabilities contain references, the names of ambients with wh ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
We develop a semantics theory for SAP, a variant of Levi and Sangiorgi’s Safe Ambients, SA. The dynamics of SA relies upon capabilities (and cocapabilities) exercised by mobile agents, called ambients, to interact with each other. These capabilities contain references, the names of ambients with which they wish to interact. In SAP we generalise the notion of capability: in order to interact with an ambient n, an ambient m must exercise a capability indicating both n and a password h to access n; the interaction between n and m takes place only if n is willing to perform a corresponding cocapability with the same password h. The name h can also be looked upon as a port to access ambient n via port h. In SAP by managing passwords/ports, for example generating new ones and distributing them selectively, an ambient may now program who may migrate into its computation space, and when. Moreover in SAP an ambient may provide different services/resources depending on the port accessed by the incoming clients. Then, we give an ltsbased operational semantics for SAP and a labelled bisimulation equivalence which is proved to coincide with reduction barbed congruence. We use our notion of bisimulation to prove a set of algebraic laws which are subsequently exploited to prove more significant examples.
An investigation into Functions as Processes
 In Proc. Ninth International Conference on the Mathematical Foundations of Programming Semantics (MFPS'93
, 1993
"... . In [Mil90] Milner examines the encoding of the calculus into the ßcalculus [MPW92]. The former is the universally accepted basis for computations with functions, the latter aims at being its counterpart for computations with processes. The primary goal of this paper is to continue the study of M ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
. In [Mil90] Milner examines the encoding of the calculus into the ßcalculus [MPW92]. The former is the universally accepted basis for computations with functions, the latter aims at being its counterpart for computations with processes. The primary goal of this paper is to continue the study of Milner's encodings. We focus mainly on the lazy calculus [Abr87]. We show that its encoding gives rise to a model, in which a weak form of extensionality holds. However the model is not fully abstract: To obtain full abstraction, we examine both the restrictive approach, in which the semantic domain of processes is cut down, and the expansive approach, in which calculus is enriched with constants to obtain a direct characterisation of the equivalence on terms induced, via the encoding, by the behavioural equivalence adopted on the processes. Our results are derived exploiting an intermediate representation of Milner's encodings into the HigherOrder ßcalculus, an !order extension of ...
Using a Continuation Twice and Its Implications for the Expressive Power of Call/cc
, 1998
"... . We study the implications for the expressive power of call/cc of upward continuations, specifically the idiom of using a continuation twice. Although such control effects were known to Landin and Reynolds when they invented J and escape, the forebears of call/cc, they still act as a conceptual pit ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
. We study the implications for the expressive power of call/cc of upward continuations, specifically the idiom of using a continuation twice. Although such control effects were known to Landin and Reynolds when they invented J and escape, the forebears of call/cc, they still act as a conceptual pitfall for some attempts to reason about continuations. We use this idiom to refute some recent conjectures about equivalences in a language with continuations, but no other effects. This shows that firstclass continuations as given by call/cc have greater expressive power than one would expect from goto or exits. Keywords: call/cc, continuations, upward continuations, expressiveness, program equivalence. 1. Introduction You can enter a room once, and yet leave it twice. (Peter Landin) A common informal explanation of continuations is the comparison with forward goto. This is in some sense a very apt simile: forward gotos obviously do not give rise to loops, and continuations, without some ...