Results 1 -
4 of
4
Process Semantics of Graph Reduction
- Proc. CONCUR '95, volume 962 of Lecture Notes in Computer Science
, 1995
"... This paper introduces an operational semantics for call-by-need reduction in terms of Milner's ß-calculus. The functional programming interest lies in the use of ß-calculus as an abstract yet realistic target language. The practical value of the encoding is demonstrated with an outline for a paralle ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
This paper introduces an operational semantics for call-by-need reduction in terms of Milner's ß-calculus. The functional programming interest lies in the use of ß-calculus as an abstract yet realistic target language. The practical value of the encoding is demonstrated with an outline for a parallel code generator. From a theoretical perspective, the ß-calculus representation of computational strategies with shared reductions is novel and solves a problem posed by Milner [13]. The compactness of the process calculus presentation makes it interesting as an alternative definition of call-by-need. Correctness of the encoding is proved with respect to the call-by-need -calculus of Ariola et al. [3]. 1 Introduction Graph reduction of extended -calculi has become a mature field of applied research. The efficiency of the implementations is due in great measure to a technique known as `sharing', whereby argument values are computed (at most) once and then memoized for future reference. Both...
A Parallel Functional Language Compiler for Message-Passing Multicomputers
, 1998
"... The research presented in this thesis is about the design and implementation of Naira, a parallel, parallelising compiler for a rich, purely functional programming language. The source language of the compiler is a subset of Haskell 1.2. The front end of Naira is written entirely in the Haskell subs ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
The research presented in this thesis is about the design and implementation of Naira, a parallel, parallelising compiler for a rich, purely functional programming language. The source language of the compiler is a subset of Haskell 1.2. The front end of Naira is written entirely in the Haskell subset being compiled. Naira has been successfully parallelised and it is the largest successfully parallelised Haskell program having achieved good absolute speedups on a network of SUN workstations. Having the same basic structure as other production compilers of functional languages, Naira's parallelisation technology should carry forward to other functional language compilers. The back end of Naira is written in C and generates parallel code in the C language which is envisioned to be run on distributed-memory machines. The code generator is based on a novel compilation scheme specified using a restricted form of Milner's ß-calculus which achieves asynchronous communication. We present the f...
An Execution Harness for TransputerBased Embedded Systems
- Proc. WoTUG-16
, 1993
"... We present an event-action programming model for embedded systems, which is well suited to the reactive or periodic nature of such applications. The model is based on messages which correspond to events and are processed by short-lived action functions. Each message contains scheduling information, ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We present an event-action programming model for embedded systems, which is well suited to the reactive or periodic nature of such applications. The model is based on messages which correspond to events and are processed by short-lived action functions. Each message contains scheduling information, such as pre and post times and sequencing requirements along with data related to the event. A programming system and runtime harness known as Testbed has been developed which supports this model. We present a simple example, based on an autodepth controller for a remote controlled submersible, with simulated external devices and environment. 1 Introduction We have implemented a support environment for developing and testing transputer-based embedded applications "in vitro". The system is called Testbed [6,16] and provides a message -based programming model which is well suited to the reactive or periodic nature of embedded systems. The Testbed also provides mechanisms for dynamic modificat...
pi-Calculus Characterizations of some Practical lambda-Calculus Reduction Strategies
, 1993
"... We give p-calculus encodings of some reduction strategies that have been found useful in the functional programming community: call-byvalue, parallel call-by-value, call-by-need and call-by-process. The ease with which the p-calculus lends itself to expressing these different reduction strategies is ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We give p-calculus encodings of some reduction strategies that have been found useful in the functional programming community: call-byvalue, parallel call-by-value, call-by-need and call-by-process. The ease with which the p-calculus lends itself to expressing these different reduction strategies is remarkable. All four of our encodings can be `mixed and matched' in that different reduction strategies can be applied to different parts of the program, as is routinely done in functional programming systems. 1 Introduction Functional programming systems have reached a state of considerable maturity. While all are ultimately based on the l-calculus, they often differ in their choice of reduction strategy. This diversity originates from the non-determinism in the unconstrained l-calculus as to the choice of the next redex in a given term. Reduction strategies we will consider in this paper are call-by-value, as found in, for example, Standard ML [Mil84], parallel call-by-value , as used in...

