## Memo ## Abstract プログラムの自動合成は、ソフトウェア工学における長年の夢である。最近、[[GitHub Copilot]]と呼ばれる[[深層学習|Deep Learning]](DL)ベースの有望なソリューションが、Open AIとMicrosoftによって工業製品として提案されています。Copilotソリューションの正しさを評価し、その問題点を報告する研究もあるが、開発者がCopilotを効果的に利用する方法を理解するためには、より多くの実証的な評価が必要である。本論文では、(1)基本的なアルゴリズム問題に対する正しく効率的な解の生成(および再現)、(2)一連のプログラミング課題に対するCopilotの提案する解と人間のプログラマーの解との比較、という2つの異なるプログラミング課題におけるCopilotの能力を研究している。前者では、ソートや基本的なデータ構造の実装など、コンピュータサイエンスの基本的な問題の解決におけるCopilotの性能と機能を評価する。後者では、人間が解答を提供したプログラミング問題のデータセットを使用した。その結果、Copilotはほとんどすべての基本的なアルゴリズム問題に対する解を提供することができるが、一部の解はバグが多く、再現不可能であることが分かった。また、Copilotは複数の手法を組み合わせて解を生成することに難がある。Copilotと人間を比較した結果、人間の解の正解率はCopilotの正解率よりも高く、Copilotが生成したバグのある解は修復に要する労力が少なくて済むことが分かりました。Copilotは、特に高度なプログラミング作業では開発者のアシスタントとして限界がある一方で、本研究や過去の研究で強調されたように、基本的なプログラミング作業では予備的な解を生成することができます。 [[2022__arXiv__GitHub Copilot AI pair programmer - Asset or Liability?__translations]]