|
ABSTRACT
Functional Reactive Programming (FRP) extends a host programming language with a notion of time flow. Arrowized FRP (AFRP) is a version of FRP embedded in Haskell based on the arrow combinators. AFRP is a powerful synchronous dataflow programming language with hybrid modeling capabilities, combining advanced synchronous dataflow features with the higher-order lazy functional abstractions of Haskell. In this paper, we describe the AFRP programming style and our Haskell-based implementation. Of particular interest are the AFRP combinators that support dynamic collections and continuation-based switching. We show how these combinators can be used to express systems with an evolving structure that are difficult to model in more traditional dataflow languages.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
|
| |
3
|
Magnus Carlsson and Thomas Hallgren. Fudgets - Purely Functional Processes with applications to Graphical User Interfaces. PhD thesis, Chalmers University of Technology, March 1998.
|
 |
4
|
P. Caspi , D. Pilaud , N. Halbwachs , J. A. Plaice, LUSTRE: a declarative language for real-time programming, Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, p.178-188, January 21-23, 1987, Munich, West Germany
[doi> 10.1145/41625.41641]
|
| |
5
|
Paul Caspi and Marc Pouzet. A co-iterative characterization of synchronous stream functions. In Coalgebraic Methods in Computer Science (CMCS '98), Electronic Notes in Theoretical Computer Science, March 1998.
|
| |
6
|
Paul Caspi and Marc Pouzet. Lucid Synchrone, a functional extension of Lustre. Submitted for publication, 2000.
|
| |
7
|
Franois E. Cellier. Object-oriented modelling: Means for dealing with system complexity. In Proceedings of the 15th Benelux Meeting on Systems and Control, Mierlo, The Netherlands, pages 53-64, 1996.
|
| |
8
|
Antony Courtney and Conal Elliott. Genuinely functional user interfaces. In 2001 Haskell Workshop, September 2001.
|
| |
9
|
|
 |
10
|
|
| |
11
|
|
| |
12
|
N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language LUSTRE. Proceedings of the IEEE, 79(9):1305-1320, 1991.
|
 |
13
|
|
| |
14
|
|
| |
15
|
|
| |
16
|
|
| |
17
|
Modelica - a unified object-oriented language for physical systems modeling: Language specification version 1.4. The Modelica Association, http://www.modelica.org, December 2000.
|
 |
18
|
|
 |
19
|
Izzet Pembeci , Henrik Nilsson , Gregory Hager, Functional reactive robotics: an exercise in principled integration of domain-specific languages, Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming, p.168-179, October 06-08, 2002, Pittsburgh, PA, USA
[doi> 10.1145/571157.571174]
|
| |
20
|
|
| |
21
|
|
| |
22
|
Marc Pouzet, Paul Caspi, Pascal Couq, and Grégoire Hamon. Lucid Synchrone v2.0 - tutorial and reference manual. http://www-spi.lip6.fr/lucid-synchrone/lucid_synchrone_2.0_manual.ps, April 2001.
|
 |
23
|
|
| |
24
|
Using Simulink version 4. The MathWorks, Inc., http://www.mathworks.com, June 2001.
|
 |
25
|
|
 |
26
|
|
| |
27
|
|
|