Batteryless energy-harvesting devices enable computing in harsh or inaccessible environments, at a cost to programmability and correctness. These devices operate intermittently as energy is available, requiring a recovery system to save and restore program state. Complicating matters, some program tasks must execute atomically w.r.t. power failures, re-executing if power fails before completion. Such a re-execution should typically be idempotent—its behaviour should not differ from the behaviour of a single execution. Thus, a key aspect to correct intermittent execution is identifying and recovering state causing undesired non-idempotence. Unfortunately, past intermittent systems take an ad-hoc approach to identifying this set, using potentially unsound dataflow analyses or conservatively recovering all written state. Moreover, no prior work allows the programmer to specify idempotence requirements.

We present Curricle, the first type system approach to safe intermittence, based on Rust. Type level reasoning allows programmers to express requirements and retains crucial alias information necessary for sound analyses. Curricle uses information flow and type-state reasoning to rule out programs that cause unintentional non-idempotence. We implement Curricle’s type system on top of the Rust compiler, evaluating the prototype on benchmarks from prior work, finding that Curricle benefits recovery system designers and application programmers. Targeting Curricle allows designers to write simpler, more performant systems. Using Curricle allows programmers to express idempotence requirements, having assurance that the program will execute correctly.

Wed 15 Jun

Displayed time zone: Pacific Time (US & Canada) change

17:30 - 19:00
Student Research Competition (SRC) Session and ReceptionSRC at Beach North
17:30
90m
Poster
Control Logic Synthesis Using Formal ISA Specifications
SRC
Benjamin Darnell University of California, Santa Barbara
Media Attached
17:30
90m
Poster
Coupled Applicative Functors
SRC
Lisa Vasilenko IMDEA Software Institute
Media Attached
17:30
90m
Poster
Program Synthesis for Processor Development Using Formal Specifications
SRC
Zachary Sisco UC Santa Barbara
Media Attached
17:30
90m
Poster
Path Alignment Automata are Probabilistic Couplings
SRC
Qian Meng Cornell university
Media Attached
17:30
90m
Poster
Multi-Phase Invariant Synthesis
SRC
Daniel Riley Florida State University
Media Attached
17:30
90m
Poster
Finding Good Generators with Multi-Armed Bandits
SRC
Joseph W. Cutler University of Pennsylvania
Media Attached
17:30
90m
Poster
Impacts of Range Reduction on Polynomial Approximation Efficiency
SRC
Sehyeok Park Rutgers University
Media Attached
17:30
90m
Poster
Automating NISQ Application Design with Meta Quantum Circuits with Constraints (MQCC)
SRC
Haowei Deng University of Maryland at College Park
Media Attached
17:30
90m
Poster
A Type System for Safe Intermittent Computing
SRC
Milijana Surbatovich Carnegie Mellon University
Media Attached
17:30
90m
Poster
PBUnit: A Live Programming Environment for Unit Testing
SRC
Justin Du University of California, San Diego, Mandeep Syal University of California, San Diego, Thanh-Nha Tran University of California, San Diego
Media Attached
17:30
90m
Poster
Visualization with Refinement Types
SRC
Junrui Liu University of California, Santa Barbara
Media Attached