首页> 外文会议>IEEE International Working Conference on Source Code Analysis and Manipulation >Analyzing the Evolution of Preprocessor-Based Variability: A Tale of a Thousand and One Scripts
【24h】

Analyzing the Evolution of Preprocessor-Based Variability: A Tale of a Thousand and One Scripts

机译:分析了基于预处理的可变性的演变:千千篇和一个脚本的故事

获取原文

摘要

Highly configurable software systems allow the efficient and reliable development of similar software variants based on a common code base. The C preprocessor CPP, which uses source code annotations that enable conditional compilation, is a simple yet powerful text-based tool for implementing such systems. However, since annotations interfere with the actual source code, the CPP has often been accused of being a source of errors and increased maintenance effort. In our research, we have been curious about whether high-level patterns of CPP misuse (i.e., code smells) can be identified, how they evolve, and whether they really hinder maintenance. To support this research, we started a simple tool which over the years evolved into a powerful toolchain. This evolution was possible because our toolchain is not monolithic, but is composed of many small tools connected by scripts and communicating via files. Moreover, we reused existing tools whenever possible and developed our own solutions only as a last resort. In this paper, we report our experiences of building this toolchain. In particular, we present design decisions we made and lessons learned, both positive and negative ones. We hope that this not only stimulates discussion and (in the best case) attracts more researchers in using our tools. Rather, we also want to encourage others to put emphasis on building tools instead of considering them 《yet another research prototype》.
机译:高度可配置的软件系统允许基于公共代码库的类似软件变体的高效和可靠的开发。使用源代码注释启用条件编译的C预处理器是一种简单而强大的基于文本的工具,用于实现此类系统。但是,由于注释干扰了实际的源代码,因此CPP经常被指控成为错误的来源和增加的维护工作。在我们的研究中,我们对CPP误用的高级模式(即代码闻)的高级模式,它们是如何识别的,它们是如何发展的,以及他们是否真的妨碍维护。为了支持这项研究,我们开始了一个简单的工具,多年来一直进化为一个强大的工具链。这一进化是可能的,因为我们的工具链没有单片,而是由脚本连接的许多小工具组成,并通过文件进行通信。此外,我们尽可能重复使用现有工具,仅作为最后的手段开发自己的解决方案。在本文中,我们报告了我们建立了这个工具链的经验。特别是,我们呈现我们所做的设计决策和经验教训,积极和消极的。我们希望这不仅刺激讨论和(在最好的情况下)吸引更多的研究人员使用我们的工具。相反,我们还希望鼓励其他人强调建设工具,而不是考虑到他们“另一个研究原型”。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号