Smoothly Navigating between Functional Reactive Programming and Actors
N. Webster, M. Servetto

TL;DR
This paper presents a formal unification of Functional Reactive Programming, Actor Systems, and Object-Oriented Programming, enabling safe, declarative, and concurrent programming through a novel type system and capabilities.
Contribution
It introduces a formal framework that combines multiple paradigms with a type system to ensure safety and determinism in concurrent, multi-paradigm programming.
Findings
Ensures deterministic behavior for pure expressions.
Avoids data races and synchronization issues.
Limits nondeterminism to message order mutations.
Abstract
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 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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Software Engineering Methodologies · Software Engineering Research · Formal Methods in Verification
