Smoothly Navigating between Functional Reactive Programming and Actors

  title={Smoothly Navigating between Functional Reactive Programming and Actors},
  author={N. Webster and Marco Servetto},
We formally define an elegant multi-paradigm unification of Functional Reactive Programming, Actor Systems, and Object-Oriented Programming. This enables an intuitive form of declarative programming, harvesting the power of concurrency while maintaining safety. We use object and reference capabilities to highlight and tame imperative features: reference capabilities track aliasing and mutability, and object capabilities track I/O. Formally, our type system limits the scope, impact and… Expand


Deterministic Actors
This work describes “reactors,” a new coordination model that combines ideas from several of the aforementioned approaches to enable determinism while preserving much of the style of actors, which promote modularity and allow for distributed execution. Expand
Distributed functional reactive programming on actor-based runtime
A method is proposed for constructing a distributed reactive programming system of which runtime guarantees the properties of single source glitch-freedom and the robustness against out-of-order messages and a purely functional reactive programming language XFRP whose compiler produces Erlang code. Expand
Functional reactive programming, continued
Of particular interest are the AFRP combinators that support dynamic collections and continuation-based switching and it is shown how these combinators can be used to express systems with an evolving structure that are difficult to model in more traditional dataflow languages. Expand
On the Semantics of Distributed Reactive Programming: The Cost of Consistency
It is shown that different applications require different levels of consistency and that manually implementing the required level on a middleware that provides a lower one annuls the abstraction improvements of reactive programming. Expand
Flexible recovery of uniqueness and immutability
An imperative object calculus where types are annotated with qualifiers for aliasing and mutation control adopts the recovery approach, using the type context to justify strengthening types, greatly improving its power by permitting to recover uniqueness and immutability properties even in presence of other references. Expand
Tackling the awkward squad for reactive programming: the actor-reactor model
A novel Actor-Reactor model is proposed that can serve as the basis for future language designs that allow a programmer to use the awkward squad without making the reactive parts of the program accidentally non-reactive. Expand
Event-Driven FRP
This paper presents a formally verifiable compilation strategy from a new language based on RT- FRP into imperative code, called Event-Driven FRP (E-FRP), which is more tuned to the paradigm of having multiple external events. Expand
Asynchronous functional reactive programming for GUIs
Elm is presented, a practical FRP language focused on easy creation of responsive GUIs using a purely functional declarative framework that makes it simple to create and combine text, images, and video into rich multimedia displays. Expand
Deny capabilities for safe, fast actors
This approach, based on deny properties, allows reading, writing and traversing unique references, introduces a new form of write uniqueness, and guarantees atomic behaviours in the actor-model. Expand
Distributed Reactive Programming for Reactive Distributed Systems
A novel runtime is proposed which allows for reactive distributed systems to be implemented using distributed reactive programming using a single, central points of coordination and a lack of partial failures in the systems they support. Expand