機械学習モデルは、型チェックが成立するTypeScriptの型を生成するのか?
Author
Venue
2023年欧州オブジェクト指向プログラミング会議(ECOOP)
Abstract
型移行とは、型指定されていないコードに型を追加し、コンパイル時に保証を得るためのプロセスである。TypeScriptやその他の漸進的型システムは、プログラマーが不正確な型から始め、徐々にそれを強化できるようにすることで、型移行を容易にしている。しかし、型の追加は手作業を要し、大規模な産業用コードベースにおけるいくつかの移行事例では、数年を要したと報告されている。研究コミュニティでは、機械学習を用いてTypeScriptの型移行を自動化することに関心が集まっている。 既存の機械学習モデルは、個々のTypeScript型注釈の予測において高い精度を報告している。しかし本論文では、その精度が誤解を招く恐れがあるとし、別の問い、すなわち「自動型移行ツールはTypeScript型チェッカーを通過するコードを生成できるか」に取り組むべきであると論じる。我々は、任意の型予測モデルと組み合わせて使用できるTypeScript型移行ツール「TypeWeaver」を提案する。 我々は、文献にある3つのモデルを用いてTypeWeaverを評価した。それらは、再帰型ニューラルネットワークであるDeepTyper、グラフニューラルネットワークであるLambdaNet、そして「fill-in-the-middle」タスクをサポートする汎用マルチ言語トランスフォーマーであるInCoderである。本ツールは、型予測モデルを使用するために必要ないくつかのステップを自動化する。(1) プロジェクトの依存関係に対する型のインポート、(2) JavaScriptモジュールのTypeScript表記への変換、 (3) 必要に応じて、予測された型注釈をプログラムに挿入してTypeScriptを生成すること、および (4) 必要に応じて、型として不適切な予測を排除すること。TypeWeaverは、これまで型付けされたことのないパッケージを含む513のJavaScriptパッケージからなるデータセットを用いて評価した。最良の型予測モデルを使用した場合、パッケージの型チェックに成功したのはわずか21%であったが、より有望なことに、ファイルの69%では型チェックが成功した。
