On ML-Based Program Translation: Perils and Promises

要約

新しい高度なプログラミング言語の出現により、レガシー ソフトウェアを新しいプログラミング言語に移行することが不可欠になります。
教師なし機械学習ベースのプログラム翻訳は、十分なサイズの信頼性の高い並列ソース コードのコーパスがなくても、このような移行に不可欠な役割を果たす可能性があります。
ただし、これらの翻訳者は、その統計的性質のために完璧には程遠いものです。
この作業では、教師なしプログラム トランスレータと、どこで、なぜ失敗するのかを調査します。
そのような失敗の詳細なエラー分析により、そのようなトランスレーターが失敗するケースは、いくつかの特定のパターンに従うことがわかりました。
この洞察に基づいて、入力が特定のパターンに従う場合は入力コードを前処理し、出力が特定のパターンに従う場合は出力を後処理する、ルールベースのプログラム ミューテーション エンジンを開発します。
私たちのコード処理ツールは、プログラム トランスレータと組み合わせて、ハイブリッド プログラム トランスレータを形成し、最先端技術を大幅に改善できることを示します。
将来的には、前処理と後処理のステップを使用して、プログラミング ドメインの知識を ML ベースの翻訳パイプラインに埋め込むことができる、エンド ツー エンドのプログラム翻訳ツールを想定しています。

要約(オリジナル)

With the advent of new and advanced programming languages, it becomes imperative to migrate legacy software to new programming languages. Unsupervised Machine Learning-based Program Translation could play an essential role in such migration, even without a sufficiently sizeable reliable corpus of parallel source code. However, these translators are far from perfect due to their statistical nature. This work investigates unsupervised program translators and where and why they fail. With in-depth error analysis of such failures, we have identified that the cases where such translators fail follow a few particular patterns. With this insight, we develop a rule-based program mutation engine, which pre-processes the input code if the input follows specific patterns and post-process the output if the output follows certain patterns. We show that our code processing tool, in conjunction with the program translator, can form a hybrid program translator and significantly improve the state-of-the-art. In the future, we envision an end-to-end program translation tool where programming domain knowledge can be embedded into an ML-based translation pipeline using pre- and post-processing steps.

arxiv情報

著者 Aniketh Malyala,Katelyn Zhou,Baishakhi Ray,Saikat Chakraborty
発行日 2023-02-21 16:42:20+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.PL, cs.SE パーマリンク