論文の概要: Program Skeletons for Automated Program Translation
- arxiv url: http://arxiv.org/abs/2504.07483v1
- Date: Thu, 10 Apr 2025 06:25:17 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-04-11 12:21:54.007415
- Title: Program Skeletons for Automated Program Translation
- Title(参考訳): プログラム翻訳のためのプログラムスケルトン
- Authors: Bo Wang, Tianyu Li, Ruishi Li, Umang Mathur, Prateek Saxena,
- Abstract要約: 我々は,プログラムスケルトンと呼ばれるフレームワークに基づいて,そのような翻訳を自動化するための新しい,体系的なアプローチを提案する。
プログラムスケルトンは、低レベルの具体的なコードフラグメントを抽象化し、効果的に要約することで、ソースプログラムの高レベルな構造を保持します。
最も重要なことは、個々の断片が正しく翻訳され、機械的に翻訳された骨格と一緒に取られた場合、最終的な翻訳プログラムは全体として正しいとみなすことができることである。
- 参考スコア(独自算出の注目度): 12.93051613758259
- License:
- Abstract: Translating software between programming languages is a challenging task, for which automated techniques have been elusive and hard to scale up to larger programs. A key difficulty in cross-language translation is that one has to re-express the intended behavior of the source program into idiomatic constructs of a different target language. This task needs abstracting away from the source language-specific details, while keeping the overall functionality the same. In this work, we propose a novel and systematic approach for making such translation amenable to automation based on a framework we call program skeletons. A program skeleton retains the high-level structure of the source program by abstracting away and effectively summarizing lower-level concrete code fragments, which can be mechanically translated to the target programming language. A skeleton, by design, permits many different ways of filling in the concrete implementation for fragments, which can work in conjunction with existing data-driven code synthesizers. Most importantly, skeletons can conceptually enable sound decomposition, i.e., if each individual fragment is correctly translated, taken together with the mechanically translated skeleton, the final translated program is deemed to be correct as a whole. We present a prototype system called Skel embodying the idea of skeleton-based translation from Python to JavaScript. Our results show promising scalability compared to prior works. For 9 real-world Python programs, some with more than about 1k lines of code, 95% of their code fragments can be automatically translated, while about 5% require manual effort. All the final translations are correct with respect to whole-program test suites.
- Abstract(参考訳): プログラム言語間でソフトウェアを翻訳することは難しい課題であり、自動化された技術は解明され、より大きなプログラムにスケールアップするのは困難である。
言語間の翻訳において重要な困難は、ソースプログラムの意図した振る舞いを、異なる対象言語の慣用的な構成に再表現する必要があることである。
このタスクは、全体的な機能を同じに保ちながら、ソース言語固有の詳細から抽象化する必要がある。
本研究では,プログラムスケルトンと呼ばれるフレームワークに基づいて,このような翻訳を自動化しやすくするための,新しい,体系的なアプローチを提案する。
プログラムスケルトンは、ターゲットプログラミング言語に機械的に翻訳可能な低レベルの具体的なコード断片を抽象化し、効果的に要約することにより、ソースプログラムの高レベル構造を保持する。
スケルトンは、設計上、既存のデータ駆動コードシンセサイザーと連動して動作するフラグメントの具体的な実装を、さまざまな方法で埋めることができる。
最も重要なことは、個々の断片が正しく翻訳され、機械的に翻訳された骨格と一緒に取られた場合、最終的な翻訳プログラムは全体として正しいとみなすことができることである。
本稿では,PythonからJavaScriptへのスケルトン翻訳のアイデアを具現化したSkelというプロトタイプシステムを提案する。
以上の結果から,従来の作業に比べて拡張性に有望な結果が得られた。
9つの実世界のPythonプログラムでは、約1k行以上のコードがある場合、95%のコードフラグメントが自動的に変換され、約5%が手作業を必要とする。
最終翻訳はすべて、プログラム全体のテストスイートに関して正しい。
関連論文リスト
- Learning a Hierarchical Planner from Humans in Multiple Generations [21.045112705349222]
本稿では,プログラム型学習と階層型プランナを組み合わせたライブラリ学習システムである自然言語プログラミングについて述べる。
ユーザは、難しいが不可能ではない目標を特定することによって、カリキュラム構築を通じてシステムを教える。
このシステムは、言語ヒントを用いて、その確率分布を導く階層的計画を通じて目標を達成する。
論文 参考訳(メタデータ) (2023-10-17T22:28:13Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - Decomposed Prompting for Machine Translation Between Related Languages
using Large Language Models [55.35106713257871]
DecoMTは、単語チャンク翻訳のシーケンスに翻訳プロセスを分解する、数発のプロンプトの新しいアプローチである。
DecoMTはBLOOMモデルよりも優れていることを示す。
論文 参考訳(メタデータ) (2023-05-22T14:52:47Z) - Hierarchical Neural Program Synthesis [19.94176152035497]
プログラム合成は、与えられたタスク仕様を満たす人間可読プログラムを自動構築することを目的としている。
プログラムを階層的に構成することでプログラムを合成するスケーラブルなプログラム合成フレームワークを提案する。
入力/出力ペアを持つ文字列変換領域において,提案するフレームワークを広範囲に評価する。
論文 参考訳(メタデータ) (2023-03-09T18:20:07Z) - Syntax and Domain Aware Model for Unsupervised Program Translation [23.217899398362206]
プログラム翻訳のための構文とドメイン認識モデルであるSDA-Transを提案する。
構文構造とドメイン知識を活用して、言語間転送能力を向上する。
Python、Java、C++間の関数変換タスクの実験結果は、SDA-Transが多くの大規模事前学習モデルより優れていることを示している。
論文 参考訳(メタデータ) (2023-02-08T06:54:55Z) - Natural Language to Code Translation with Execution [82.52142893010563]
実行結果-プログラム選択のための最小ベイズリスク復号化。
そこで本研究では,自然言語からコードへのタスクにおいて,事前訓練されたコードモデルの性能を向上することを示す。
論文 参考訳(メタデータ) (2022-04-25T06:06:08Z) - Show Your Work: Scratchpads for Intermediate Computation with Language
Models [41.60150946985931]
大規模な事前訓練された言語モデルは、"1回のパスで"実行できるタスクで驚くほどうまく機能します。
これらのモデルが「ステップ・バイ・ステップ」の実行を依頼された場合、複雑なマルチステップ計算を行うことができることがわかった。
特に、中間計算ステップを「スクラッチパッド」に出力するように指示することで、トランスフォーマーにマルチステップ計算をするよう訓練する。
論文 参考訳(メタデータ) (2021-11-30T21:32:46Z) - Leveraging Language to Learn Program Abstractions and Search Heuristics [66.28391181268645]
LAPS(Language for Abstraction and Program Search)は、自然言語アノテーションを用いて、ライブラリとニューラルネットワークによる合成のための検索モデルの共同学習をガイドする手法である。
最先端のライブラリ学習システム(DreamCoder)に統合されると、LAPSは高品質なライブラリを生成し、検索効率と一般化を改善する。
論文 参考訳(メタデータ) (2021-06-18T15:08:47Z) - Representing Partial Programs with Blended Abstract Semantics [62.20775388513027]
プログラム合成エンジンにおける部分的なプログラム表現手法について紹介する。
モジュラーニューラルネットワークとして実装された近似実行モデルを学ぶ。
これらのハイブリッドニューロシンボリック表現は、実行誘導型シンセサイザーがより強力な言語構成を使うことができることを示す。
論文 参考訳(メタデータ) (2020-12-23T20:40:18Z) - Cross-lingual Machine Reading Comprehension with Language Branch
Knowledge Distillation [105.41167108465085]
言語間機械読解(CLMRC)は、ローソース言語に大規模なデータセットがないため、依然として難しい問題である。
本稿では,Language Branch Machine Reading (LBMRC) という新しい拡張手法を提案する。
LBMRCは、個々の言語に精通したMultiple Machine Read comprehension (MRC)モデルを訓練する。
複数の言語分岐モデルから全ての対象言語に対する単一モデルへのアマルガメート知識の多言語蒸留アプローチを考案する。
論文 参考訳(メタデータ) (2020-10-27T13:12:17Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。