Modal Reactors

Complex software systems often feature distinct modes of operation, each designed to handle a particular scenario that may require the system to respond in a certain way. Breaking down system behavior into mutually exclusive modes and discrete transitions between modes is a commonly used strategy to reduce implementation complexity and promote code readability. However, such capabilities often come in the form of self-contained domain specific languages or language-specific frameworks. The work in this paper aims to bring the advantages of modal models to mainstream programming languages, by following the polyglot coordination approach of Lingua Franca (LF), in which verbatim target code (e.g., C, C++, Python, Typescript, or Rust) is encapsulated in composable reactive components called reactors. Reactors can form a dataflow network, are triggered by timed as well as sporadic events, execute concurrently, and can be distributed across nodes on a network. With modal models in LF, we introduce a lean extension to the concept of reactors that enables the coordination of reactive tasks based on modes of operation. The implementation of modal reactors outlined in this paper generalizes to any LF-supported language with only modest modifications to the generic runtime system.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/01/2019

Distributed Reactive Programming for Reactive Distributed Systems

Context: The term reactivity is popular in two areas of research: progra...
research
02/14/2020

Implementing a Language for Distributed Systems: Choices and Experiences with Type Level and Macro Programming in Scala

Multitier programming languages reduce the complexity of developing dist...
research
02/18/2022

Topology-Level Reactivity in Distributed Reactive Programs: Reactive Acquaintance Management using Flocks

Reactive programming is a popular paradigm to program event-driven appli...
research
01/06/2023

High-Performance Deterministic Concurrency using Lingua Franca

Actor frameworks and similar reactive programming techniques are widely ...
research
11/09/2021

Breaking Good: Fracture Modes for Realtime Destruction

Drawing a direct analogy with the well-studied vibration or elastic mode...
research
10/16/2020

Really Embedding Domain-Specific Languages into C++

Domain-specific languages (DSLs) are both pervasive and powerful, but re...
research
11/25/2019

Integrating Inter-Object Scenarios with Intra-object Statecharts for Developing Reactive Systems

In all software development projects, engineers face the challenge of tr...

Please sign up or login with your details

Forgot password? Click here to reset