File(s) stored somewhere else
Please note: Linked content is NOT stored on Open Access Te Herenga Waka-Victoria University of Wellington and we can't guarantee its availability, quality, security or accept any liability.
Smoothly Navigating between Functional Reactive Programming and Actors
journal contribution
posted on 2021-08-21, 05:35 authored by N Webster, Marco ServettoMarco ServettoWe 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
interactions of impure code.
- Scope: Expressions whose input is pure will behave deterministically.
- Impact: Data-races and synchronisation issues are avoided. The only way for
an actor to behave nondeterministically, is by mutating its state based on
message delivery order.
- Interactions: Signals provide a functional boundary between imperative and
functional code, preventing impure code from invalidating functional
assumptions.