
TL;DR
This paper introduces Modal Software Engineering, a method to transform sequential programs into efficient, semantically equivalent programs that operate across multiple overlapping input worlds, inspired by modal logic.
Contribution
It proposes a novel approach to handle multiple overlapping input domains efficiently, applicable to software variability, probabilistic programming, and approximate computing.
Findings
Enables efficient processing across multiple overlapping worlds
Reduces redundancy compared to independent processing
Applicable to SPL variability, probabilistic, and approximate programming
Abstract
In this paper we introduce the notion of Modal Software Engineering: automatically turning sequential, deterministic programs into semantically equivalent programs efficiently operating on inputs coming from multiple overlapping worlds. We are drawing an analogy between modal logics, and software application domains where multiple sets of inputs (multiple worlds) need to be processed efficiently. Typically those sets highly overlap, so processing them independently would involve a lot of redundancy, resulting in lower performance, and in many cases intractability. Three application domains are presented: reasoning about feature-based variability of Software Product Lines (SPLs), probabilistic programming, and approximate programming.
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.
