首页> 外文会议>International Symposium on Formal Methods >Finding Suitable Variability Abstractions for Family-Based Analysis
【24h】

Finding Suitable Variability Abstractions for Family-Based Analysis

机译:寻找适当的基于家庭分析的可变性抽象

获取原文

摘要

For program families (Software Product Lines), specially designed variability-aware static (dataflow) analyses allow analyzing all variants (products) of the family, simultaneously, in a single run without generating any of the variants explicitly. They are also known as lifted or family-based analyses. The variability-aware analyses may be too costly or even infeasible for families with a large number of variants. In order to make them computationally cheaper, we can apply variability abstractions which aim to tame the combinatorial explosion of the number of variants (configurations) and reduce it to something more tractable. However, the number of possible abstractions is still intractably large to search naively, with most abstractions being too imprecise or too costly. In this work, we propose a technique to efficiently find suitable variability abstractions from a large family of abstractions for a variability-aware static analysis. The idea is to use a pre-analysis to estimate the impact of variability-specific parts of the program family on the analysis's precision. Then we use the pre-analysis results to find out when and where the analysis should turn off or on its variability-awareness. We demonstrate the practicality of this approach on several Java benchmarks.
机译:对于程序系列(软件产品线),特殊设计的可变性感知静态(DataFlow)分析允许同时分析家庭的所有变体(产品),在单个运行中,而不明确地产生任何变体。它们也被称为提升或基于家庭的分析。有变异性的分析可能太昂贵,对具有大量变体的家庭来说太昂贵甚至不可行。为了使它们计算更便宜,我们可以应用可变性抽象,该抽象旨在驯服变体数量(配置)的组合爆炸,并将其减少到更具易行的东西。然而,可能的抽象的数量仍然是悲惨的,以天真地搜索,大多数抽象太不精确或太昂贵。在这项工作中,我们提出了一种技术,以有效地找到来自大型抽象的合适的可变性抽象,以获得变化意识的静态分析。这个想法是使用预分析来估计程序家族的可变性特定部分对分析精度的影响。然后,我们使用预分析结果来了解分析应关闭或何时何地关掉或者在其变化意识上。我们展示了这种方法对几个Java基准的实用性。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号