A real-time reactive system continuously reacts to stimuli from the environment by sending out responses, where each reaction must be made within certain time bound. As computers are used more often to control all kinds of devices, such systems are gaining popularity rapidly. However, the programming tools for them lag behind.
In this thesis we present RT-FRP, a language for real-time reactive systems. RT-FRP can be executed with guaranteed resource bounds, and improves on previous languages for the same domain by allowing a restricted form of recursive switching, which is a source of both expressiveness and computational cost. The balance between cost guarantee and expressiveness is achieved with a carefully designed syntax and type system.
To better suit hybrid systems and event-driven systems, we have designed two variants of RTFRP called H-FRP and E-FRP respectively. We give H-FRP a continuous-time semantics natural for modeling hybrid systems and an operational semantics suitable for a discrete implementation. We show that under certain conditions the operational semantics converges to the continuous-time semantics as the sampling interval approaches zero. We also present a provably correct compiler for E-FRP, and use E-FRP to program both real and simulated robots.
Cited By
- Li M, McArdle D, Murphy J, Shivkumar B and Ziarek L (2016). Adding real-time capabilities to a SML compiler, ACM SIGBED Review, 13:2, (8-13), Online publication date: 27-Apr-2016.
- McGuire M GUIs for real-time programs using universal pointers ACM SIGGRAPH 2008 posters, (1-1)
- Mainland G, Morrisett G and Welsh M (2008). Flask, ACM SIGPLAN Notices, 43:9, (335-346), Online publication date: 27-Sep-2008.
- Mainland G, Morrisett G and Welsh M Flask Proceedings of the 13th ACM SIGPLAN international conference on Functional programming, (335-346)
- Hall J VARIAC Proceedings of the 2008 conference on Artificial General Intelligence 2008: Proceedings of the First AGI Conference, (176-187)
- Hudak P, Hughes J, Peyton Jones S and Wadler P A history of Haskell Proceedings of the third ACM SIGPLAN conference on History of programming languages, (12-1-12-55)
Index Terms
- Functional reactive programming for real-time reactive systems
Recommendations
Compiling real time functional reactive programming
ASIA-PEPM '02: Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulationMost of the past languages for reactive systems are based on synchronous dataflow. Recently, a new reactive language, called Real-Time Functional Reactive Programming (RT-FRP) [18] , has been proposed based on the functional paradigm. The unique feature ...
Monadic functional reactive programming
Haskell '13: Proceedings of the 2013 ACM SIGPLAN symposium on HaskellFunctional Reactive Programming (FRP) is a way to program reactive systems in functional style, eliminating many of the problems that arise from imperative techniques. In this paper, we present an alternative FRP formulation that is based on the notion ...
Functional reactive programming, continued
Haskell '02: Proceedings of the 2002 ACM SIGPLAN workshop on HaskellFunctional 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 ...