On the Expressive Power of Languages for Static VariabilityOOPSLA 2024 Distinguished Artifact Award
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 the essence 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 that most variability languages are complete, sound, and equally expressive, rendering existing and future research more broadly applicable by bridging the gaps between parallel research efforts.
Fri 25 OctDisplayed time zone: Pacific Time (US & Canada) change
13:50 - 15:30 | |||
13:50 20mTalk | Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization OOPSLA 2024 Joseph W. Cutler University of Pennsylvania, Craig Disselkoen Amazon Web Services, Aaron Eline Amazon Web Services, Shaobo He Amazon Web Services, Kyle Headley Unaffiliated, Michael Hicks Amazon Web Services and the University of Maryland, Kesha Hietala Amazon Web Services, Lef Ioannidis University of Pennsylvania, John Kastner Amazon Web Services, Anwar Mamat University of Maryland, Darin McAdams Amazon Web Services, Matt McCutchen Unaffiliated, Neha Rungta Amazon Web Services, Emina Torlak Amazon Web Services, USA, Andrew Wells Amazon Web Services DOI | ||
14:10 20mTalk | CoolerSpace: A Language for Physically Correct and Computationally Efficient Color Programming OOPSLA 2024 Ethan Chen University of Rochester, Jiwon Chang University of Rochester, Yuhao Zhu University of Rochester DOI | ||
14:30 20mTalk | Design and Implementation of an Aspect-Oriented C Programming Language OOPSLA 2024 Zhe Chen Nanjing University of Aeronautics and Astronautics, Yunlong Zhu Nanjing University of Aeronautics and Astronautics, Zhemin Wang Nanjing University of Aeronautics and Astronautics DOI | ||
14:50 20mTalk | On the Expressive Power of Languages for Static VariabilityOOPSLA 2024 Distinguished Artifact Award OOPSLA 2024 Paul Maximilian Bittner Paderborn University, Alexander Schultheiß Paderborn University, Benjamin Moosherr University of Ulm, Jeffrey Young IOHK, Leopoldo Teixeira Federal University of Pernambuco, Eric Walkingshaw Unaffiliated, Parisa Ataei Oregon State University, Thomas Thüm Paderborn University Link to publication DOI Pre-print Media Attached | ||
15:10 20mTalk | QuAC: Quick Attribute-Centric Type Inference for Python OOPSLA 2024 DOI Pre-print |