paperbot · PL 论文追踪

全部论文 待读 收藏

P2 SiMPOSE - Configurable N-Way Program Merging Strategies for Superimposition-Based Analysis of Variant-Rich Software

SiMPOSE——面向变体丰富软件叠加分析的可配置 N 路程序合并策略
ASE 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE)2019匹配度 3/10 · 论文属于程序分析与软件工程中的变体丰富软件家族式分析,使用控制流自动机做 N 路程序合并,和静态分析基础设施有一定关联;但用户核心方向是 PL 与 LLM/Agent、浮点程序分析及贝叶斯程序分析,本文不涉及 LLM、Agent、ML 系统、浮点或贝叶斯方法,因此匹配度较低。引用 2 inbox
Dennis Reuling, Udo Kelter, Sebastian Ruland, Malte Lochau
crossref: 2026-09-12

AI 速览

一句话:SiMPOSE 在控制流自动机层面对 N 个程序变体做可配置的 N 路合并,自动生成叠加以支持家族式分析。

现代软件常以众多相似版本或变体的形式存在,通常由同一代码库派生(如 clone-and-own)。在产品线工程中,家族式分析相比逐变体分析能显著提升质量保障效率,但它依赖将所有程序变体以语法良构、语义健全且保持变体语义的方式叠加(superimposition),这在实践中难以手工获得。本文提出并演示 SiMPOSE 方法,能够自动为给定的 N 个程序版本/变体生成叠加,从而支持对变体丰富软件的家族式分析。SiMPOSE 基于一种新的 N 路模型合并技术,工作在 C 程序的控制流自动机(CFA)表示层面,CFA 是许多近期软件分析工具采用的统一程序抽象。文章展示了 SiMPOSE 支持的多种合并策略,包括逐变体、N 路合并、增量式 2 路合并以及基于划分的 N/2 路合并,并演示如何系统比较这些策略对家族式单元测试生成的效率与效果的影响。工具、使用演示及相关文档与工件已在网上公开。

问题
对变体丰富软件进行家族式分析需要语法良构、语义健全且保持变体的程序叠加表示,但这类叠加在实际中很难手工构造。
方法
在 C 程序的控制流自动机(CFA)表示层面进行新型 N 路模型合并,自动生成 N 个程序版本/变体的叠加,并支持逐变体、N 路、增量 2 路和基于划分的 N/2 路等可配置合并策略。
评估
以家族式单元测试生成为例,系统比较不同合并策略对分析效率与效果的影响,并公开工具、使用演示与相关工件文档。
原文摘要(Abstract)

Modern software often exists in many different, yet similar versions and/or variants, usually derived from a common code base (e.g., via clone-and-own). In the context of product-line engineering, family-based analysis has shown very promising potential for improving efficiency in applying quality-assurance techniques to variant-rich software, as compared to a variant-by-variant approach. Unfortunately, these strategies rely on a product-line representation superimposing all program variants in a syntactically well-formed, semantically sound and variant-preserving manner, which is manually hard to obtain in practice. We demonstrate the SiMPOSE methodology for automatically generating superimpositions of N given program versions and/or variants facilitating family-based analysis of variant-rich software. SiMPOSE is based on a novel N-way model-merging technique operating at the level of control-flow automata (CFA) representations of C programs. CFAs constitute a unified program abstraction utilized by many recent software-analysis tools. We illustrate different merging strategies supported by SiMPOSE, namely variant-by-variant, N-way merging, incremental 2-way merging, and partition-based N/2-way merging, and demonstrate how SiMPOSE can be used to systematically compare their impact on efficiency and effectiveness of family-based unit-test generation. The SiMPOSE tool, the demonstration of its usage as well as related artifacts and documentation can be found at http://pi.informatik.uni-siegen.de/projects/variance/simpose.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot5221,
  title = {SiMPOSE - Configurable N-Way Program Merging Strategies for Superimposition-Based Analysis of Variant-Rich Software},
  author = {Dennis Reuling and Udo Kelter and Sebastian Ruland and Malte Lochau},
  booktitle = {ASE},
  year = {2019},
  doi = {10.1109/ase.2019.00120}
}