Hailstorm : A Statically-Typed, Purely Functional Language for IoT Applications
Abhiroop Sarkar, Mary Sheeran

TL;DR
Hailstorm is a new statically-typed, purely functional programming language designed for IoT devices, offering high-level abstractions, memory safety, and resource-aware type tracking to improve IoT application development.
Contribution
It introduces Hailstorm, a high-level functional language with static typing and resource-aware features tailored for resource-constrained IoT devices, addressing limitations of C.
Findings
Successfully implemented IoT applications like earthquake detection and railway crossing systems.
Demonstrated Hailstorm's capability on embedded hardware like the GRiSP board.
Explored the design of a purely functional language with resource tracking for IoT.
Abstract
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 likeI/O in its type system using resource…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
