CML: A higher concurrent language
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
The Linda alternative to message-passing systems
Parallel Computing - Special issue: message passing interfaces
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Prototyping real-time vision systems: an experiment in DSL design
Proceedings of the 21st international conference on Software engineering
An Embedded Modeling Language Approach to Interactive 3D and Multimedia Animation
IEEE Transactions on Software Engineering
Lambda in Motion: Controlling Robots with Haskell
PADL '99 Proceedings of the First International Workshop on Practical Aspects of Declarative Languages
From (Sequential) Haskell to (Parallel) Eden: An Implementation Point of View
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
Proceedings of the fifth international workshop on High-level parallel programming and applications
Embedding dynamic dataflow in a call-by-value language
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Asynchronous functional reactive programming for GUIs
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
In this paper, we demonstrate how Functional Reactive Programming (FRP), a framework for the description of interactive systems, can be extended to encompass parallel systems. FRP is based on Haskell, a purely functional programming language, and incorporates the concepts of time variation and reactivity. Parallel FRP serves as a declarative system model that may be transformed into a parallel implementation using the standard program transformation techniques of functional programming. The semantics of parallel FRP include non-determinism, enhancing opportunities to introduce parallelism. We demonstrate a variety of program transformations based on parallel FRP and show how a FRP model may be transformed into explicitly parallel code. Parallel FRP is implemented using the Linda programming system to handle the underlying parallelism. As an example of parallel FRP, we show how a specification for a web-based online auctioning system can be transformed into a parallel implementation.