Harmonizing Signals and Events with a Lightweight Extension to Java
Tetsuo Kamina (Ritsumeikan University, Japan), Tomoyuki Aotani (The, University of Tokyo, Japan)

TL;DR
This paper introduces SignalJ, a lightweight Java extension harmonizing events and signals to simplify reactive programming, supported by a formal model and proofs of soundness.
Contribution
It presents a novel approach to combine events and signals into a unified, simplified interface in Java, along with a formal model and proofs of correctness.
Findings
Event can be represented as a signal update
Effectful signals can be implemented with annotations
The formal model ensures soundness of the combined mechanisms
Abstract
The current demands for seamless connections with the surrounding environment make software more reactive. For example, such demands are evident in systems consisting of the Internet of Things. Such systems include a set of reactive values that are periodically updated in response to external or internal events to form a dataflow in the sense that such updates are propagated to other reactive values. Two effective approaches for realizing such reactive values have been proposed: the event mechanisms in event-based programming and the signals in functional-reactive programming. These two approaches are now becoming mixed in several languages such as Flapjax and REScala, which makes these languages notably expressive for modularizing the implementation of reactive software. For example, REScala provides a rich API that consists of functions converting events to signals and vice versa.…
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.
