Juniper: A Functional Reactive Programming Language for the Arduino
Caleb Helbling, Samuel Z Guyer

TL;DR
Juniper is a new functional reactive programming language designed for Arduino microcontrollers, offering high-level features and seamless integration with C++ to facilitate development on resource-constrained devices.
Contribution
It introduces a FRP language tailored for Arduino, with features like polymorphic functions and automatic memory management, translated to C++ for compatibility.
Findings
Successfully compiled on Arduino hardware
Provides a standard library for FRP signal processing
Enables high-level programming on microcontrollers
Abstract
This paper presents the design and implementation of Juniper: a functional reactive programming language (FRP) targeting the Arduino and related microcontroller systems. Juniper provides a number of high level features, including parametric polymorphic functions, anonymous functions, automatic memory management, and immutable data structures. Also included is a standard library which offers many useful FRP signal processing functions. Juniper is translated to standard C++ and compiled with the existing Arduino development tools, allowing Juniper programs to fit on resource-constrained devices, and enabling seamless interoperability with existing C++ libraries for these devices.
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.
