Results 1  10
of
31
What are polymorphicallytyped ambients
, 2000
"... www.cs.bu.edu/fac/kfoury The Ambient Calculus was developed by Cardelli and Gordon as a formal framework to study issues of mobility and migrant code [CG98]. We consider an Ambient Calculus where ambients transport and exchange programs rather that just inert data. We propose different senses in whi ..."
Abstract

Cited by 32 (5 self)
 Add to MetaCart
www.cs.bu.edu/fac/kfoury The Ambient Calculus was developed by Cardelli and Gordon as a formal framework to study issues of mobility and migrant code [CG98]. We consider an Ambient Calculus where ambients transport and exchange programs rather that just inert data. We propose different senses in which such a calculus can be said to be polymorphically typed, and design accordingly a polymorphic type system for it. Our type system assigns types to embedded programs and what we call behaviors to processes; a denotational semantics of behaviors is then proposed, here called trace semantics, underlying much of the remaining analysis. We state and prove a Subject Reduction property for our polymorphicallytyped calculus. Based on techniques borrowed from finite automata theory, typechecking of fully typeannotated processes is shown to be decidable. Our polymorphicallytyped calculus is a conservative extension of the typed Ambient Calculus originally proposed by Cardelli and Gordon [CG99].
Transactional Events
, 2008
"... Concurrent programs require highlevel abstractions in order to manage complexity and enable compositional reasoning. In this paper, we introduce a novel concurrency abstraction, dubbed transactional events, which combines firstclass synchronous message passing events with allornothing transactio ..."
Abstract

Cited by 32 (1 self)
 Add to MetaCart
Concurrent programs require highlevel abstractions in order to manage complexity and enable compositional reasoning. In this paper, we introduce a novel concurrency abstraction, dubbed transactional events, which combines firstclass synchronous message passing events with allornothing transactions. This combination enables simple solutions to interesting problems in concurrent programming. For example, guarded synchronous receive can be implemented as an abstract transactional event, whereas in other languages it requires a nonabstract, nonmodular protocol. As another example, threeway rendezvous can be implemented as an abstract transactional event, which is impossible using firstclass events alone. Both solutions are easy to code and easy to reason about. The expressive power of transactional events arises from a sequencing combinator whose semantics enforces an allornothing transactional property – either both of the constituent events synchronize in sequence or neither of them synchronizes. This sequencing combinator, along with a nondeterministic choice combinator, gives transactional events the compositional structure of a monadwithplus. We provide a formal semantics for transactional events and give a detailed account of an implementation.
Functional Bulk Synchronous Parallel Programming in C++
 In 14th IASTED International Conference on Parallel and Distributed Computing Systems
, 2002
"... This paper presents the BSFC++ library for functional bulk synchronous parallel programming in C++. It is based on an extension of the #calculus by parallel operations on a parallel data structure named parallel vector, which is given by intention. This guarantees the determinism and the absence ..."
Abstract

Cited by 19 (14 self)
 Add to MetaCart
This paper presents the BSFC++ library for functional bulk synchronous parallel programming in C++. It is based on an extension of the #calculus by parallel operations on a parallel data structure named parallel vector, which is given by intention. This guarantees the determinism and the absence of deadlock. Broadcast algorithms are implemented using the core library.
Isolationonly transactions by typing and versioning
 In Proc. PPDP ’05: the 7th ACMSIGPLAN International Symposium on Principles and Practice of Declarative Programming
, 2005
"... In this paper we design a language and runtime support for isolationonly, multithreaded transactions (called tasks). Tasks allow isolation to be declared instead of having to be encoded using the lowlevel synchronization constructs. The key concept of our design is the use of a type system to supp ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
In this paper we design a language and runtime support for isolationonly, multithreaded transactions (called tasks). Tasks allow isolation to be declared instead of having to be encoded using the lowlevel synchronization constructs. The key concept of our design is the use of a type system to support rollbackfree and safe runtime execution of tasks. We present a firstorder type system which can verify information for the concurrency controller. We use an operational semantics to formalize and prove the type soundness result and an isolation property of tasks. The semantics uses a specialized concurrency control algorithm, that is based on access versioning.
Parallel proof checking in Isabelle/Isar
 ACM SIGSAM Workshop on Programming Languages for Mechanized Mathematics Systems (PLMMS 2009). ACM Digital Library, 2009. Parallel Poly/ML and Isabelle 10 2009/9/28
