論文の概要: Code Translation with Compiler Representations
- arxiv url: http://arxiv.org/abs/2207.03578v2
- Date: Wed, 13 Jul 2022 08:37:30 GMT
- ステータス: 処理完了
- システム内更新日: 2022-07-17 16:16:37.365985
- Title: Code Translation with Compiler Representations
- Title(参考訳): コンパイラ表現によるコード翻訳
- Authors: Marc Szafraniec, Baptiste Roziere, Hugh Leather, Francois Charton,
Patrick Labatut, Gabriel Synnaeve
- Abstract要約: 従来のトランスパイラは構文情報と手作りのルールに依存しており、適用性が制限され、不自然なコードを生成する。
コードへのニューラルマシン翻訳(NMT)アプローチの適用は、自然な翻訳を得られる一連のプログラムをうまく拡張した。
ここでは、C++、Java、Rust、Go言語に関する結果とともに、IR、特にLLVM IRによるコード翻訳を強化することを提案する。
- 参考スコア(独自算出の注目度): 21.702473137941006
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: In this paper, we leverage low-level compiler intermediate representations
(IR) to improve code translation. Traditional transpilers rely on syntactic
information and handcrafted rules, which limits their applicability and
produces unnatural-looking code. Applying neural machine translation (NMT)
approaches to code has successfully broadened the set of programs on which one
can get a natural-looking translation. However, they treat the code as
sequences of text tokens, and still do not differentiate well enough between
similar pieces of code which have different semantics in different languages.
The consequence is low quality translation, reducing the practicality of NMT,
and stressing the need for an approach significantly increasing its accuracy.
Here we propose to augment code translation with IRs, specifically LLVM IR,
with results on the C++, Java, Rust, and Go languages. Our method improves upon
the state of the art for unsupervised code translation, increasing the number
of correct translations by 11% on average, and up to 79% for the Java - Rust
pair. We extend previous test sets for code translation, by adding hundreds of
Go and Rust functions. Additionally, we train models with high performance on
the problem of IR decompilation, generating programming source code from IR,
and study using IRs as intermediary pivot for translation.
- Abstract(参考訳): 本稿では、低レベルコンパイラ中間表現(IR)を利用してコード翻訳を改善する。
従来のトランスパイラは構文情報と手作りのルールに依存しており、適用性が制限され、不自然なコードを生成する。
コードへのニューラルマシン翻訳(NMT)アプローチの適用は、自然な翻訳を得られる一連のプログラムをうまく拡張した。
しかし、彼らはコードをテキストトークンのシーケンスとして扱い、異なる言語で異なる意味を持つ類似のコードと十分に区別できない。
その結果、低品質翻訳が実現され、NMTの実用性が低下し、その精度を大幅に向上させるアプローチの必要性が強調された。
ここでは、C++、Java、Rust、Go言語に関する結果とともに、IR、特にLLVM IRによるコード翻訳を強化することを提案する。
我々の手法は教師なしのコード翻訳技術の現状を改善し、JavaとRustのペアで平均で11%、最大で79%の正しい翻訳数を増やします。
数百のGoとRust関数を追加することで、コード翻訳の以前のテストセットを拡張しました。
さらに、IR復号化問題、IRからのプログラミングソースコードの生成、IRを中間ピボットとして用いた研究等において、高い性能のモデルを訓練する。
関連論文リスト
- CodeRosetta: Pushing the Boundaries of Unsupervised Code Translation for Parallel Programming [15.391781573025787]
我々は,プログラミング言語とHPC拡張間の翻訳に特化して設計されたエンコーダ・デコーダモデルであるCodeRosettaを紹介する。
CodeRosettaはC++から並列C++翻訳タスクで評価される。
以上の結果から,CodeRosettaはC++の最先端のベースラインよりも翻訳に優れていた。
論文 参考訳(メタデータ) (2024-10-27T17:34:07Z) - 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) - 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) - Program Translation via Code Distillation [20.668229308907495]
伝統的な機械翻訳は、教師あり翻訳に並列コーパスに依存している。
最近の教師なしニューラルネットワーク翻訳技術は、データ制限を克服している。
コード蒸留(CoDist)と呼ばれる新しいモデルを提案する。
論文 参考訳(メタデータ) (2023-10-17T04:59:15Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - LeTI: Learning to Generate from Textual Interactions [60.425769582343506]
本稿では,テキストインタラクション(LETI)から学習するLMの可能性を,バイナリラベルによる正当性をチェックするだけでなく,テキストフィードバックを通じて出力中のエラーをピンポイントし,説明する。
私たちの焦点はコード生成タスクであり、そこではモデルが自然言語命令に基づいてコードを生成する。
LETIは、目的のLMを用いて、自然言語命令、LM生成プログラム、テキストフィードバックの結合に基づいて、モデルを反復的に微調整する。
論文 参考訳(メタデータ) (2023-05-17T15:53:31Z) - Boosting Zero-shot Cross-lingual Retrieval by Training on Artificially
Code-Switched Data [26.38449396649045]
問合せや文書が言語によって異なる場合,ゼロショットローダの有効性は低下する。
そこで我々は,人工的なコード切替データに基づいてランキングモデルを訓練することを提案する。
論文 参考訳(メタデータ) (2023-05-09T09:32:19Z) - Leveraging Automated Unit Tests for Unsupervised Code Translation [34.84910520660154]
本稿では,無効翻訳をフィルタリングする自動単体テストシステムを提案する。
このフィルタデータセットを用いて教師なしモデルの微調整を行うことで,翻訳のノイズを著しく低減できることがわかった。
特に、Java $to$ Python と Python $to$ C++ は、それぞれ 16% と 24% よりも優れています。
論文 参考訳(メタデータ) (2021-10-13T15:08:43Z) - Pre-training Multilingual Neural Machine Translation by Leveraging
Alignment Information [72.2412707779571]
mRASPは、汎用多言語ニューラルマシン翻訳モデルを事前訓練するためのアプローチである。
我々は,低,中,豊かな資源を含む多種多様な環境における42の翻訳方向の実験を行い,エキゾチックな言語対への変換を行った。
論文 参考訳(メタデータ) (2020-10-07T03:57:54Z) - Contrastive Code Representation Learning [95.86686147053958]
一般的な再構成に基づくBERTモデルは,ソースコードの編集に敏感であることを示す。
コントラコード(ContraCode)は、コード機能を学ぶのにフォームではなく、コントラスト的な事前学習タスクである。
論文 参考訳(メタデータ) (2020-07-09T17:59:06Z) - Unsupervised Translation of Programming Languages [19.56070393390029]
ソース・トゥ・ソース(source-to-source)またはトランスコンパイラ(transcompiler)は、ソースコードをハイレベルなプログラミング言語から別のプログラミング言語に変換するシステムである。
私たちは、オープンソースのGitHubプロジェクトからソースコードでモデルをトレーニングし、C++、Java、Python間の関数を高い精度で翻訳できることを示しています。
論文 参考訳(メタデータ) (2020-06-05T15:28:01Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。