楠本研究室

業績一覧

ホーム業績一覧

深層学習を用いたコンパイラレスコンパイルの試み

深層学習を用いたコンパイラレスコンパイルの試み
修士論文, 大阪大学
概要: JavaバイトコードとはJavaのソースコードをコンパイルして得られる中間コードである.Javaバイトコードを得るには,依存ライブラリのクラスパスを通すなどしてソースコード上の曖昧さを全て取り除く必要がある.しかしながら,そのような情報が欠落した不完全なコードを実行したいときには,コンパイラが持つ厳密性が障壁となってしまう.そこでこのような不完全なコードをコンパイルする方法として,深層学習による機械翻訳モデルの活用が候補として挙がる.機械翻訳はプログラミング言語よりも文法的に曖昧な自然言語を翻訳できるため,不完全なソースコードからバイトコードを生成するタスクにも活用できると予想される.しかし,自然言語の翻訳では出力される文章が不完全であっても人間が行間を汲み取って意味を解釈できるのに対し,バイトコードへの変換では少しでも命令が違えば実行エラーが起きてしまう.そのため,翻訳モデルをJavaのコンパイラの代わりとして用いることができるのかは未知数である.そこで本研究では,機械翻訳をコンパイラの代わりとして用いる試みの第一段階として,完全なJavaのソースコードから機械翻訳を用いてバイトコード生成に必要な情報を抽出できるのかを検証する.実験の結果,機械翻訳が生成したバイトコード生成に必要な情報を列挙したテキストと正解となるテキストとの類似度はBLEUスコアで0.755を記録した.また,機械翻訳が生成したバイトコード生成に必要な情報を列挙したテキストを基にバイトコードに変換した結果,18,290件のうち152件が正しく動作した.
@mastersthesis{橋本周2023,
  author = {橋本 周},
  title = {深層学習を用いたコンパイラレスコンパイルの試み},
  school = {大阪大学},
  year = {2023},
  month = {feb}
}