Hailstorm : A Statically-Typed, Purely Functional Language for IoT Applications
Paper i 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
Författare
Abhiroop Sarkar
Chalmers, Data- och informationsteknik, Funktionell programmering
Mary Sheeran
Chalmers, Data- och informationsteknik, Funktionell programmering
ACM International Conference Proceeding Series
9781450388214 (ISBN)
Bologna, Italy,
Octopi: Säker Programering för Sakernas Internet
Stiftelsen för Strategisk forskning (SSF) (RIT17-0023), 2018-03-01 -- 2023-02-28.
Styrkeområden
Informations- och kommunikationsteknik
Ämneskategorier
Inbäddad systemteknik
Datavetenskap (datalogi)
Datorsystem
DOI
10.1145/3414080.3414092