論文の概要: Scalable and Precise Application-Centered Call Graph Construction for Python
- arxiv url: http://arxiv.org/abs/2305.05949v2
- Date: Sun, 24 Mar 2024 08:51:51 GMT
- ステータス: 処理完了
- システム内更新日: 2024-03-27 03:48:07.951408
- Title: Scalable and Precise Application-Centered Call Graph Construction for Python
- Title(参考訳): Pythonのためのスケーラブルで高精度なアプリケーション中心のコールグラフ構築
- Authors: Yixuan Yan, Kaifeng Huang, Bihuan Chen, Zixin Tao, Yulei Sui, Xin Peng,
- Abstract要約: PyCGはPythonプログラムのコールグラフを構築するための最先端のアプローチである。
本稿では,Python プログラム用のアプリケーション中心のコールグラフを構築するためのスケーラブルで正確なアプローチを提案し,プロトタイプツール JARVIS として実装する。
1つの関数を入力として、JARVISは、フローセンシティブなプロセス内分析とプロセス間解析を行う、オンザフライのコールグラフを生成する。
- 参考スコア(独自算出の注目度): 10.549200851675826
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Call graph construction is the foundation of inter-procedural static analysis. PYCG is the state-of-the-art approach for constructing call graphs for Python programs. Unfortunately, PyCG does not scale to large programs when adapted to whole-program analysis where application and dependent libraries are both analyzed. Moreover, PyCG is flow-insensitive and does not fully support Python's features, hindering its accuracy. To overcome these drawbacks, we propose a scalable and precise approach for constructing application-centered call graphs for Python programs, and implement it as a prototype tool JARVIS. JARVIS maintains a type graph (i.e., type relations of program identifiers) for each function in a program to allow type inference. Taking one function as an input, JARVIS generates the call graph on-the-fly, where flow-sensitive intra-procedural analysis and inter-procedural analysis are conducted in turn and strong updates are conducted. Our evaluation on a micro-benchmark of 135 small Python programs and a macro-benchmark of 6 real-world Python applications has demonstrated that JARVIS can significantly improve PYCG by at least 67% faster in time, 84% higher in precision, and at least 20% higher in recall.
- Abstract(参考訳): コールグラフ構築は、手続き間静的解析の基礎である。
PYCGはPythonプログラムのコールグラフを構築するための最先端のアプローチである。
残念ながら、PyCGは、アプリケーションと依存ライブラリの両方が解析されるプログラム全体の解析に適応する場合、大規模プログラムにはスケールしない。
さらに、PyCGはフローに敏感であり、Pythonの機能を完全にサポートしていないため、その正確さを妨げている。
このような欠点を克服するために,Pythonプログラム用のアプリケーション中心のコールグラフを構築するためのスケーラブルで正確なアプローチを提案し,プロトタイプツールであるJARVISとして実装する。
JARVISは、型推論を可能にするプログラムの各関数の型グラフ(すなわち、プログラム識別子の型関係)を保持する。
1つの関数を入力として、JARVISはオンザフライでコールグラフを生成し、フローセンシティブなイントラプロデューラル解析とイントラプロデューラル解析を交互に行い、強力な更新を行う。
135個のPythonプログラムのマイクロベンチマークと6個の実世界のPythonアプリケーションのマクロベンチマークによる評価は、JARVISがPYCGを少なくとも67%高速化し、精度が84%向上し、リコール時に少なくとも20%向上できることを示した。
関連論文リスト
- DyPyBench: A Benchmark of Executable Python Software [18.129031749321058]
我々は、Pythonプロジェクトの最初のベンチマークであるDyPyBenchを紹介します。
ベンチマークには、さまざまなアプリケーションドメインから50の人気のあるオープンソースプロジェクトが含まれており、合計681万行のPythonコードと30万のテストケースが含まれている。
我々は、DyPyBenchが他の動的解析の基礎を提供し、Pythonコードの実行時の振る舞いを研究することを想定する。
論文 参考訳(メタデータ) (2024-03-01T13:53:15Z) - PyBADS: Fast and robust black-box optimization in Python [11.4219428942199]
PyBADSは、高速で堅牢なブラックボックス最適化のためのAdaptive Direct Search (BADS)アルゴリズムの実装である。
結果を実行するアルゴリズムを実行するための、使い易いPythonインターフェースとともに提供される。
論文 参考訳(メタデータ) (2023-06-27T15:54:44Z) - PyRCA: A Library for Metric-based Root Cause Analysis [66.72542200701807]
PyRCAは、AIOps(AIOps)のためのRoot Cause Analysis(RCA)のオープンソースの機械学習ライブラリである。
複雑なメトリクス因果依存性を明らかにし、インシデントの根本原因を自動的に特定する、包括的なフレームワークを提供する。
論文 参考訳(メタデータ) (2023-06-20T09:55:10Z) - RAGO: Recurrent Graph Optimizer For Multiple Rotation Averaging [62.315673415889314]
本稿では,複数回転平均化(MRA)のための深部繰り返し回転平均化グラフ(RAGO)を提案する。
我々のフレームワークは、実世界のアプリケーションに小さなサイズでデプロイされた、リアルタイムに学習から最適化するローテーション平均化グラフである。
論文 参考訳(メタデータ) (2022-12-14T13:19:40Z) - GraphQ IR: Unifying Semantic Parsing of Graph Query Language with
Intermediate Representation [91.27083732371453]
本稿では,グラフクエリ言語,すなわちGraphQ IRに対する統合中間表現(IR)を提案する。
セマンティックギャップをブリッジするIRの自然言語のような表現と、グラフ構造を維持するための正式に定義された構文によって、ニューラルネットワークによるセマンティックパーシングは、ユーザクエリをより効果的にGraphQ IRに変換することができる。
我々のアプローチは、KQA Pro、Overnight、MetaQAにおける最先端のパフォーマンスを一貫して達成できます。
論文 参考訳(メタデータ) (2022-05-24T13:59:53Z) - PyGOD: A Python Library for Graph Outlier Detection [56.33769221859135]
PyGODは、グラフデータの外れ値を検出するオープンソースライブラリである。
外れ値検出のための主要なグラフベースのメソッドを幅広くサポートしています。
PyGODはBSD 2-Clauseライセンスの下でhttps://pygod.orgとPython Package Index (PyPI)でリリースされている。
論文 参考訳(メタデータ) (2022-04-26T06:15:21Z) - Python for Smarter Cities: Comparison of Python libraries for static and
interactive visualisations of large vector data [0.0]
Pythonは簡潔で自然な構文を持ち、コンピュータサイエンスの背景を持たない市町村のスタッフにとって参入障壁は低い。
本研究では,大規模ベクトルデータセットの可視化生成に関して,Pythonエコシステムにおける顕著かつ活発に開発された可視化ライブラリを評価する。
短いリストのライブラリはすべて、小さなデータセットと大きなデータセットの両方のサンプルマップ製品を生成することができた。
論文 参考訳(メタデータ) (2022-02-26T10:23:29Z) - PyLUSAT: An open-source Python toolkit for GIS-based land use
suitability analysis [0.1611401281366893]
本稿では,PyLUSAT: Python for Land Use Suitability Analysis Toolsを紹介する。
PyLUSATはオープンソースのソフトウェアパッケージで、様々なタスクを適合性モデリングワークフローで実行するための一連のツールを提供する。
精度と計算効率の両方に関して、ArcMap 10.4の同等のツールに対して評価された。
論文 参考訳(メタデータ) (2021-07-04T16:19:16Z) - Scaling Graph Neural Networks with Approximate PageRank [64.92311737049054]
GNNにおける情報拡散の効率的な近似を利用したPPRGoモデルを提案する。
高速であることに加えて、PPRGoは本質的にスケーラブルであり、業界設定で見られるような大規模なデータセットに対して、自明に並列化することができる。
このグラフのすべてのノードに対するPPRGoのトレーニングとラベルの予測には1台のマシンで2分未満で、同じグラフ上の他のベースラインをはるかに上回ります。
論文 参考訳(メタデータ) (2020-07-03T09:30:07Z) - OPFython: A Python-Inspired Optimum-Path Forest Classifier [68.8204255655161]
本稿では,OPFythonと表記されるPythonベースのOptimum-Path Forestフレームワークを提案する。
OPFythonはPythonベースのライブラリなので、C言語よりもフレンドリーな環境とプロトタイピングの作業スペースを提供する。
論文 参考訳(メタデータ) (2020-01-28T15:46:19Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。