JP6502044B2 - データ解析装置、データ解析方法、および、プログラム。 - Google Patents
データ解析装置、データ解析方法、および、プログラム。 Download PDFInfo
- Publication number
- JP6502044B2 JP6502044B2 JP2014176926A JP2014176926A JP6502044B2 JP 6502044 B2 JP6502044 B2 JP 6502044B2 JP 2014176926 A JP2014176926 A JP 2014176926A JP 2014176926 A JP2014176926 A JP 2014176926A JP 6502044 B2 JP6502044 B2 JP 6502044B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- dfg
- node
- data flow
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本実施の形態のデータフロー解析装置10は、ソースコードを構文解析して作成した抽象構文木(以降、AST:Abstract Syntax Tree )を入力情報とする。データフロー解析装置10は、データフロー解析過程で、制御フローグラフを生成せずにデータフローグラフ(以降、DFG:Data Flow Graph)を作成する。このデータフロー解析装置10は、制御構文に対してのみ制御フロー解析を行い、制御構文の処理の流れに沿った変数のデータフローグラフを作成する。
次に、本実施形態のデータフロー解析装置10の構成を説明する。
次に、本実施形態のデータフロー解析装置10の動作を説明する。
取り出した親ASTノードが制御構文を表すASTノードでない場合(A5-4でNo)、順次関係形成部21は図5のフロー処理を終了する。
図7のif文のサンプルソースコードを例に説明する。まず、順次関係形成部21は、上位ブロック(関数:func1)のブロック対応作業域30(図8)の最終DFGノードと、下位ブロック(if文のthen節)のブロック対応作業域30(図9)の先頭DFGノード間で順次関係を結ぶ(A6-2)。これにより、3行目の変数:aから4行目の変数:aにかけて、変数aに対応するDFGノード間で順次関係が結ばれる。
本実施の形態のデータフロー解析装置10は、効率の良いデータフローグラフ作成ができる。その理由は、順次関係形成部21が制御フローグラフを生成することなく、ASTからデータフローグラフを作成するからである。このため、制御フローグラフの作成領域が不要となる。
図36は、第2の実施形態のデータフロー解析装置10の全体構成を示す図である。本実施の形態のデータフロー解析装置10は、抽象構文木抽出部20を備えない。ソースコードからASTの抽出は他の装置で行われ、本実施の形態のデータフロー解析装置10は、その結果のASTをネットワーク経由で受信するなどして、データフロー解析を行う。
20 抽象構文木抽出部
21 順次関係形成部
22 依存元ノード候補保持部
23 DFG記憶部
30 ブロック対応作業域
Claims (10)
- ブロック構造を有するプログラムの抽象構文木を取得して、当該抽象構文木から、ブロックに含まれる制御構文を検出すると、当該制御構文に付随する下位ブロックの対象変数についてのデータフローグラフをDFG記憶手段に作成して、両端ノード情報を前記ブロック対応に記憶し、前記ブロック内の前記対象変数の参照を検出すると、対応するノードと、当該ノードと前記ブロック対応に記憶している下位ブロックのノード間のリンクと、を生成して前記DFG記憶手段に追加する順次関係形成手段、を備え、
前記順次関係形成手段は、前記リンクの生成が終了すると、当該ブロックに対応する前記両端ノード情報を削除するデータフロー解析装置。 - 前記順次関係形成手段は、前記制御構文がthen節とelse節を有するif文である場合、両節の各々に付随する下位ブロックについてデータフローグラフを作成して、両データフローグラフの両端ノード情報を前記ブロック対応に記憶し、前記ブロック内の前記対象変数の参照に対応するノードと前記ブロック対応に記憶している両下位ブロックのノード間のリンクを生成して前記DFG記憶手段に追加する、請求項1のデータフロー解析装置。
- 前記順次関係形成手段は、前記制御構文がelse節の無いif文、または、繰り返し処理制御文である場合、前記制御構文に付随する1つの下位ブロックについてデータフローグラフを作成して、当該データフローグラフの両端ノード情報を前記ブロック対応に記憶し、前記ブロック内の前記対象変数の参照に対応するノードと、前記ブロック対応に記憶している1つの下位ブロックのノード間のリンクを生成して前記DFG記憶手段に追加する、請求項1のデータフロー解析装置。
- 前記プログラムのソースコードを取得して、前記抽象構文木を抽出する抽象構文木抽出手段と、
前記DFG記憶手段と、をさらに備えた請求項1乃至3の何れか1項のデータフロー解析装置。 - ブロック構造を有するプログラムの抽象構文木を取得して、当該抽象構文木から、ブロックに含まれる制御構文を検出すると、当該制御構文に付随する下位ブロックの対象変数についてのデータフローグラフをDFG記憶手段に作成して、両端ノード情報を前記ブロック対応に記憶し、前記ブロック内の前記対象変数の参照を検出すると、対応するノードと、当該ノードと前記ブロック対応に記憶している下位ブロックのノード間のリンクと、を生成して前記DFG記憶手段に追加し、前記リンクの生成が終了すると、当該ブロックに対応する前記両端ノード情報を削除する、データフロー解析方法。
- 前記制御構文がthen節とelse節を有するif文である場合、両節の各々に付随する下位ブロックについてデータフローグラフを作成して、両データフローグラフの両端ノード情報を前記ブロック対応に記憶し、前記ブロック内の前記対象変数の参照に対応するノードと前記ブロック対応に記憶している両下位ブロックのノード間のリンクを生成して前記DFG記憶手段に追加する、請求項5のデータフロー解析方法。
- 前記制御構文がelse節の無いif文、または、繰り返し処理制御文である場合、前記制御構文に付随する1つの下位ブロックについてデータフローグラフを作成して、当該データフローグラフの両端ノード情報を前記ブロック対応に記憶し、前記ブロック内の前記対象変数の参照に対応するノードと、前記ブロック対応に記憶している1つの下位ブロックのノード間のリンクを生成して前記DFG記憶手段に追加する、請求項5のデータフロー解析方法。
- ブロック構造を有するプログラムの抽象構文木を取得して、当該抽象構文木から、ブロックに含まれる制御構文を検出すると、当該制御構文に付随する下位ブロックの対象変数についてのデータフローグラフをDFG記憶手段に作成して、両端ノード情報を前記ブロック対応に記憶し、前記ブロック内の前記対象変数の参照を検出すると、対応するノードと、当該ノードと前記ブロック対応に記憶している下位ブロックのノード間のリンクと、を生成して前記DFG記憶手段に追加し、前記リンクの生成が終了すると、当該ブロックに対応する前記両端ノード情報を削除する処理を、コンピュータに実行させるプログラム。
- 前記制御構文がthen節とelse節を有するif文である場合、両節の各々に付随する下位ブロックについてデータフローグラフを作成して、両データフローグラフの両端ノード情報を前記ブロック対応に記憶し、前記ブロック内の前記対象変数の参照に対応するノードと前記ブロック対応に記憶している両下位ブロックのノード間のリンクを生成して前記DFG記憶手段に追加する処理をコンピュータに実行させる、請求項8のプログラム。
- 前記制御構文がelse節の無いif文、または、繰り返し処理制御文である場合、前記制御構文に付随する1つの下位ブロックについてデータフローグラフを作成して、当該データフローグラフの両端ノード情報を前記ブロック対応に記憶し、前記ブロック内の前記対象変数の参照に対応するノードと、前記ブロック対応に記憶している1つの下位ブロックのノード間のリンクを生成して前記DFG記憶手段に追加する処理をコンピュータに実行させる、請求項8のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014176926A JP6502044B2 (ja) | 2014-09-01 | 2014-09-01 | データ解析装置、データ解析方法、および、プログラム。 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014176926A JP6502044B2 (ja) | 2014-09-01 | 2014-09-01 | データ解析装置、データ解析方法、および、プログラム。 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016051367A JP2016051367A (ja) | 2016-04-11 |
JP6502044B2 true JP6502044B2 (ja) | 2019-04-17 |
Family
ID=55658808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014176926A Active JP6502044B2 (ja) | 2014-09-01 | 2014-09-01 | データ解析装置、データ解析方法、および、プログラム。 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6502044B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704053B (zh) * | 2019-09-03 | 2023-05-23 | 五八有限公司 | 一种样式信息的处理方法及装置 |
CN111666216B (zh) * | 2020-06-05 | 2024-01-23 | 中国银行股份有限公司 | 一种智能合约分析方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05181652A (ja) * | 1992-01-07 | 1993-07-23 | Nec Corp | プログラムリバース装置 |
JPH06149551A (ja) * | 1992-11-06 | 1994-05-27 | Fujitsu Ltd | プログラム仕様書自動生成方法 |
JP3997495B2 (ja) * | 1998-02-05 | 2007-10-24 | 新日鉄ソリューションズ株式会社 | ソフトウェア解析装置及びソフトウェア解析方法 |
JP2012164024A (ja) * | 2011-02-03 | 2012-08-30 | Toyota Motor Corp | データフローグラフ生成装置、データフローグラフ生成方法及びデータフローグラフ生成プログラム |
-
2014
- 2014-09-01 JP JP2014176926A patent/JP6502044B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016051367A (ja) | 2016-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Collard et al. | srcml: An infrastructure for the exploration, analysis, and manipulation of source code: A tool demonstration | |
US10664655B2 (en) | Method and system for linear generalized LL recognition and context-aware parsing | |
CN106843840B (zh) | 一种基于相似度分析的源代码版本演化注释复用方法 | |
US9122540B2 (en) | Transformation of computer programs and eliminating errors | |
JP2016157407A (ja) | テキスト分析及び応答システムのための語彙意味パターンの事前構築方法 | |
Verbitskaia et al. | Relaxed parsing of regular approximations of string-embedded languages | |
JP6440895B2 (ja) | ソフトウェア分析装置及びソフトウェア分析方法 | |
JP6502044B2 (ja) | データ解析装置、データ解析方法、および、プログラム。 | |
Michelon et al. | Mining feature revisions in highly-configurable software systems | |
US9002772B2 (en) | Scalable rule-based processing system with trigger rules and rule evaluator | |
JP2011191985A (ja) | シンボリック実行支援プログラム、方法及び装置 | |
JP2008198103A (ja) | 状態遷移図作成装置および状態遷移図作成方法 | |
Jnanamurthy et al. | Analysis of industrial control system software to detect semantic clones | |
JP6364332B2 (ja) | 仕様生成方法、仕様生成装置、及びプログラム | |
JP5932707B2 (ja) | 計算機、プログラム及びデータ生成方法 | |
JP6175306B2 (ja) | 制御プログラム分割装置、制御プログラム分割方法及びその記録媒体 | |
JP5578625B2 (ja) | プログラム分析装置、プログラム分析方法、及びプログラム | |
JP2015022356A (ja) | テストシナリオバリエーション生成装置及び方法及びプログラム | |
EP3167382A1 (en) | Method and system for linear generalized ll recognition and context-aware parsing | |
US9792197B2 (en) | Apparatus and program | |
KR20180115921A (ko) | 프로그래밍 언어간 변환 방법 | |
JP6011988B2 (ja) | 影響範囲調査方法及び影響範囲調査装置 | |
JP2010165205A (ja) | モデルのテンプレート自動生成システム、方法及びプログラム | |
JP6077694B1 (ja) | デシジョンテーブル生成装置、デシジョンテーブル生成方法およびデシジョンテーブル生成プログラム | |
CN107273386B (zh) | 一种数据库的XML Schema约束文件生成方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170809 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180710 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180904 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190226 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190320 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6502044 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |