論文の概要: Semantic Analysis of Macro Usage for Portability
- arxiv url: http://arxiv.org/abs/2401.10422v1
- Date: Thu, 18 Jan 2024 23:30:02 GMT
- ステータス: 処理完了
- システム内更新日: 2024-01-22 17:21:05.294047
- Title: Semantic Analysis of Macro Usage for Portability
- Title(参考訳): ポータビリティのためのマクロ使用のセマンティック分析
- Authors: Brent Pappas and Paul Gazzillo
- Abstract要約: マクロ利用の可搬性を分析するための,最初の包括的フレームワークを紹介する。
マキを86,199のマクロ定義を含む21のプログラムに適用する。
平均すると、移植が容易なマクロが2倍になり、以前の作業よりも最大7倍多いことが分かりました。
- 参考スコア(独自算出の注目度): 2.7195102129095003
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: C is an unsafe language. Researchers have been developing tools to port C to
safer languages such as Rust, Checked C, or Go. Existing tools, however, resort
to preprocessing the source file first, then porting the resulting code,
leaving barely recognizable code that loses macro abstractions. To preserve
macro usage, porting tools need analyses that understand macro behavior to port
to equivalent constructs. But macro semantics differ from typical functions,
precluding simple syntactic transformations to port them. We introduce the
first comprehensive framework for analyzing the portability of macro usage. We
decompose macro behavior into 26 fine-grained properties and implement a
program analysis tool, called Maki, that identifies them in real-world code
with 94% accuracy. We apply Maki to 21 programs containing a total of 86,199
macro definitions. We found that real-world macros are much more portable than
previously known. More than a third (37%) are easy-to-port, and Maki provides
hints for porting more complicated macros. We find, on average, 2x more
easy-to-port macros and up to 7x more in the best case compared to prior work.
Guided by Maki's output, we found and hand-ported macros in four real-world
programs. We submitted patches to Linux maintainers that transform eleven
macros, nine of which have been accepted.
- Abstract(参考訳): cは安全でない言語です。
研究者は、Rust、Checked C、Goといったより安全な言語にCを移植するツールを開発している。
しかし、既存のツールは、まずソースファイルを前処理し、その結果のコードを移植し、マクロ抽象化を失うほとんど認識できないコードを残す。
マクロ使用率を維持するために、移植ツールは等価な構成物への移植のためのマクロ動作を理解する分析を必要とする。
しかし、マクロセマンティクスは典型的な機能と異なり、移植するために単純な構文変換を先取りする。
マクロ使用の可搬性を分析するための最初の包括的なフレームワークを紹介する。
マクロな振る舞いを26個の微粒なプロパティに分解し,94%の精度で実世界のコードで識別するプログラム解析ツールMakiを実装した。
マキを86,199のマクロ定義を含む21のプログラムに適用する。
実世界のマクロは以前よりもずっとポータブルであることが分かりました。
3分の1以上(37%)は移植が容易で、Makiはより複雑なマクロを移植するためのヒントを提供する。
平均すると、移植が容易なマクロが2倍になり、以前の作業よりも最大7倍多いことが分かりました。
実世界の4つのプログラムでマキの成果に導かれ,手持ちのマクロが見つかった。
我々は11のマクロを変換するLinuxメンテナにパッチを提出した。
関連論文リスト
- MdEval: Massively Multilingual Code Debugging [37.48700033342978]
18のプログラミング言語の3.6Kテストサンプルを含む,最初の大規模多言語デバッグベンチマークを提案する。
本稿では, MDEVAL-INSTRUCT 命令コーパスを導入し, 正しい多言語クエリとソリューションにバグを注入する。
MDEVALにおける実験により,オープンソースモデルとクローズドソースLLM間の顕著な性能差が明らかになった。
論文 参考訳(メタデータ) (2024-11-04T17:36:40Z) - Enabling Memory Safety of C Programs using LLMs [5.297072277460838]
C言語で書かれた低レベルのコードのメモリ安全性違反は、ソフトウェア脆弱性の主要な原因のひとつであり続けています。
このような違反を建設によって除去する方法の1つは、安全なC方言にCコードを移植することである。
このような方言は、最小限のランタイムオーバーヘッドで安全性を保証するためにプログラマが提供するアノテーションに依存している。
この移植は、プログラマに多大な負担をかける手作業であり、そのため、このテクニックの採用は限られている。
論文 参考訳(メタデータ) (2024-04-01T13:05:54Z) - FoC: Figure out the Cryptographic Functions in Stripped Binaries with LLMs [54.27040631527217]
削除されたバイナリの暗号関数を抽出するFoCと呼ばれる新しいフレームワークを提案する。
まず、自然言語における暗号関数のセマンティクスを要約するために、バイナリ大言語モデル(FoC-BinLLM)を構築した。
次に、FoC-BinLLM上にバイナリコード類似モデル(FoC-Sim)を構築し、変更に敏感な表現を作成し、データベース内の未知の暗号関数の類似実装を検索する。
論文 参考訳(メタデータ) (2024-03-27T09:45:33Z) - 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) - ControlLLM: Augment Language Models with Tools by Searching on Graphs [97.62758830255002]
我々は,大規模言語モデル(LLM)が実世界のタスクを解くためのマルチモーダルツールを利用できる新しいフレームワークであるControlLLMを提案する。
フレームワークは,(1)複雑なタスクを明確なサブタスクに分割し,入力と出力を適切に定義したサブタスクに分解するtextittask Decomposer,(2)構築済みのツールグラフ上で最適なソリューションパスを探索する textitThoughts-on-Graph(ToG)パラダイム,(3)ソリューションパスを解釈して実行するリッチなツールボックスを備えた textitexecution Engine,の3つの主要なコンポーネントから構成される。
論文 参考訳(メタデータ) (2023-10-26T21:57:21Z) - Automatic Macro Mining from Interaction Traces at Scale [10.371956379165297]
ランダムおよびユーザによるモバイルインタラクショントレースから意味論的に意味のあるマクロを自動的に抽出する新しい手法を提案する。
このアプローチによって生成されたマクロは、自然言語記述で自動的にタグ付けされ、完全に実行可能である。
本研究では,ユーザ評価,人事比較分析,自動実行など,抽出したマクロの品質を検証するために,複数の研究を行っている。
論文 参考訳(メタデータ) (2023-10-10T21:23:47Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - COMEX: A Tool for Generating Customized Source Code Representations [7.151800146054561]
COMEXは、研究者と開発者が複数のコードビューを作成し、組み合わせることを可能にするフレームワークである。
プロシージャ内スニペットとプロシージャ間スニペットの両方を使用して、メソッドレベルのスニペットとプログラムレベルのスニペットの両方を分析することができる。
これは40以上の言語をサポートする、広く使われているインクリメンタル分析ツールであるtree-sitter上に構築されている。
論文 参考訳(メタデータ) (2023-07-10T16:46:34Z) - Weakening Assumptions for Publicly-Verifiable Deletion [79.61363884631021]
我々は,様々な暗号システムに公開検証可能な削除を汎用的に付加する,シンプルなコンパイラを開発した。
コンパイラは片道関数のみを使用します。
論文 参考訳(メタデータ) (2023-04-19T17:51:28Z) - Interactive Code Generation via Test-Driven User-Intent Formalization [60.90035204567797]
大きな言語モデル(LLM)は、非公式な自然言語(NL)の意図からコードを生成する。
自然言語は曖昧であり、形式的な意味論が欠けているため、正確性の概念を定義するのは難しい。
言語に依存しない抽象アルゴリズムと具体的な実装TiCoderについて述べる。
論文 参考訳(メタデータ) (2022-08-11T17:41:08Z) - ShapeMOD: Macro Operation Discovery for 3D Shape Programs [41.973945628565104]
3Dシェイププログラムの大規模なデータセットで有用なマクロを自動的に発見するアルゴリズムであるShapeMODを紹介します。
ShapeMODは命令型ステートメントベースの言語で表現された形状プログラムで動作する。
構造的およびパラメトリックなパターンを抽象化するマクロの簡潔なセットを自動的に発見することを示した。
論文 参考訳(メタデータ) (2021-04-13T17:54:03Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。