機械翻訳のアイデアをプログラミング言語に導入!教師無しでコードの移植が可能に
3つの要点
✔️ プログラミング言語間の翻訳を自然言語と同じ考えで実現
✔️ プログラミング言語の知識を必要とせずに、多くの言語への拡張が可能
✔️ 教師無しでプログラミング言語間の翻訳を実現
Unsupervised Translation of Programming Languages
written by Marie-Anne Lachaux,Baptiste Roziere,Lowik Chanussot,Guillaume Lample
(Submitted on 5 Jun 2020 (v1), last revised 5 Aug 2020 (this version, v2))
Comments: Published by arXiv.
Subjects: Computation and Language (cs.CL); Programming Languages (cs.PL)
はじめに
コードの移植性を高める事を目的として、昔からトランスコンパイラの開発がされて来ました。これらは高級言語から低水準言語(機械語、アセンブリ言語)にコードを変換することで行われていました。
現代のトランスコンパイラーは、ソースコードから構文木を構築し、ルールベースの手法を適用して変換を行っています。変換ルールを設計するためには、両方の言語に熟達した高度な知識が必要です。さらに、変数の型が静的な言語(java等)と動的な言語(python等)の間での変換には、変数の型を推測する必要があり、それは必ずしも簡単ではありません。
提案手法の基礎にある考えは、コード変換タスクが通常の言語翻訳と酷似していると言う事です。 今回紹介する論文では、GitHubのソースコードを利用して提案モデルTransCoderをトレーニングし、教師なし機械翻訳に最近のアプローチを適用します。
提案手法はシンプルであり、プログラミング言語に関する専門知識を必要とせず、ほとんどのプログラミング言語に簡単に拡張できます。
続きを読むには
(2591文字画像4枚)AI-SCHOLARに
登録いただく必要があります。
この記事に関するカテゴリー