On the Expressive Power of Languages for Static Variability
Paul Maximilian Bittner, Alexander Schultheiß, Benjamin Moosherr, Jeffrey M. Young, Leopoldo Teixeira, Eric Walkingshaw, Parisa Ataei, Thomas Thüm
摘要
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.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper1
问问它们各自怎么用它它引用的顶会 Paper16
- An empirical analysis of the costs of clone- and platform-oriented software reuseJacob Krüger, Thorsten BergerFSE 2020 · 被引用 81 次
- Understanding and discovering software configuration dependencies in cloud and datacenter systemsQingrong Chen, Teng Wang, Owolabi Legunsen, Shanshan Li 等FSE 2020 · 被引用 54 次
- Finding broken Linux configuration specifications by statically analyzing the Kconfig languageJeho Oh, Necip Fazil Yildiran, Julian Braha, Paul GazzilloFSE 2021 · 被引用 46 次
- Control Parameters Considered Harmful: Detecting Range Specification Bugs in Drone Configuration Modules via Learning-Guided SearchRuidong Han, Chao Yang, Siqi Ma, Jianfeng Ma 等ICSE 2022 · 被引用 27 次
- Tseitin or not Tseitin? The Impact of CNF Transformations on Feature-Model AnalysesElias Kuiter, Sebastian Krieter, Chico Sundermann, Thomas Thüm 等ASE 2022 · 被引用 24 次
相关 Paper
- SugarC: Scalable Desugaring of Real-World Preprocessor Usage into Pure CZach Patterson, Zenong Zhang, Brent Pappas, Shiyi Wei 等ICSE 2022 · 被引用 36 次
- Automatic and efficient variability-aware lifting of functional programsRamy Shahin, Marsha ChechikOOPSLA 2020 · 被引用 18 次
- Classifying edits to variability in source codePaul Maximilian Bittner, Christof Tinnes, Alexander Schultheiß, Sören Viegener 等FSE 2022 · 被引用 8 次
- The Essence of Verilog: A Tractable and Tested Operational Semantics for VerilogQinlin Chen, Nairen Zhang, Jinpeng Wang, Tian Tan 等OOPSLA 2023 · 被引用 10 次
- Formal metatheory of second-order abstract syntaxMarcelo Fiore, Dmitrij SzamozvancevPOPL 2022 · 被引用 20 次
