Skip to main content
QUICK REVIEW

[論文レビュー] Software Language Comprehension using a Program-Derived Semantic Graph

Roshni G. Iyer, Yizhou Sun|arXiv (Cornell University)|Apr 2, 2020
Software Engineering Research参考文献 16被引用数 7
ひとこと要約

本稿では、プログラムの意味を複数の抽象化レベルにわたり捉えることのできる、新しいグラフィカル構造であるプログラム由来意味グラフ(PSG)を紹介する。従来のASTやIRのような伝統的コード表現の限界を克服する。PSGは、学習されたルールに依存しない構造的モデルを用いて高階の意味を抽出可能であり、自動プログラム理解の基盤的アプローチとして初期の可能性を示している。

ABSTRACT

Traditional code transformation structures, such as abstract syntax trees (ASTs), conteXtual flow graphs (XFGs), and more generally, compiler intermediate representations (IRs), may have limitations in extracting higher-order semantics from code. While work has already begun on higher-order semantics lifting (e.g., Aroma's simplified parse tree (SPT), verified lifting's lambda calculi, and Halide's intentional domain specific language (DSL)), research in this area is still immature. To continue to advance this research, we present the program-derived semantics graph, a new graphical structure to capture semantics of code. The PSG is designed to provide a single structure for capturing program semantics at multiple levels of abstraction. The PSG may be in a class of emerging structural representations that cannot be built from a traditional set of predefined rules and instead must be learned. In this paper, we describe the PSG and its fundamental structural differences compared to state-of-the-art structures. Although our exploration into the PSG is in its infancy, our early results and architectural analysis indicate it is a promising new research direction to automatically extract program semantics.

研究の動機と目的

  • AST、XFG、コンパイラIRなどの従来のコード表現が高階の意味を捉えることのできない限界を解消すること。
  • さまざまな抽象化レベルでプログラムの意味をモデル化できる統一された構造的表現を開発すること。
  • 事前に定義されたルールに基づくのではなく、コードから学習される新しいクラスのプログラム表現を探索すること。
  • 学習可能なフレームワークを導入することで、自動プログラム理解分野の研究を前進させること。

提案手法

  • 構文的・制御フローの境界を越えてプログラムの意味をモデル化するグラフィカル構造として、プログラム由来意味グラフ(PSG)を設計すること。
  • データフロー、制御フロー、意味的関係を統合した、単一で拡張可能なグラフ構造としてPSGを定式化すること。
  • 手作業で定義された文法や変換ルールに依存するのではなく、機械学習の原則を活用してコードからPSGの構築ルールを学習すること。
  • 既存の表現(ASTやIRなど)と比較して、PSGの表現力とスケーラビリティを評価するためのアーキテクチャ解析を実施すること。
  • 実世界のコードベースにおける高階の意味的パターンの把握能力を評価するための初期実験的評価を実施すること。
  • PSGと最先端の表現との構造的差異に焦点を当て、より豊かな意味モデリングの可能性を強調すること。

実験結果

リサーチクエスチョン

  • RQ1どのようなプログラム表現が、従来のASTやIRが表現できない高階の意味を捉えることができるか?
  • RQ2PSGが既存の表現よりもプログラム理解においてより効果的であるのは、どのような構造的特徴によるものか?
  • RQ3意味グラフを、事前に定義された変換ルールではなく、学習によって自動的に構築できるか?
  • RQ4PSGは、プログラム意味のモデリングにおいてどの程度の多層的抽象化をサポートできるか?
  • RQ5自動コード解析の文脈において、PSGのアーキテクチャ的および表現的利点は何か?

主な発見

  • PSGは、構文的関係、制御フロー、意味的関係を1つのグラフ構造に統合することで、プログラム意味のモデリングにおける画期的なアプローチを示している。
  • PSGは事前に定義された変換ルールに縛られないため、コードデータから学習可能であり、従来のIRやASTとは明確に異なる。
  • アーキテクチャ解析の結果、PSGは最先端の表現と比較して、高階の意味的パターンのモデリングにおいてより高い表現力を持つことが示された。
  • 初期の結果から、PSGは将来的な自動プログラム理解および意味の高次元化(semantics lifting)の研究の基盤として有望であることが示唆された。
  • PSGは多層的抽象化をサポートしており、プログラム理解の異なる粒度に応じた柔軟な解析が可能である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。