【24h】

Detecting semantic changes in Makefile build code

机译:检测Makefile构建代码中的语义更改

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

摘要

Build code in a Makefile represents the build rules with the dependencies among the files, and how they must be built together to produce a software system. As software evolves, its build code evolves as well to accommodate necessary changes in the build process. As part of software maintenance, it is crucial to understand how the build code is changed (e.g. changes in build rules or dependencies), and to verify and validate the correctness of the build process with different build configurations. Due to Make's dynamic nature, understanding and managing the changes to Makefiles is not trivial. In this paper, we introduce a set of semantic changes to build code in Makefiles. We also develop MkDiff, a tool to detect the changes to a Makefile at the semantic level. MkDiff uses symbolic dependency graphs (SDG) to find all possible concrete rules from a Makefile, and the dependencies among them. For two SDGs built from a Makefile at two versions, it first detects changed and unchanged nodes via its SDG matching algorithm. Then, from those results, it derives the semantic changes to the Makefile. Our empirical evaluation for MkDiff showed that it can accurately detect semantic changes in Makefiles.
机译:Makefile中的构建代码表示构建规则以及文件之间的依赖关系,以及如何一起构建它们才能生成软件系统。随着软件的发展,其构建代码也在发展,以适应构建过程中的必要更改。作为软件维护的一部分,至关重要的是了解如何更改构建代码(例如,构建规则或依赖项中的更改),并使用不同的构建配置来验证和验证构建过程的正确性。由于Make的动态特性,理解和管理Makefile的更改并非易事。在本文中,我们介绍了一组语义更改以在Makefile中构建代码。我们还开发了MkDiff,这是一种在语义级别检测Makefile更改的工具。 MkDiff使用符号依赖图(SDG)从Makefile查找所有可能的具体规则,以及它们之间的依赖关系。对于从Makefile构建的两个版本的两个SDG,它首先通过其SDG匹配算法检测已更改和未更改的节点。然后,从这些结果中得出对Makefile的语义更改。我们对MkDiff的经验评估表明,它可以准确检测Makefile中的语义变化。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号