論文の概要: Software refactoring and rewriting: from the perspective of code
transformations
- arxiv url: http://arxiv.org/abs/2308.06615v1
- Date: Sat, 12 Aug 2023 17:11:54 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-23 14:29:26.171172
- Title: Software refactoring and rewriting: from the perspective of code
transformations
- Title(参考訳): ソフトウェアのリファクタリングと書き直し: コード変換の観点から
- Authors: Yu Liu (Institute of High Energy Physics, Chinese Academy of Sciences)
- Abstract要約: マイクロパス/ナノパスコンパイラのアイデアを借りることができます。
ソフトウェアのプロシージャをコードを構成するものとして扱うことで、その正確さを手作業で分析できるように、プロセスの表現を十分に短くすることが可能になる。
- 参考スコア(独自算出の注目度): 0.0
- License: http://creativecommons.org/licenses/by-sa/4.0/
- Abstract: To refactor already working code while keeping reliability, compatibility and
perhaps security, we can borrow ideas from micropass/nanopass compilers. By
treating the procedure of software refactoring as composing code
transformations, and compressing repetitive transformations with automation
tools, we can often obtain representations of refactoring processes short
enough that their correctness can be analysed manually. Unlike in compilers, in
refactoring we usually only need to consider the codebase in question, so
regular text processing can be extensively used, fully exploiting patterns only
present in the codebase. Aside from the direct application of code
transformations from compilers, many other kinds of equivalence properties may
also be exploited. In this paper, two refactoring projects are given as the
main examples, where 10-100 times simplification has been achieved with the
application of a few kinds of useful transformations.
- Abstract(参考訳): 信頼性、互換性、おそらくセキュリティを維持しながら、すでに動作するコードをリファクタリングするには、micropass/nanopassコンパイラからアイデアを借りることができます。
ソフトウェアリファクタリングの手順をコード変換の構成として扱い、自動化ツールで繰り返し変換を圧縮することで、リファクタリングプロセスの表現を手作業で分析できるほど短くすることが可能になる。
コンパイラとは異なり、リファクタリングでは、通常、問題のコードベースのみを考慮する必要があるため、通常のテキスト処理を広範囲に使用することができ、コードベースにのみ存在するパターンを十分に活用することができる。
コンパイラからのコード変換の直接的な適用とは別に、他の多くの同値性も活用できる。
本稿では,2つのリファクタリングプロジェクトを主な例として,数種類の有用な変換を適用することで,10~100倍の単純化を実現した。
関連論文リスト
- ReGAL: Refactoring Programs to Discover Generalizable Abstractions [59.05769810380928]
Generalizable Abstraction Learning (ReGAL)は、再利用可能な関数のライブラリをコード化して学習する手法である。
ReGALによって発見された共有関数ライブラリは、プログラムが様々な領域で容易に予測できることを示している。
CodeLlama-13Bでは、ReGALはLOGOで11.5%、日付理解で26.1%、TextCraftで8.1%という絶対精度が向上し、3つのドメインのうち2つでGPT-3.5を上回った。
論文 参考訳(メタデータ) (2024-01-29T18:45:30Z) - Empirical Evaluation of a Live Environment for Extract Method
Refactoring [0.0]
我々は,抽出手法を視覚的に識別し,推奨し,適用するLive Refactoring Environmentを開発した。
私たちの結果は、追加の助けなしに手作業で行うコードとは大きく異なり、改善されました。
論文 参考訳(メタデータ) (2023-07-20T16:36:02Z) - RefBERT: A Two-Stage Pre-trained Framework for Automatic Rename
Refactoring [57.8069006460087]
本研究では,他のリネーム活動よりも難易度の高い変数名の自動改名について検討する。
変数名に対する名前変更のための2段階事前訓練フレームワークであるRefBERTを提案する。
RefBERTの変数名は既存の手法よりも正確で有意義であることを示す。
論文 参考訳(メタデータ) (2023-05-28T12:29:39Z) - Do code refactorings influence the merge effort? [80.1936417993664]
複数のコントリビュータがソースコードを並行して変更して,新機能の実装やバグの修正,既存のコードの変更などを行っている。
これらの同時変更は、ソースコードの同じバージョンにマージする必要がある。
研究によると、すべてのマージの試みの10~20%が衝突を起こしており、これはプロセスを完了するために手動開発者の介入を必要とする。
論文 参考訳(メタデータ) (2023-05-10T13:24:59Z) - Planning with Large Language Models for Code Generation [100.07232672883897]
Planning-Guided Transformer Decoding (PG-TD) は、計画アルゴリズムを用いてルックアヘッド検索を行い、トランスフォーマーを誘導してより良いプログラムを生成する。
我々は、公開コーディングチャレンジベンチマークのバックボーンとして、いくつかの大きな言語モデルを用いて、我々のフレームワークを実証的に評価する。
論文 参考訳(メタデータ) (2023-03-09T18:59:47Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z) - Contrastive Learning for Source Code with Structural and Functional
Properties [66.10710134948478]
本稿では,ソースコードの特徴に基づいて事前学習に焦点を当てた,新たな自己教師型モデルBOOSTを提案する。
私たちは、機能的に等価なコードを生成する自動化された構造誘導型コード変換アルゴリズムを採用しています。
私たちは、対照的な学習目標を通じて、機能的に等価なコードをより近く、異なるコードに近づける方法で、モデルをトレーニングします。
論文 参考訳(メタデータ) (2021-10-08T02:56:43Z) - Improving type information inferred by decompilers with supervised
machine learning [0.0]
ソフトウェアリバースエンジニアリングでは、逆コンパイルはバイナリファイルからソースコードを回復するプロセスである。
関数によって返される高レベルな型を推測できる異なる分類モデルを構築する。
私たちのシステムは、79.1%のF1測定で関数戻り型を予測できますが、最良の逆コンパイラは30%のF1測定を得ます。
論文 参考訳(メタデータ) (2021-01-19T11:45:46Z) - How We Refactor and How We Document it? On the Use of Supervised Machine
Learning Algorithms to Classify Refactoring Documentation [25.626914797750487]
リファクタリングは、外部の振る舞いを変えることなく、システムの設計を改善する技術である。
この研究はコミットを、従来のBugFixやFunctionalのカテゴリとともに、内部QA、外部QA、Code Smell Resolutionの3つのカテゴリに分類する。
分類結果をよりよく理解するために、私たちはコミットメッセージを分析して、開発者が定期的に臭いを説明するために使用するパターンを抽出しました。
論文 参考訳(メタデータ) (2020-10-26T20:33:17Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。