Hailstorm : A Statically-Typed, Purely Functional Language for IoT Applications
Paper i proceeding, 2020

With the growing ubiquity of Internet of Things (IoT), more complex logic is being programmed on resource-constrained IoT devices, almost exclusively using the C programming language. While C provides low-level control over memory, it lacks a number of high-level programming abstractions such as higher-order functions, polymorphism, strong static typing, memory safety, and automatic memory management.

We present Hailstorm, a statically-typed, purely functional programming language that attempts to address the above problem. It is a high-level programming language with a strict typing discipline. It supports features like higher-order functions, tail-recursion and automatic memory management, to program IoT devices in a declarative manner. Applications running on these devices tend to be heavily dominated by I/O. Hailstorm tracks side effects like I/O in its type system using resource types. This choice allowed us to explore the design of a purely functional standalone language, in an area where it is more common to embed a functional core in an imperative shell. The language borrows the combinators of arrowized FRP, but has discrete-time semantics. The design of the full set of combinators is work in progress, driven by examples. So far, we have evaluated Hailstorm by writing standard examples from the literature (earthquake detection, a railway crossing system and various other clocked systems), and also running examples on the GRiSP embedded systems board, through generation of Erlang.

compilers

Iot

embedded systems

Functional Programming

Författare

Abhiroop Sarkar

Chalmers, Data- och informationsteknik, Funktionell programmering

Mary Sheeran

Chalmers, Data- och informationsteknik, Funktionell programmering

Proceedings of the 22nd ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming

22nd InternationalSymposium on Principles and Practice of Declarative Programming
Bologna, Italy,

Octopi: Säker Programering för Sakernas Internet

Stiftelsen för Strategisk forskning (SSF), 2018-03-01 -- 2023-02-28.

Styrkeområden

Informations- och kommunikationsteknik

Ämneskategorier

Inbäddad systemteknik

Datavetenskap (datalogi)

Datorsystem

DOI

10.1145/3414080.3414092

Mer information

Senast uppdaterat

2020-11-09