シグネチャ情報と入出力情報を用いたJava メソッドの自動プログラミング手法
修士論文, 大阪大学
概要: ソースコードを自動的に生成する,自動プログラミングと呼ばれる技術は古くから研究されている.自動プログラミングとは,断片的な情報からプログラムを自動で生成する技術である.自動プログラミングにおいて課題となるのは,開発者の意図を断片的な情報としてどのように表現するか,である.既存研究として,入出力例を与える手法が提案されている.ある入力と,それを与えたときに期待される出力とのペアを1 つの入出力例とし,その入出力例を満たすようなプログラムを生成する手法である.また,自然言語を入力として与える手法も提案されている.プログラムを書くのではなく,目的のプログラムの振る舞いを自然言語で記述する.しかし既存手法には,用途が限定的である,開発者の意図の表現があいまいすぎる,などの課題が多く残っている.本研究では,生成の対象をJava メソッドに限定し,Java メソッドの仕様からソースコードを自動生成することを試みる.仕様は,シグネチャ情報(引数の型と返値の型,メソッド名)および入出力情報(引数の値と返値の組の集合)である.提案手法では,シグネチャ情報を用いて既存のJavaソースコードを探索し,生成するJava メソッドの基となりうるコードを発見する.そして,入出力情報を満たすようにコードを加工する.提案手法を評価するために,4 つのオープンソースプロジェクトに対して本手法を適用した.その結果,18 のJava メソッドを自動生成することに成功した.
@mastersthesis{下仲健斗2018a,
author = {下仲 健斗},
title = {シグネチャ情報と入出力情報を用いたJava メソッドの自動プログラミング手法},
school = {大阪大学},
year = {2018},
month = {feb}
}