FRP IoT Modules as a Scala DSL

Ben Calus, Bob Reynders, Dominique Devriese, Job Noorman, Frank Piessens

Research output: Chapter in Book/Report/Conference proceedingConference paper

8 Citations (Scopus)

Abstract

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 inverted control flow and reliance on shared global state makes this style of programming hard to maintain. Furthermore, sensor network applications are inherently distributed and are written by manually managing code-bases of sub-Applications that go on all nodes separately. If security is important, the programmer needs to manually interface with low-level security primitives because there is no built-in notion of components. We propose a more maintainable approach where the developer essentially writes a first-order FRP program, containing code fragments in an embedded subset of C. From this FRP program, we generate efficient C code to be run on every node. 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 we use to let the user conveniently embed fragments of 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.

Original languageEnglish
Title of host publicationREBLS 2017 - Proceedings of the 4th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems, co-located with SPLASH 2017
PublisherAssociation for Computing Machinery, Inc
Pages15-20
Number of pages6
ISBN (Electronic)9781450355155
DOIs
Publication statusPublished - 23 Oct 2017
Event4th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems, REBLS 2017 - Vancouver, Canada
Duration: 23 Oct 2017 → …

Conference

Conference4th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems, REBLS 2017
Country/TerritoryCanada
CityVancouver
Period23/10/17 → …

Keywords

  • DSL
  • Functional Reactive Programming
  • Scala

Fingerprint

Dive into the research topics of 'FRP IoT Modules as a Scala DSL'. Together they form a unique fingerprint.

Cite this