要約
プログラミングコースに登録されている学生の数が多いため、導入プログラミングの割り当て(IPA)に焦点を当てた自動プログラム修理手法が増えています。
通常、このような手法では、プログラムクラスタリングを使用して、以前の正しい学生の実装を活用して、新しい誤った提出を修復します。
これらの修理手法はクラスタリング方法を使用します。これは、プログラムを修復するために利用可能なすべての正しい提出物を分析することは実行不可能です。
ただし、従来のクラスタリング方法は、抽象的な構文ツリー(AST)、構文、制御フロー、データフローなどの機能に基づいたプログラム表現に依存しています。
このペーパーでは、動的に生成されたプログラム不変剤を使用して意味的に同等のIPAをクラスター化するプログラムクラスタリングの新しいアプローチであるInvaastClusterを提案します。
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.
arxiv情報
著者 | Pedro Orvalho,Mikoláš Janota,Vasco Manquinho |
発行日 | 2025-04-30 15:39:53+00:00 |
arxivサイト | arxiv_id(pdf) |
提供元, 利用サービス
arxiv.jp, Google