論文の概要: Unsupervised Translation of Programming Languages
- arxiv url: http://arxiv.org/abs/2006.03511v3
- Date: Tue, 22 Sep 2020 08:58:24 GMT
- ステータス: 処理完了
- システム内更新日: 2022-11-25 04:10:41.157671
- Title: Unsupervised Translation of Programming Languages
- Title(参考訳): プログラミング言語の教師なし翻訳
- Authors: Marie-Anne Lachaux, Baptiste Roziere, Lowik Chanussot, Guillaume
Lample
- Abstract要約: ソース・トゥ・ソース(source-to-source)またはトランスコンパイラ(transcompiler)は、ソースコードをハイレベルなプログラミング言語から別のプログラミング言語に変換するシステムである。
私たちは、オープンソースのGitHubプロジェクトからソースコードでモデルをトレーニングし、C++、Java、Python間の関数を高い精度で翻訳できることを示しています。
- 参考スコア(独自算出の注目度): 19.56070393390029
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: A transcompiler, also known as source-to-source translator, is a system that
converts source code from a high-level programming language (such as C++ or
Python) to another. Transcompilers are primarily used for interoperability, and
to port codebases written in an obsolete or deprecated language (e.g. COBOL,
Python 2) to a modern one. They typically rely on handcrafted rewrite rules,
applied to the source code abstract syntax tree. Unfortunately, the resulting
translations often lack readability, fail to respect the target language
conventions, and require manual modifications in order to work properly. The
overall translation process is timeconsuming and requires expertise in both the
source and target languages, making code-translation projects expensive.
Although neural models significantly outperform their rule-based counterparts
in the context of natural language translation, their applications to
transcompilation have been limited due to the scarcity of parallel data in this
domain. In this paper, we propose to leverage recent approaches in unsupervised
machine translation to train a fully unsupervised neural transcompiler. We
train our model on source code from open source GitHub projects, and show that
it can translate functions between C++, Java, and Python with high accuracy.
Our method relies exclusively on monolingual source code, requires no expertise
in the source or target languages, and can easily be generalized to other
programming languages. We also build and release a test set composed of 852
parallel functions, along with unit tests to check the correctness of
translations. We show that our model outperforms rule-based commercial
baselines by a significant margin.
- Abstract(参考訳): トランスコンパイラ(transcompiler)は、ソースコードを高レベルのプログラミング言語(c++やpythonなど)から別の言語に変換するシステムである。
トランスコンパイラは、主に相互運用性のために使用され、古いまたは非推奨の言語(例えば、COBOL、Python 2)で書かれたコードベースをモダンな言語に移植する。
通常は手書きの書き直しルールに依存し、ソースコードの抽象構文木に適用される。
残念ながら、結果の翻訳は可読性に欠けることが多く、ターゲット言語規約を尊重せず、適切に動作させるために手動で修正する必要がある。
全体的な翻訳プロセスは時間がかかり、ソース言語とターゲット言語の両方で専門知識が必要である。
ニューラルモデルは自然言語翻訳の文脈ではルールベースよりも大幅に優れているが、この領域では並列データが不足しているため、トランスコンパイルへの応用は限られている。
本稿では,教師なし機械翻訳における最近の手法を活用し,教師なし神経トランスコンパイラを訓練する。
私たちは、オープンソースgithubプロジェクトからソースコードをトレーニングし、c++、java、pythonの機能を高い精度で翻訳できることを示しています。
本手法は単言語ソースコードにのみ依存し,ソース言語や対象言語への専門知識を必要とせず,他のプログラミング言語に容易に一般化できる。
また、852の並列関数からなるテストセットと、翻訳の正確性をチェックするユニットテストを構築し、リリースする。
当社のモデルはルールベースの商用ベースラインをかなり上回っています。
関連論文リスト
- CRUXEval-X: A Benchmark for Multilingual Code Reasoning, Understanding and Execution [50.7413285637879]
CRUXEVAL-Xコード推論ベンチマークには19のプログラミング言語が含まれている。
各言語に対して少なくとも600人の被験者で構成され、合計19Kのコンテンツ一貫性テストがある。
Pythonでのみトレーニングされたモデルでさえ、他の言語で34.4%のPass@1を達成することができる。
論文 参考訳(メタデータ) (2024-08-23T11:43:00Z) - Exploring and Unleashing the Power of Large Language Models in Automated Code Translation [40.25727029618665]
本稿では,自動翻訳タスクのための多種多様なLLMと学習ベーストランスパイラについて検討する。
UniTrans は、様々な LLM に適用可能な統一コード翻訳フレームワークである。
最近の3つのLLMはUniTransでテストされており、いずれも大幅に改善されている。
論文 参考訳(メタデータ) (2024-04-23T00:49:46Z) - IRCoder: Intermediate Representations Make Language Models Robust Multilingual Code Generators [49.903001442804594]
本研究では、コンパイラ中間表現(IR)を活用して、Code-LMの多言語機能を改善する可能性について検討する。
まず,約400万のソースコードファイルからなる並列データセットであるSLTransをコンパイルする。
次に、SLTransにおける因果言語モデリングトレーニングを継続して実施し、Code-LMはIR言語を学習せざるを得なかった。
IRCoderと呼ばれる結果のモデルは、さまざまなコード生成タスクやメトリクスに対して、サイズと一貫性のあるゲインを表示します。
論文 参考訳(メタデータ) (2024-03-06T17:52:08Z) - Data Augmentation for Code Translation with Comparable Corpora and Multiple References [21.754147577489764]
我々は、自然言語ドキュメントから生成されたプログラムを含む、比較可能なコーパスの複数のタイプを構築し、分析する。
単一の参照変換に対する過度な適合を低減するため、利用可能な並列データに対する追加の翻訳参照を自動生成する。
実験の結果,Java,Python,C++間の変換において,平均7.5%の計算精度でコードT5が大幅に改善された。
論文 参考訳(メタデータ) (2023-11-01T06:01:22Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - Syntax and Domain Aware Model for Unsupervised Program Translation [23.217899398362206]
プログラム翻訳のための構文とドメイン認識モデルであるSDA-Transを提案する。
構文構造とドメイン知識を活用して、言語間転送能力を向上する。
Python、Java、C++間の関数変換タスクの実験結果は、SDA-Transが多くの大規模事前学習モデルより優れていることを示している。
論文 参考訳(メタデータ) (2023-02-08T06:54:55Z) - Code Translation with Compiler Representations [21.702473137941006]
従来のトランスパイラは構文情報と手作りのルールに依存しており、適用性が制限され、不自然なコードを生成する。
コードへのニューラルマシン翻訳(NMT)アプローチの適用は、自然な翻訳を得られる一連のプログラムをうまく拡張した。
ここでは、C++、Java、Rust、Go言語に関する結果とともに、IR、特にLLVM IRによるコード翻訳を強化することを提案する。
論文 参考訳(メタデータ) (2022-06-30T14:21:57Z) - Summarize and Generate to Back-translate: Unsupervised Translation of
Programming Languages [86.08359401867577]
バックトランスレーションは、並列データがほとんど、あるいは全く利用できない場合のニューラルマシン翻訳の有効性で広く知られている。
コード要約と生成による逆翻訳を提案する。
提案手法は最先端の手法と競合することを示す。
論文 参考訳(メタデータ) (2022-05-23T08:20:41Z) - Leveraging Automated Unit Tests for Unsupervised Code Translation [34.84910520660154]
本稿では,無効翻訳をフィルタリングする自動単体テストシステムを提案する。
このフィルタデータセットを用いて教師なしモデルの微調整を行うことで,翻訳のノイズを著しく低減できることがわかった。
特に、Java $to$ Python と Python $to$ C++ は、それぞれ 16% と 24% よりも優れています。
論文 参考訳(メタデータ) (2021-10-13T15:08:43Z) - Using Document Similarity Methods to create Parallel Datasets for Code
Translation [60.36392618065203]
あるプログラミング言語から別のプログラミング言語へのソースコードの翻訳は、重要で時間を要する作業です。
本稿では、文書類似性手法を用いて、ノイズの多い並列データセットを作成することを提案する。
これらのモデルは、妥当なレベルのノイズに対して、地上の真実に基づいて訓練されたモデルと相容れない性能を示す。
論文 参考訳(メタデータ) (2021-10-11T17:07:58Z) - AVATAR: A Parallel Corpus for Java-Python Program Translation [77.86173793901139]
プログラム翻訳とは、ある言語から別の言語へソースコードを移行することを指す。
AVATARは9,515のプログラミング問題とそのソリューションをJavaとPythonという2つの人気のある言語で記述したものです。
論文 参考訳(メタデータ) (2021-08-26T05:44:20Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。