e4exp / paper_manager_abstract

0 stars 0 forks source link

Unsupervised Translation of Programming Languages #118

Closed e4exp closed 3 years ago

e4exp commented 4 years ago

トランスコンパイラは、ソース・ツー・ソース・トランスレータとも呼ばれ、高レベルのプログラミング言語(C++やPythonなど)のソースコードを別の言語に変換するシステムです。 トランスコンパイラは主に相互運用性のために使用され、時代遅れの言語(COBOL、Python 2など)で書かれたコードベースを最新の言語に移植するために使用されます。 一般的には、ソースコードの抽象構文ツリーに適用される、手作業で作られた書き換えルールに依存します。 残念なことに、結果として得られる翻訳は、しばしば可読性に欠け、ターゲット言語の規則を尊重できず、適切に動作するためには手動での修正が必要となります。 全体的な翻訳プロセスは時間がかかり、ソース言語とターゲット言語の両方の専門知識を必要とするため、コード翻訳プロジェクトは高額になります。 ニューラルモデルは、自然言語翻訳の文脈ではルールベースのものよりもはるかに優れていますが、この領域では並列データが少ないため、トランスコンパイルへの応用は限られています。 本論文では、教師なし機械翻訳における最近のアプローチを活用して、完全教師なしニューラル・トランスコンパイラを訓練することを提案する。 我々は、オープンソースのGitHubプロジェクトのソースコードを用いて我々のモデルを訓練し、C++、Java、Python間の関数を高精度に翻訳できることを示す。 我々の手法は、単一言語のソースコードのみに依存しており、ソース言語やターゲット言語の専門知識を必要とせず、他のプログラミング言語にも容易に一般化できる。 また、852個の並列関数からなるテストセットを構築し、翻訳の正しさをチェックするためのユニットテストとともに公開しています。 我々は、我々のモデルがルールベースの商用ベースラインを大幅に上回ることを示している。

e4exp commented 3 years ago

Unsupervised Translation of Programming Languages

スクリーンショット 2020-12-07 20 02 30

まとめ