Results 1 -
4 of
4
The UniForM Concurrency Toolkit and its Extensions to Concurrent Haskell
, 1997
"... . The UniForM Concurrency Toolkit is a comprehensive library of abstract data types for shared memory and message passing communication that extends Concurrent Haskell with a concept of dynamic types, thread identity, thread local state and selective communication as found in CML. Notable features o ..."
Abstract
-
Cited by 11 (6 self)
- Add to MetaCart
. The UniForM Concurrency Toolkit is a comprehensive library of abstract data types for shared memory and message passing communication that extends Concurrent Haskell with a concept of dynamic types, thread identity, thread local state and selective communication as found in CML. Notable features of the toolkit are its support for reentrant monitors, interactors providing iterative choice and the uniform representation of internal channel events as well as external tool events of the environment in the form of first class synchronous event values. 1 Introduction The UniForM Concurrency ToolKit 1 has primarily been designed to support the development of reactive systems using Concurrent Haskell [PJGF96]. The toolkit provides, partially backed up by a class system, a number of archetypical shared memory abstractions such as semaphores, locks and shared variables. The most important contribution, however, is the concept of reentrant monitors, whose main advantage over MVar's is that r...
Concurrent Monadic Interfacing
- 10th International Workshop on the Implementation of Functional Languages (IFL '98), volume 1595 of LNCS
, 1998
"... . In this paper we present the Brisk 1 monadic framework, in which the usual monadic style of interfacing is adapted to accommodate a deterministic form of concurrency. Its main innovation is to allow actions on state components. This is a key issue which enables state splitting, a technique which ..."
Abstract
-
Cited by 11 (1 self)
- Add to MetaCart
. In this paper we present the Brisk 1 monadic framework, in which the usual monadic style of interfacing is adapted to accommodate a deterministic form of concurrency. Its main innovation is to allow actions on state components. This is a key issue which enables state splitting, a technique which assigns to each new thread a part of the state, a substate, to act upon. Distinct concurrent threads are restricted to access disjoint substates. A purely functional prototype implementation is presented to demonstrate these ideas. The resulting system acts as a basis for offering a purely functional form of concurrency, extending the expressiveness of functional languages without spoiling the semantics by introducing non-determinism. 1 Introduction The use of monads has provided a new insight into the handling of stateful computations as state threads in the purely functional language Haskell [1]. The monadic approach has been further developed [8, 10] and incorporated into compilers su...
BriX - A Deterministic Concurrent Functional X Windows System
, 1995
"... With the introduction of concurrent functional languages, potential non-determinism is introduced. Two processes can update a file at the same time, leading to an unpredictable result. This is taken for granted, there is a common idea stating that concurrency and nondeterminism are synonymous. In th ..."
Abstract
- Add to MetaCart
With the introduction of concurrent functional languages, potential non-determinism is introduced. Two processes can update a file at the same time, leading to an unpredictable result. This is taken for granted, there is a common idea stating that concurrency and nondeterminism are synonymous. In their paper, Carter and Holyer [11] propose a deterministic approach to many systems which are inherently non-deterministic. The first steps in that direction have been taken with the design of BriX, a deterministic concurrent windowing system. This report describes the development and workings of this system. Special efforts were taken on the avoiding of non-determinism. BriX was not designed to be a standard windowing system, the goal was to write it with deterministic techniques. Contents 1 Introduction 1 2 Monadic I/O 2 2.1 Implementation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 2.2 State Encapsulation : : : : : : : : : : : : : : : : : : : : : : : : : : ...
September 1999 CSPHD
- Department of Computer Science, University of Bristol
, 1999
"... This thesis presents the Brisk Machine #54#, a machine for executing functional languages, designed to be simple and #exible to support a number of run-time execution models for the Brisk compiler. Design considerations have been made to support dynamic loading, deterministic concurrency #23,51#, di ..."
Abstract
- Add to MetaCart
This thesis presents the Brisk Machine #54#, a machine for executing functional languages, designed to be simple and #exible to support a number of run-time execution models for the Brisk compiler. Design considerations have been made to support dynamic loading, deterministic concurrency #23,51#, distribution, debugging tools and logic programming #76#. To achieve this, the compiler's intermediate language, the Brisk Kernel Language BKL is simpler than the STG language #100#, as evaluation, extension and optimisation issues are relegated to special built-in functions. Moreover, function calls are saturated, as any function has an known arity and in every call to it, is applied to the rightnumber of arguments, which makes the machine dynamic and supports dynamic loading.

