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 intersecting 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 result in 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) 特征变化的推理、概率性编程和近似编程。