Frappé: Functional Reactive Programming in Java

  • Authors:
  • Antony Courtney

  • Affiliations:
  • -

  • Venue:
  • PADL '01 Proceedings of the Third International Symposium on Practical Aspects of Declarative Languages
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Functional Reactive Programming (FRP) is a declarative programming model for constructing interactive applications based on a continuous model of time. FRP programs are described in terms of behaviors (continuous, time-varying, reactive values), and events (conditions that occur at discrete points in time). This paper presents FrappÉ, an implementation of FRP in the Java progamming language. The primary contribution of FrappÉ is its integration of the FRP event/behavior model with the Java Beans event/property model. At the interface level, any Java Beans component may be used as a source or sink for the FRP event and behavior combinators. This provides a mechanism for extending FrappÉ with new kinds of I/O connections and allows FRP to be used as a high-level declarative model for composing applications from Java Beans components. At the implementation level, the Java Beans event model is used internally by FrappÉ to propagate FRP events and changes to FRP behaviors. This allows FrappÉ applications to be packaged as Java Beans components for use in other applications, and yields an implementation of FRP well-suited to the requirements of event-driven applications (such as graphical user interfaces).