Variability encoding: From compile-time to load-time variability

Variability encoding: From compile-time to load-time variability
复制标题

可变性编码:从编译时可变性到加载时可变性

DOI:
10.1016/j.jlamp.2015.06.007
复制
发表时间:
2016
期刊:
J. Log. Algebraic Methods Program.
影响因子:
--
通讯作者:
Sven Apel
Sven Apel
中科院分区:
--
文献类型:
--
作者:
Alexander von Rhein;Thomas Thüm;Ina Schaefer;Jörg Liebig;Sven Apel

文献摘要

参考文献

被引文献

相似文献

今天的许多软件系统都是可配置的。分析可配置系统是具有挑战性的,尤其是因为(1)系统变量的数量可能随着配置选项的数量呈指数增长,以及(2)现有的分析工具通常不能用于可配置系统。最近的工作建议自动将编译时可变性转换为加载时可变性-称为可变性编码-目标是重用现有的分析工具来分析可配置的系统,并与以暴力方式分析所有系统变体相比提高分析性能。然而,对于任何给定的编译时可配置系统,人们是否能够自动地找到可有效分析的加载时间可配置系统尚不清楚。此外,对于许多分析,我们需要保证加载时可配置系统精确地编码可以静态派生的所有系统变量的行为。我们解决了这两个问题(1)通过开发基于Featherweight Java的可变性编码的正式模型,(2)通过证明可变性编码相对于一组核心语言机制保留了可变性行为,(3)通过讨论我们的工作如何扩展到更复杂的语言机制来逃避我们的正式模型,以及(4)通过分享我们在现实世界应用程序中实现和使用可变性编码的经验。
Many software systems today are configurable. Analyzing configurable systems is challenging, especially as (1) the number of system variants may grow exponentially with the number of configuration options, and (2) often existing analysis tools cannot be used for configurable systems. Recent work proposes to automatically transform compile-time variability into load-time variability—calledvariability encoding—with the goal of reusing existing analysis tools for analyzing configurable systems and improving analysis performance compared to analyzing all system variants in a brute-force manner. However, it is not clear whether one can automatically find an efficiently analyzable load-time configurable system for any given compile-time configurable system. Also, for many analyses, we need guarantees that the load-time configurable system precisely encodes the behavior of all system variants that can be statically derived. We address both issues (1) by developing a formal model of variability encoding based onFeatherweight Java, (2) by proving that variability encoding preserves variant behavior with respect to a core set of language mechanisms, (3) by discussing how our work extends to more complex language mechanisms that elude our formal model, and (4) by sharing our experience with implementing and using variability encoding in real-world applications.
变分 lambda 演算的容错类型系统
DOI: 10.1145/2364527.2364535
发表时间: 2012
期刊: Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
影响因子: --
作者:
Sheng Chen;Martin Erwig;Eric Walkingshaw
通讯作者: Eric Walkingshaw
DOI: 10.1145/2568225.2568300
发表时间: 2014-05
期刊: Proceedings of the 36th International Conference on Software Engineering
影响因子: --
作者:
H. V. Nguyen;Christian Kästner;T. Nguyen
通讯作者: H. V. Nguyen;Christian Kästner;T. Nguyen
DOI: 10.1145/1621607.1621632
发表时间: 2009-10
期刊: --
影响因子: --
作者:
Christian Kästner;S. Apel;Martin Kuhlemann
通讯作者: Christian Kästner;S. Apel;Martin Kuhlemann
DOI: 10.1145/2580950
发表时间: 2014-07-01
影响因子: 16.6
作者:
Thuem, Thomas;Apel, Sven;Saake, Gunter
通讯作者: Saake, Gunter
SPLIFT:在几分钟而不是几年内静态分析软件产品线
DOI: 10.1145/2491956.2491976
发表时间: 2013
期刊: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子: --
作者:
E. Bodden;T. Tolêdo;Márcio Ribeiro;Claus Brabrand;Paulo Borba;M. Mezini
通讯作者: M. Mezini