Hailstorm : A Statically-Typed, Purely Functional Language for IoT Applications
Paper in proceeding, 2020
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
Functional Programming
embedded systems
Author
Abhiroop Sarkar
Chalmers, Computer Science and Engineering (Chalmers), Functional Programming
Mary Sheeran
Chalmers, Computer Science and Engineering (Chalmers), Functional Programming
ACM International Conference Proceeding Series
9781450388214 (ISBN)
Bologna, Italy,
Octopi: Säker Programering för Sakernas Internet
Swedish Foundation for Strategic Research (SSF) (RIT17-0023), 2018-03-01 -- 2023-02-28.
Areas of Advance
Information and Communication Technology
Subject Categories
Embedded Systems
Computer Science
Computer Systems
DOI
10.1145/3414080.3414092