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.
翻译:在本文中,我们引入了“模式软件工程”的概念:在来自多个重叠世界的投入上,自动将顺序、确定性程序转化为等同的语义程序,高效地运行。我们正在对模式逻辑和软件应用领域进行类比,需要有效地处理多组投入(多个世界 ) 。 典型地说,这些输入组(多个世界 ) 高度重叠,因此,独立处理它们将涉及大量冗余,导致性能下降,而且在许多情况下具有吸引力。我们介绍了三个应用领域:基于软件产品线(SPLs)特征变化的推理、概率性能编程和大致编程。