With Internet of Things applications growing in size and popularity, physical sensor networks are more often running multiple complex applications. It becomes increasingly important to maintain these event-driven programs on embedded systems. Traditionally, event-driven applications such as sensor network applications are written using an imperative style of programming where different callback routines are registered to handle events. As the application complexity grows, the maintainability of this style of programming becomes an issue. Furthermore, sensor network applications are inherently distributed and are written by manually managing code-bases of sub-applications that go on all nodes separately.
We propose a more maintainable approach where the developer essentially writes a meta-program that constructs a first-order FRP program. From that FRP program we generate efficient C code. Every module of the FRP program is compiled to a separate C module, making it easy to deploy modules to different nodes, and to enhance the security of the application by isolating modules from other software running on the nodes. Our implementation is based on a Scala EDSL that makes it convenient to write such meta-programs, and we use Lightweight Modular Staging to generate annotated C code. The annotated C code gets compiled to Sancus, a security architecture for IoT nodes that supports the secure and distributed execution of the generated modules.
Mon 23 OctDisplayed time zone: Tijuana, Baja California change
13:30 - 15:00 | |||
13:30 30mTalk | FRP IoT Modules as a Scala DSL REBLS Ben Calus imec - DistriNet, KU Leuven, Bob Reynders imec-DistriNet, KU Leuven, Belgium, Dominique Devriese KU Leuven, Job Noorman KU Leuven, Frank Piessens KU Leuven | ||
14:00 30mTalk | Tackling the Awkward Squad for Reactive Programming: The Actor-Reactor Model REBLS Sam Van den Vonder , Joeri De Koster Vrije Universiteit Brussel, Belgium, Florian Myter Vrije Universiteit Brussel, Belgium, Wolfgang De Meuter Vrije Universiteit Brussel DOI Pre-print | ||
14:30 30mTalk | Verifiable Reactive Software REBLS |