一句话:提出增量式合成算法,从系统自动收集的事件日志中合成 API 调用自动化脚本,并实现工具 LogLoom。
程序合成的目标是让非专家通过规约而非实现来编写程序,但规约本身应无需专业知识且易于获得。本文研究仅从系统自动收集的事件日志中合成自动化脚本的问题。作者提出一种增量式合成算法:每次用一条日志事件序列所例示的行为来扩展 API 调用脚本,并最小化每步对程序的修改,以保留用户意图并合成尽可能通用的程序。该算法实现为工具 LogLoom。在 72 个基准上,LogLoom 合成的脚本有 60 个与参考解完全一致,而现有符号方法仅 14 个、LLM 为 39 个;LogLoom 还能处理比已有技术更多轨迹和更复杂的程序。
The goal of program synthesis is to enable non-expert users to write programs by providing a specification instead of an implementation. To truly realize this goal, the specification must require no expertise and no effort to generate. We consider the problem of synthesizing automation scripts from only the logs that are automatically collected by many systems. Using our approach, users can automate tasks they usually perform manually, without having to know how to program them. Because logs are collected automatically, the synthesis approach needs to scale to large sets of logs. We present a new algorithm to solve this task by incrementally extending an API-calling script with behavior exemplified by a sequence of log events, adding one sequence at a time. By minimizing the program modifications at each step, we preserve user intent and synthesize a program as general as possible. We show that our approach, implemented in a tool LogLoom, scales to synthesis tasks with more traces and more complex programs than existing techniques. LogLoom synthesizes scripts that are identical to reference solutions for 60 out of 72 benchmarks, compared to 14 for an existing symbolic approach and 39 for an LLM.
@article{paperbot12109,
title = {Incremental Program Synthesis from Event Logs},
author = {Jinwoo Kim and Victor Nicolet and Joey Dodds and Loris D'Antoni},
journal = {Proceedings of the ACM on Programming Languages},
volume = {10},
number = {OOPSLA2},
year = {2026},
doi = {10.1145/3839460}
}