paperbot · PL 论文追踪

RSS

An efficient algorithm for type-safe structural diffing

ICFP 3(ICFP)2019
Victor Cacciari Miraldo, Wouter Swierstra

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

Effectively computing the difference between two version of a source file has become an indispensable part of software development. The de facto standard tool used by most version control systems is the UNIX diff utility, that compares two files on a line-by-line basis without any regard for the structure of the data stored in these files. This paper presents an alternative datatype generic algorithm for computing the difference between two values of any algebraic datatype. This algorithm maximizes sharing between the source and target trees, while still running in linear time. Finally, this paper demonstrates that by instantiating this algorithm to the Lua abstract syntax tree and mining the commit history of repositories found on GitHub, the resulting patches can often be merged automatically, even when existing technology has failed.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot610,
  title = {An efficient algorithm for type-safe structural diffing},
  author = {Victor Cacciari Miraldo and Wouter Swierstra},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {3},
  number = {ICFP},
  year = {2019},
  doi = {10.1145/3341717}
}