"... We address the “multicore problem ” for mathematical assistants with full proof checking, with special focus on Isabelle/Isar and its main SML platform Poly/ML. On the one hand, working with explicit definitions, statements, and proofs requires significant runtime resources, so the question of paral ..."
Abstract

Cited by 12 (5 self)
 Add to MetaCart
We address the “multicore problem ” for mathematical assistants with full proof checking, with special focus on Isabelle/Isar and its main SML platform Poly/ML. On the one hand, working with explicit definitions, statements, and proofs requires significant runtime resources, so the question of parallel checking is really relevant. On the other hand, the inherent structure of formal theories provides various possibilities for parallelism (both implicit and explicit), which is in fact an almost ideal situation. Exploiting this potential in practice requires to reconsider various aspects of the ML platform, the inference engine, and some higher prover specific layers. We report on an implementation of all that for Isabelle/Isar, and point out some general considerations for parallelism in functional programming, and other provers like Coq and HOL. Categories and Subject Descriptors D.1.3 [Concurrent Programming]: Parallel programming; I.2.3 [Deduction and Theorem
A Model of Cooperative Threads
"... We develop a model of concurrent imperative programming with threads. We focus on a small imperative language with cooperative threads which execute without interruption until they terminate or explicitly yield control. We define and study a tracebased denotational semantics for this language; this ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
We develop a model of concurrent imperative programming with threads. We focus on a small imperative language with cooperative threads which execute without interruption until they terminate or explicitly yield control. We define and study a tracebased denotational semantics for this language; this semantics is fully abstract but mathematically elementary. We also give an equational theory for the computational effects that underlie the language, including thread spawning. We then analyze threads in terms of the free algebra monad for this theory. 1
Parallel Juxtaposition for Bulk Synchronous Parallel ML
 EuroPar 2003, number 2790 in LNCS
, 2002
"... The BSMLlib is a library for Bulk Synchronous Parallel (BSP) programming with the functional language Objective Caml. It is based on an extension of the #calculus by parallel operations on a parallel data structure named parallel vector, which is given by intention. ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
The BSMLlib is a library for Bulk Synchronous Parallel (BSP) programming with the functional language Objective Caml. It is based on an extension of the #calculus by parallel operations on a parallel data structure named parallel vector, which is given by intention.
Parallel Superposition for Bulk Synchronous Parallel ML
, 2003
"... The BSMLlib is a library for Bulk Synchronous Parallel programming with the functional language Objective Caml. It is based on an extension of the lcalculus by parallel operations on a parallel data structure named parallel vector, which is given by intention. ..."
Abstract

Cited by 9 (7 self)
 Add to MetaCart
The BSMLlib is a library for Bulk Synchronous Parallel programming with the functional language Objective Caml. It is based on an extension of the lcalculus by parallel operations on a parallel data structure named parallel vector, which is given by intention.
Concurrency combinators for declarative synchronization
 In Proc. APLAS 2004 (2nd Asian Symposium on Programming Languages and Systems), volume 3302 of LNCS
, 2004
"... Abstract. Developing computer systems that are both concurrent and evolving is challenging. To guarantee consistent access to resources by concurrent software components, some synchronization is required. A synchronization logic, or policy, is at present entangled in the component code. Adding a new ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
Abstract. Developing computer systems that are both concurrent and evolving is challenging. To guarantee consistent access to resources by concurrent software components, some synchronization is required. A synchronization logic, or policy, is at present entangled in the component code. Adding a new component or modifying existing components, which may require a change of the (global) synchronization policy, is therefore subjected to an extensive inspection of the complete code. We propose a calculus of concurrency combinators that allows a program code and its synchronization policy to be expressed separately; the policies include true parallelism, sequentiality, and isolationonly transactions. The calculus is equipped with an operational semantics and a type system. The type system is used to verify if a synchronization policy declared using combinators can be satisfied by program execution. 1