paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Semistructured Merge in JavaScript Systems

JavaScript 系统中的半结构化合并
ASE 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE)2019匹配度 1/10 · 该论文研究 JavaScript 的半结构化合并算法与工具,属于软件工程/开发者工具方向,与用户关注的静态分析、LLM/Agent、浮点程序分析和贝叶斯程序分析均无直接交集。虽然涉及代码语法结构探索,但目标不是静态分析或程序分析理论,也不是 LLM/Agent 交叉研究。引用 22 inbox
Alberto Trindade Tavares, Paulo Borba, Guilherme Cavalcanti, Sergio Soares
crossref: 2026-09-12

AI 速览

一句话:为 JavaScript 实现并评估两种半结构化合并工具,发现其能减少伪冲突,但增益远小于 Java 类语言。

工业界广泛使用基于文本分析的非结构化合并工具来检测和解决代码贡献间的冲突。半结构化合并工具进一步部分探索代码工件的语法结构,从而在 Java 类语言上显著提升合并准确率。为验证该优势能否推广到其他语言,作者实现了两个针对 JavaScript 的半结构化合并工具,并与一个非结构化工具对比。他们发现现有的半结构化合并算法与框架无法直接适用于 JavaScript 这类脚本语言,需要对其进行适配。基于 GitHub 上 50 个 JavaScript 项目的 10,345 个合并场景,实验表明这两个 JavaScript 工具报告的伪冲突少于非结构化合并,且未损害合并过程的正确性;然而,其增益远小于在 Java 类语言上观察到的结果,说明对于允许在同一语法层级上同时出现可交换与不可交换声明的语言,半结构化合并的优势可能是有限的。

问题
半结构化合并及其在 Java 类语言上取得的准确率增益能否推广到 JavaScript 等脚本语言,现有半结构化合并算法与框架是否可直接适用。
方法
实现两个 JavaScript 半结构化合并工具,针对脚本语言特点适配现有半结构化合并算法,并与一个非结构化合并工具进行对比。
评估
从 GitHub 上 50 个 JavaScript 项目中收集 10,345 个合并场景,比较工具报告的伪冲突数量以及合并过程的正确性。
原文摘要(Abstract)

Industry widely uses unstructured merge tools that rely on textual analysis to detect and resolve conflicts between code contributions. Semistructured merge tools go further by partially exploring the syntactic structure of code artifacts, and, as a consequence, obtaining significant merge accuracy gains for Java-like languages. To understand whether semistructured merge and the observed gains generalize to other kinds of languages, we implement two semistructured merge tools for JavaScript, and compare them to an unstructured tool. We find that current semistructured merge algorithms and frameworks are not directly applicable for scripting languages like JavaScript. By adapting the algorithms, and studying 10,345 merge scenarios from 50 JavaScript projects on GitHub, we find evidence that our JavaScript tools report fewer spurious conflicts than unstructured merge, without compromising the correctness of the merging process. The gains, however, are much smaller than the ones observed for Java-like languages, suggesting that semistructured merge advantages might be limited for languages that allow both commutative and non-commutative declarations at the same syntactic level.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot5186,
  title = {Semistructured Merge in JavaScript Systems},
  author = {Alberto Trindade Tavares and Paulo Borba and Guilherme Cavalcanti and Sergio Soares},
  booktitle = {ASE},
  year = {2019},
  doi = {10.1109/ase.2019.00098}
}