On the Expressive Power of Languages for Static Variability

被引:1
作者
Bittner, Paul Maximilian [1 ,2 ]
Schultheiss, Alexander [1 ,3 ]
Moosherr, Benjamin [2 ]
Young, Jeffrey M. [4 ]
Teixeira, Leopoldo [5 ]
Walkingshaw, Eric
Ataei, Parisa [6 ]
Thuem, Thomas [1 ,7 ]
机构
[1] Paderborn Univ, Paderborn, Germany
[2] Ulm Univ, Ulm, Germany
[3] Univ Bern, Bern, Switzerland
[4] Input Output Global, Longmont, CO USA
[5] Univ Fed Pernambuco, Pernambuco, Brazil
[6] Input Output Global, Buffalo, NY USA
[7] TU Braunschweig, Paderborn, Germany
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2024年 / 8卷 / OOPSLA期
基金
瑞士国家科学基金会;
关键词
variation; software product lines; configuration; language semantics;
D O I
10.1145/3689747
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Variability permeates software development to satisfy ever-changing requirements and mass-customization needs. A prime example is the Linux kernel, which employs the C preprocessor to specify a set of related but distinct kernel variants. To study, analyze, and verify variational software, several formal languages have been proposed. For example, the choice calculus has been successfully applied for type checking and symbolic execution of configurable software, while other formalisms have been used for variational model checking, change impact analysis, among other use cases. Yet, these languages have not been formally compared, hence, little is known about their relationships. Crucially, it is unclear to what extent one language subsumes another, how research results from one language can be applied to other languages, and which language is suitable for which purpose or domain. In this paper, we propose a formal framework to compare the expressive power of languages for static (i.e. compile-time) variability. By establishing a common semantic domain to capture a widely used intuition of explicit variability, we can formulate the basic, yet to date neglected, properties of soundness, completeness, and expressiveness for variability languages. We then prove the (un)soundness and (in)completeness of a range of existing languages, and relate their ability to express the same variational systems. We implement our framework as an extensible open source Agda library in which proofs act as correct compilers between languages or differencing algorithms. We find different levels of expressiveness as well as complete and incomplete languages w.r.t. our unified semantic domain, with the choice calculus being among the most expressive languages.
引用
收藏
页数:33
相关论文
共 146 条
[61]   The ECCO Tool: Extraction and Composition for Clone-and-Own [J].
Fischer, Stefan ;
Linsbauer, Lukas ;
Lopez-Herrejon, Roberto E. ;
Egyed, Alexander .
2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol 2, 2015, :665-668
[62]   Change distilling:: Tree differencing for fine-grained source code change extraction [J].
Fluri, Beat ;
Wuersch, Michael ;
Pinzger, Martin ;
Gall, Harald C. .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2007, 33 (11) :725-743
[63]  
Franz P., 2021, 2021 IEEEACM 43 INT, P91, DOI [DOI 10.1109/ICSE-SEIP52600.2021.00018, 10.1109/ICSE-SEIP52600.2021.00018]
[64]   FINDING THE OPTIMAL VARIABLE ORDERING FOR BINARY DECISION DIAGRAMS [J].
FRIEDMAN, SJ ;
SUPOWIT, KJ .
IEEE TRANSACTIONS ON COMPUTERS, 1990, 39 (05) :710-713
[65]   Bringing Together Configuration Research: Towards a Common Ground [J].
Gazzillo, Paul ;
Cohen, Myra B. .
PROCEEDINGS OF THE 2022 ACM SIGPLAN INTERNATIONAL SYMPOSIUM ON NEW IDEAS, NEW PARADIGMS, AND REFLECTIONS ON PROGRAMMING AND SOFTWARE, ONWARD! 2022, 2022, :259-269
[66]  
GNU Operating System, 2024, GNU M4
[67]  
Gruler A, 2008, LECT NOTES COMPUT SC, V5051, P113, DOI 10.1007/978-3-540-68863-1_8
[68]  
Gruler Alexander, 2010, A Formal Approach to Software Product Families
[69]   Automotive software engineering: A systematic mapping study [J].
Haghighatkhah, Alireza ;
Banijamali, Ahmad ;
Pakanen, Olli-Pekka ;
Oivo, Markku ;
Kuvaja, Pasi .
JOURNAL OF SYSTEMS AND SOFTWARE, 2017, 128 :25-55
[70]   Control Parameters Considered Harmful: Detecting Range Specification Bugs in Drone Configuration Modules via Learning-Guided Search [J].
Han, Ruidong ;
Yang, Chao ;
Ma, Siqi ;
Ma, JiangFeng ;
Sun, Cong ;
Li, Juanru ;
Bertino, Elisa .
2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2022), 2022, :462-473