论文标题
InvaastCluster:应用基于不变的程序群集以介绍性编程作业
InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignments
论文作者
论文摘要
由于参加了编程课程的学生数量大量,因此越来越多的自动化计划维修技术集中在入门编程任务(IPA)上。通常,此类技术使用程序聚类来利用以前正确的学生实现来修复新的不正确提交。这些维修技术使用聚类方法,因为分析了所有可用的正确提交以维修程序的方法是不可行的。但是,常规的聚类方法依赖于基于诸如抽象语法树(ASTS),语法,控制流和数据流等特征的程序表示。 本文提出了InvaastCluster,这是一种用于程序群集的新方法,该方法使用动态生成的程序不变性来将语义上等效的IPA群集。 InvaastCluster的程序表示形式通过其不变性及其结构通过其匿名抽象语法树(Aasts)结合使用。不变式表示在程序执行过程中必须保持正确的条件,而AAST则是没有可变和功能名称的AST,仅保留其类型。我们的实验表明,在聚集一组正确的IPA时,提出的程序表示法优于基于语法的表示。此外,我们将InvaastCluster集成到基于最新的聚类的程序维修工具中。我们的结果表明,InvaastCluster通过较短的时间来维修大约13%的学生计划,可以通过基于聚类的维修工具使用时的当前最新设备。
Due to the vast number of students enrolled in programming courses, there has been an increasing number of automated program repair techniques focused on introductory programming assignments (IPAs). Typically, such techniques use program clustering to take advantage of previous correct student implementations to repair a new incorrect submission. These repair techniques use clustering methods since analyzing all available correct submissions to repair a program is not feasible. However, conventional clustering methods rely on program representations based on features such as abstract syntax trees (ASTs), syntax, control flow, and data flow. This paper proposes InvAASTCluster, a novel approach for program clustering that uses dynamically generated program invariants to cluster semantically equivalent IPAs. InvAASTCluster's program representation uses a combination of the program's semantics, through its invariants, and its structure through its anonymized abstract syntax tree (AASTs). Invariants denote conditions that must remain true during program execution, while AASTs are ASTs devoid of variable and function names, retaining only their types. Our experiments show that the proposed program representation outperforms syntax-based representations when clustering a set of correct IPAs. Furthermore, we integrate InvAASTCluster into a state-of-the-art clustering-based program repair tool. Our results show that InvAASTCluster advances the current state-of-the-art when used by clustering-based repair tools by repairing around 13% more students' programs, in a shorter amount of time.