論文の概要: Code Translation with Compiler Representations
- arxiv url: http://arxiv.org/abs/2207.03578v5
- Date: Mon, 24 Apr 2023 10:12:18 GMT
- ステータス: 処理完了
- システム内更新日: 2023-04-26 00:05:26.885357
- 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 with greedy decoding. 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によるコード翻訳を強化することを提案する。
我々の手法は教師なしのコード翻訳技術の現状を改善し、平均して11%の正しい翻訳数が増加し、Java -> Rust ペアのgreedyデコーディングが 79% になった。
数百のGoとRust関数を追加することで、コード翻訳の以前のテストセットを拡張しました。
さらに、IR復号化問題、IRからのプログラミングソースコードの生成、IRを中間ピボットとして用いた研究等において、高い性能のモデルを訓練する。
関連論文リスト
- 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 [23.764843421101176]
我々は、自然言語ドキュメントから生成されたプログラムを含む、比較可能なコーパスの複数のタイプを構築し、分析する。
単一の参照変換に対する過度な適合を低減するため、利用可能な並列データに対する追加の翻訳参照を自動生成する。
実験の結果,Java,Python,C++間の変換において,平均7.5%の計算精度でコードT5が大幅に改善された。
論文 参考訳(メタデータ) (2023-11-01T06:01:22Z) - 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) - Mitigating Hallucinations and Off-target Machine Translation with
Source-Contrastive and Language-Contrastive Decoding [53.84948040596055]
修正された復号化目標を用いて、障害ケースを緩和する2つの関連手法を提案する。
大規模多言語モデルM2M-100 (418M) とSMaLL-100の実験は、これらの手法が幻覚やターゲット外の翻訳を抑制することを示した。
論文 参考訳(メタデータ) (2023-09-13T17:15:27Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。