Simple Modal Types for Functional Reactive Programming
By: Patrick Bahr
Potential Business Impact:
Makes computer programs run faster and use less memory.
Functional reactive programming (FRP) is a declarative programming paradigm for implementing reactive programs at a high level of abstraction. It applies functional programming principles to construct and manipulate time-varying values, also known as signals. However, for this programming paradigm to work in practice, an FRP language must ensure that programs are causal, productive, and free from space leaks. Over the past fifteen years, several modal type systems to enforce these operational properties have been developed. We present a new FRP language with a significantly simplified modal type system that imposes fewer restrictions than previous modal FRP languages while still guaranteeing the central operational properties of causality, productivity, and absence of space leaks. The key enabling idea is to alter the semantics of signals so that the type system can safely allow more programs to type-check, which also makes the language more expressive. With this new semantics, signals are modelled as mutable references whose mutability is tightly controlled by the 'later' type modality. This disciplined form of mutability also enables more efficient in-place updates of signals, all while preserving a functional programming style.
Similar Papers
Functional Reactive Programming with Effects, A More Permissive Approach
Programming Languages
Lets programs reuse parts to build complex things.
On Circuit Description Languages, Indexed Monads, and Resource Analysis
Programming Languages
Lets computers build better, smaller circuits.
Functional Python Programming in Introductory Computer Science Courses
Computers and Society
Teaches coding skills by making programs safer.