Functional Reactive Programming

作者: Paul Hudak

DOI: 10.1007/3-540-49099-X_1

关键词:

摘要: Functional reactive programming, or FRP, is a style of programming based on two key ideas: continuous time-varying behaviors, and event-based reactivity. FRP the essence Fran [1,2], domain-specific language for functional graphics animation, has recently been used in design Frob [3,4], vision robotics. In general, can be viewed as an interesting describing hybrid systems, which are systems comprised both analog (continuous) digital (discrete) subsystems. Continuous behaviors thought simply functions from time to some value: Behavior = Time -> a. For example: image behavior may represent animation; Cartesian-point mouse; velocity-vector control vector robot; tuple-of-distances input robot’s sonar array. Both reactivity have pro erties worthy independent study, but their integration particularly interesting. At core issue that events intended cause discrete shifts declarative behavior; i.e. not just state Being declarative, natural desire everything first-class higher-order. But this causes clashes frames reference, especially when space transformations applied. talk fundamental ideas behind presented, along with discussion various issues its formal semantics. This joint work Conal Elliot at Microsoft Research, John Peterson Yale.

参考文章(4)
Conal Elliott, Modeling interactive 3D and multimedia animation with an embedded language conference on domain specific languages. pp. 22- 22 ,(1997)
John Peterson, Paul Hudak, Conal Elliott, Lambda in Motion: Controlling Robots with Haskell Practical Aspects of Declarative Languages. pp. 91- 105 ,(1998) , 10.1007/3-540-49201-1_7
Alastair Reid, John Peterson, Greg Hager, Paul Hudak, Prototyping real-time vision systems: an experiment in DSL design international conference on software engineering. pp. 484- 493 ,(1999) , 10.1145/302405.302681
Conal Elliott, Paul Hudak, Functional reactive animation international conference on functional programming. ,vol. 32, pp. 263- 273 ,(1997) , 10.1145/258948.258973