MACER:一个加速编译错误修复的模块化框架
MACER: A Modular Framework for Accelerated Compilation Error Repair
摘要:
自动编译错误修复,即对无法编译的错误程序提出修复建议的问题,近年来引起了人们极大的兴趣。除了作为一个通用的方便工具,自动代码修复对于那些发现编译器错误消息晦涩难懂且毫无帮助的新手程序员来说具有重要的教学应用。现有的方法在很大程度上使用重型生成学习技术的黑盒应用解决了这个问题,例如序列到序列预测(TRACER)或强化学习(RLAssist)。虽然方便,但这种学习技术的黑盒应用使得现有方法在训练时间方面庞大,并且在针对特定错误类型方面效率低下。我们提出了MACER,一种新的技术,用于加速错误修复的基础上修复过程中修复识别和修复应用程序的模块化隔离。MACER使用强大而廉价的判别学习技术,如多标签分类器和排名器,首先确定所需的修复类型,然后应用建议的修复。实验表明,MACER采用的细粒度方法不仅提供了出色的纠错能力,而且还提供了更快的训练和预测速度。在从实际学生提交的4K错误程序的基准数据集上,MACER在建议修复与学生所需修复完全匹配的常见错误方面比现有方法高出20%。MACER在所有错误类型上也具有竞争力或优于现有方法-无论是流行的还是罕见的。MACER的训练时间加速比TRACER快2倍,比RLAssist快800倍,测试时间加速比两者都快2- 4倍。
英文摘要:
Automated compilation error repair, the problem of suggesting fixes to buggy programs that fail to compile, has generated significant interest in recent years. Apart from being a tool of general convenience, automated code repair has significant pedagogical applications for novice programmers who find compiler error messages cryptic and unhelpful. Existing approaches largely solve this problem using a blackbox-application of a heavy-duty generative learning technique, such as sequence-to-sequence prediction (TRACER) or reinforcement learning (RLAssist). Although convenient, such black-box application of learning techniques makes existing approaches bulky in terms of training time, as well as inefficient at targeting specific error types. We present MACER, a novel technique for accelerated error repair based on a modular segregation of the repair process into repair identification and repair application. MACER uses powerful yet inexpensive discriminative learning techniques such as multi-label classifiers and rankers to first identify the type of repair required and then apply the suggested repair. Experiments indicate that the fine-grained approach adopted by MACER offers not only superior error correction, but also much faster training and prediction. On a benchmark dataset of 4K buggy programs collected from actual student submissions, MACER outperforms existing methods by 20% at suggesting fixes for popular errors that exactly match the fix desired by the student. MACER is also competitive or better than existing methods at all error types -- whether popular or rare. MACER offers a training time speedup of 2x over TRACER and 800x over RLAssist, and a test time speedup of 2-4x over both.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。