...
【24h】

Efficient extraction and analysis of preprocessor-based variability

机译:基于预处理程序的可变性的有效提取和分析

获取原文
获取原文并翻译 | 示例
   

获取外文期刊封面封底 >>

       

摘要

The C Preprocessor (CPP) is the tool of choice for the implementation of variability in many large-scale configurable software projects. Linux, probably the most-configurable piece of software ever, employs more than 10;000 preprocessor variables for this purpose. However, this de-facto variability tends to be “hidden in the code”; which on the long term leads to variability defects, such as dead code or inconsistencies with respect to the intended (modeled) variability of the software. This calls for tool support for the efficient extraction of (and reasoning over) CPP-based variability. We suggest a novel approach to extract CPP-based variability. Our tool transforms CPP-based variability in O(n) complexity into a propositional formula that “mimics” all valid effects of conditional compilation and can be analyzed with standard SAT or BDD packages. Our evaluation results demonstrate the scalability and practicability of the approach. A dead-block-analysis on the complete Linux source tree takes less than 30 minutes; we thereby have revealed 60 dead blocks, 2 of which meanwhile have been confirmed as new (and long-lasting) bugs; the rest is still under investigation.
机译:C预处理程序(CPP)是在许多大规模可配置软件项目中实现可变性的首选工具。 Linux,可能是有史以来最可配置的软件,为此目的,使用了10,000多个预处理器变量。但是,事实上的可变性往往被“隐藏在代码中”。从长远来看,这会导致可变性缺陷,例如死代码或相对于软件预期(建模)可变性的不一致。这就需要工具支持,以有效地提取(并推理)基于CPP的可变性。我们建议一种新颖的方法来提取基于CPP的可变性。我们的工具将O(n)复杂度中基于CPP的可变性转换为命题公式,可以“模拟”条件编译的所有有效效果,并且可以使用标准SAT或BDD软件包进行分析。我们的评估结果证明了该方法的可扩展性和实用性。在完整的Linux源代码树上进行死块分析只需不到30分钟的时间;因此,我们发现了60个死区,其中2个已被确认为新的(并且是持久的)错误;其余的仍在调查中。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号