JPH08292881A - プログラム影響範囲表示装置 - Google Patents

プログラム影響範囲表示装置

Info

Publication number
JPH08292881A
JPH08292881A JP7123123A JP12312395A JPH08292881A JP H08292881 A JPH08292881 A JP H08292881A JP 7123123 A JP7123123 A JP 7123123A JP 12312395 A JP12312395 A JP 12312395A JP H08292881 A JPH08292881 A JP H08292881A
Authority
JP
Japan
Prior art keywords
program
analysis
dependence
graph
data
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.)
Pending
Application number
JP7123123A
Other languages
English (en)
Inventor
Masanori Koizumi
昌紀 小泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP7123123A priority Critical patent/JPH08292881A/ja
Publication of JPH08292881A publication Critical patent/JPH08292881A/ja
Pending legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Debugging And Monitoring (AREA)
  • Digital Computer Display Output (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 特定の命令の影響範囲の表示を可能とし、し
かもそのような表示(その表示のための指定や解析を含
む)を対話的に行うことができるようにする。 【構成】 依存グラフ作成手段5は、データ依存解析お
よび制御依存解析の解析結果を統合して依存グラフを作
成する。命令選択手段8は、起点命令に対応する起点ノ
ードを依存グラフで選択する。データ強調表示手段9
は、影響範囲表示種別がデータ依存関係に関する種別で
ある場合に、起点ノードからの依存グラフの走査に基づ
き、ソースプログラム中で起点命令とデータ依存関係に
ある命令群をプログラムブラウザ7上で強調表示する。
ネスト強調表示手段10は、影響範囲表示種別が制御依
存関係に関する種別である場合に、起点ノードからの依
存グラフの走査に基づき、ソースプログラム中で起点命
令と制御依存関係にある命令群をプログラムブラウザ7
上で強調表示する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソースプログラムを解
析して解析結果を表示するプログラム解析表示装置に関
し、特に解析対象のソースプログラムの特定箇所に記述
された命令の影響範囲を対話的に表示するプログラム影
響範囲表示装置に関する。
【0002】
【従来の技術】従来のプログラム解析表示装置として
は、次のおよびに示すようなものがあった。
【0003】 特開昭62−290933号公報や特
開平5−181652号公報に開示されているように、
構文解析,制御フロー解析およびデータフロー解析の技
術が用いられることによってソースプログラムが解析さ
れ、その解析結果が表示されるもの
【0004】 特開平3−70039号公報に開示さ
れているように、浮動小数点の誤差伝播に関する解析等
の技術が用いられることにより、ソースプログラム中で
の関数値の不可避的な誤差に対する影響度が解析され、
その解析結果が表示されるもの
【0005】
【発明が解決しようとする課題】上述のように、従来
は、解析対象のソースプログラムの特定箇所に記述され
た命令の影響範囲(影響を及ぼす当該ソースプログラム
中の処理のまとまり(命令群))を対話的に表示するこ
とを目的とするプログラム解析表示装置、すなわちプロ
グラム影響範囲表示装置は存在しなかった。
【0006】ここで、上述した従来のプログラム解析表
示装置により、解析対象のソースプログラムの特定箇所
に記述された命令の影響範囲を表示しようとする場合を
考えてみる。この場合には、以下の問題点があった。
【0007】第1の問題点は、「利用者による特定の命
令の指定によりその命令の影響範囲を対話的に表示す
る」という対話的な処理を行うことができない点であ
る。
【0008】第2の問題点は、影響範囲を正確に解析で
きない点である。すなわち、の従来技術に関する構文
解析,制御フロー解析およびデータフロー解析の技術の
みでは特定の命令についての制御依存関係に関する影響
範囲を正確に解析できないし、の従来技術に関する浮
動小数点の誤差伝播に関する解析等の技術のみではデー
タ依存関係および制御依存関係に関する影響範囲の正確
な解析を行うことができない。
【0009】例えば、以下のソースプログラムにおいて
命令(3)は命令(1)に制御依存しているが、制御フ
ローは命令(1)→命令(2)→命令(3)→命令
(4)と流れるため、従来技術では命令(3)と命令
(1)とが直接的に制御依存関係にあることを判断でき
ない。 (1) IF X > 0 (2) MOVE A TO B (3) MOVE C TO D (4) END−IF.
【0010】ここで、命令についての「制御依存関係」
とは、一の命令が実行されるか否かが他の命令の実行内
容に依存する関係をいう。具体的には、分岐命令Aの分
岐内容によって、一の場合には命令Bが実行され、他の
場合には命令Bが実行されないときに、命令Bは命令A
に制御依存するという。上述のソースプログラムにおい
ては、命令(3)は命令(1)に制御依存している。
【0011】なお、データ依存関係に関する影響範囲の
解析は、の従来技術においても、ある程度については
行うことができるが、この従来技術では起点命令の指定
およびその影響範囲の表示という「対話的な処理」を行
うことができなかった。
【0012】以上のように、従来のプログラム解析表示
装置では、ソースプログラム中の特定の箇所に記述され
た命令の影響範囲を正確に解析することと、その解析結
果の表示を対話的に行うこととを同時に実現することは
できなかった。
【0013】本発明の目的は、上述の点に鑑み、利用者
がソースプログラム中で指定した特定の命令(起点命
令)に影響を及ぼす処理のまとまり(命令群)を正確に
解析して解析結果を表示することができ、しかもそのよ
うな指定,解析および表示を対話的に行うことができる
プログラム影響範囲表示装置を提供することにある。
【0014】
【課題を解決するための手段】本発明のプログラム影響
範囲表示装置は、ソースプログラムの構文解析の解析結
果に基づく制御フロー解析により制御フローグラフを作
成する制御フロー解析手段と、前記制御フロー解析手段
により作成された制御フローグラフに対するデータ依存
解析を行うデータ依存解析手段と、前記制御フロー解析
手段により作成された制御フローグラフに対する制御依
存解析を行う制御依存解析手段と、前記データ依存解析
手段によるデータ依存解析の解析結果と前記制御依存解
析手段による制御依存解析の解析結果とを統合して依存
グラフを作成する依存グラフ作成手段と、プログラムブ
ラウザの画面上に解析対象のソースプログラムを表示す
る表示手段と、プログラムブラウザを通じて利用者から
指定された起点命令に対応する起点ノードを前記依存グ
ラフ作成手段により作成された依存グラフにおいて選択
する命令選択手段と、利用者から指定される影響範囲表
示種別がデータ依存関係に関する影響範囲の表示を示す
ものである場合に、前記命令選択手段により選択された
起点ノードからの依存グラフの走査に基づいてソースプ
ログラム中で起点命令とデータ依存関係にある命令群を
プログラムブラウザの画面上で強調表示するデータ強調
表示手段と、利用者から指定される影響範囲表示種別が
制御依存関係に関する影響範囲の表示を示すものである
場合に、前記命令選択手段により選択された起点ノード
からの依存グラフの走査に基づいてソースプログラム中
で起点命令と制御依存関係にある命令群をプログラムブ
ラウザの画面上で強調表示するネスト強調表示手段とを
有する。
【0015】
【作用】本発明のプログラム影響範囲表示装置では、制
御フロー解析手段がソースプログラムの構文解析の解析
結果に基づく制御フロー解析により制御フローグラフを
作成し、データ依存解析手段が制御フロー解析手段によ
り作成された制御フローグラフに対するデータ依存解析
を行い、制御依存解析手段が制御フロー解析手段により
作成された制御フローグラフに対する制御依存解析を行
い、依存グラフ作成手段がデータ依存解析手段によるデ
ータ依存解析の解析結果と制御依存解析手段による制御
依存解析の解析結果とを統合して依存グラフを作成し、
表示手段がプログラムブラウザの画面上に解析対象のソ
ースプログラムを表示し、命令選択手段がプログラムブ
ラウザを通じて利用者から指定された起点命令に対応す
る起点ノードを依存グラフ作成手段により作成された依
存グラフにおいて選択し、データ強調表示手段が利用者
から指定される影響範囲表示種別がデータ依存関係に関
する影響範囲の表示を示すものである場合に命令選択手
段により選択された起点ノードからの依存グラフの走査
に基づいてソースプログラム中で起点命令とデータ依存
関係にある命令群をプログラムブラウザの画面上で強調
表示し、ネスト強調表示手段が利用者から指定される影
響範囲表示種別が制御依存関係に関する影響範囲の表示
を示すものである場合に命令選択手段により選択された
起点ノードからの依存グラフの走査に基づいてソースプ
ログラム中で起点命令と制御依存関係にある命令群をプ
ログラムブラウザの画面上で強調表示する。
【0016】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0017】図1は、本発明のプログラム影響範囲表示
装置の第1の実施例の構成を示すブロック図である。
【0018】本実施例のプログラム影響範囲表示装置
は、構文解析手段1と、制御フロー解析手段2と、デー
タ依存解析手段3と、制御依存解析手段4と、依存グラ
フ作成手段5と、依存グラフ格納手段6と、プログラム
ブラウザ7と、命令選択手段8と、データ強調表示手段
9と、ネスト強調表示手段10と、表示手段11とを含
んで構成されている。
【0019】図2は、本実施例のプログラム影響範囲表
示装置の解析対象のソースプログラムの一例を示す図で
ある。
【0020】図3は、図2に示すソースプログラムに対
応する制御フローグラフを示す図である。
【0021】図4(a)〜(d)は、図3に示す制御フ
ローグラフに対するデータ依存解析の態様を示す図であ
る。
【0022】図5(a)〜(c)は、図3に示す制御フ
ローグラフに対する制御依存解析の態様を示す図であ
る。
【0023】図6は、図4(a)〜(d)に係るデータ
依存解析の解析結果および図5(a)〜(c)に係る制
御依存解析の解析結果に基づいて作成される依存グラフ
を示す図である。
【0024】図7は、本実施例のプログラム影響範囲表
示装置による強調表示処理を示す流れ図である。この処
理は、位置座標取得ステップ701と、起点ノード同定
ステップ702と、影響範囲表示種別判定ステップ70
3と、データ依存アーク指定ステップ704と、制御依
存アーク指定ステップ705と、データ依存アークおよ
び制御依存アーク指定ステップ706と、影響範囲ノー
ドマーク付けステップ707と、マーク付けノード存在
判定ステップ708と、ノード位置座標計算ステップ7
09と、強調表示ステップ710とからなる。
【0025】次に、このように構成された本実施例のプ
ログラム影響範囲表示装置の動作について説明する。
【0026】構文解析手段1は、あるプログラミング言
語で記述されたソースプログラムの構文解析を行う(ど
のプログラミング言語で記述されているかは任意であ
る)。ここでは、図2に示すようなソースプログラム
(C言語で記述されたソースプログラム)が解析対象に
なるものとする。
【0027】制御フロー解析手段2は、構文解析手段1
による構文解析の解析結果を入力として制御フロー解析
を行い、当該ソースプログラムの命令がノードで表現さ
れ制御フロー情報がアークで表現された制御フローグラ
フ(図3参照)を作成する。
【0028】なお、このような構文解析および制御フロ
ー解析は、例えば、「1990年,サイエンス社,コン
パイラ原理・技法・ツール,A.V.エイホ,R.セシ
ィ,J.D.ウルマン共著,原田賢一訳」(以下、参考
文献という)に示されている方法に基づいて行われる。
【0029】制御フローグラフとは、ソースプログラム
中の制御の流れに単一の入力ノードSTARTと単一の
出力ノードSTOPとが付加され、さらに、仮想的なノ
ードENTERと、ENTERからSTARTへのアー
クおよびENTERからSTOPへのアークとが付加さ
れた有向グラフである。
【0030】図2に示すソースプログラムに対しては、
図3に示すような制御フローグラフが作成される。
【0031】データ依存解析手段3は、制御フローグラ
フに対するデータ依存解析(当該ソースプログラムにお
けるデータ依存関係の解析)を行う。このデータ依存解
析は、従来より周知であるデータフロー解析の技術によ
って行われる。このようなデータフロー解析は、上述の
参考文献に示されている方法等に基づいて行われる。
【0032】例えば、データ依存解析手段3は、図3に
示す制御フローグラフに対しては、図4(a)〜(d)
に示すような態様で、データ依存解析を行う。以下に、
このデータ依存解析の内容について説明を加える。デー
タ依存解析手段3は、以下の〜の処理を行う。
【0033】 まず、準備処理を行う。
【0034】第1に、制御フローグラフの各ノードnに
ついて、以下の変数集合を求める。 ・use[n]…nにおいて参照(使用)される変数集
合 ・def[n]…nにおいて定義される変数集合
【0035】第2に、これらの変数集合(use[n]
およびdef[n])を用いることで、以下の集合を作
成しておく。 ・use′[n]…nとuse[n]に含まれる変数
(nで参照される変数)とのペアの集合 ・def′[n]…def[n]に含まれる変数(nで
定義される変数)を参照するノードmとその変数とのペ
アの集合
【0036】第3に、各ノードn毎に、以下の集合を用
意する。 ・in[n]…ノードnの入口で生きている変数を参照
するノードkとその変数とのペアの集合 ・out[n]…ノードnの出口で生きている変数を参
照するノードjとその変数とのペアの集合
【0037】 次に、以上の集合を用いてデータ依存
グラフ(データ依存関係を示すグラフ)を作成する。
【0038】第1に、in[n]を空集合に初期化す
る。
【0039】第2に、全てのin[n]に変化がなくな
るまで、以下の漸化式の適用を繰り返す。
【0040】
【数1】
【0041】このような漸化式の適用によって、最終的
に得られたout[n]は、先にも述べたように、ノー
ドnの出口で生きている変数を参照するノードjとその
変数とのペアの集合になる。
【0042】 最後に、「out[n]に含まれるペ
ア(ノードjと変数とのペア)であって当該変数がde
f[n]に含まれるペア」を求め、ノードnから当該ペ
ア中のノードjにデータ依存アークを張る(生成する)
ことで、データ依存グラフを作成する。
【0043】以上のアルゴリズムにおいては、漸化式の
適用の繰返しの過程で、どのnについてもout[n]
は決して小さくはならない。すなわち、out[n]に
新たなペアが加えられたならば、そのペアが削除される
ことはない。したがって、in[n]およびout
[n]は最終的に収束する(ノードと変数とのペアは有
限であるから、漸化式の適用の繰返しにおいて、最終的
に全てのnについてin[n]が変化しなくなる)。
【0044】図2に示すソースプログラムに対するデー
タ依存解析の過程を図4(a)〜(d)に示す。なお、
図4(a)〜(d)中では、破線によって、図3に示す
制御フローグラフを示している。
【0045】図4(a)は、上述の準備処理によって求
められるuse[n],def[n],use′[n]
およびdef′[n]を示す図である。図4(b)は、
上述の漸化式の適用の繰返しの途中の状態を示す図であ
る。図4(c)は、上述の漸化式の適用の繰返しの収束
状態(in[n]が変化しなくなった状態)を示す図で
ある。図4(d)は、図4(c)中のout[n]等に
基づいて生成されるデータ依存アークを実線の矢線で示
す図である。
【0046】制御依存解析手段4は、制御フローグラフ
に対して制御依存解析(当該ソースプログラムにおける
制御依存関係の解析)を行う。
【0047】この制御依存解析では、制御フローグラフ
から逆支配木が作成された後に、逆支配木から制御依存
関係が求められる。すなわち、制御依存解析手段4は、
以下のようにして制御依存解析を行う。
【0048】第1に、制御フローグラフから逆支配木を
作成する。
【0049】逆支配木とは、「制御フローグラフGにお
いて、ノードNからノードSTOPに至る全ての経路に
ノードMが含まれるならば、G中でMはNを逆支配す
る」という関係を木構造で表現したものである。参考文
献で示されている支配木を求めるアルゴリズムを制御フ
ローグラフの逆グラフに対して適用することにより、逆
支配木を求めることができる。
【0050】図5(a)は、図3に示す制御フローグラ
フに対する逆支配木を示す図である。
【0051】第2に、逆支配木から制御依存関係を求め
る。ここで、制御フローグラフG中のノードXおよびY
に対して、YがXに制御依存するのは、以下のおよび
に示す2つの条件を満たすときである。 XからYに至る経路P上のどのノードZ(Xおよび
Yを除く)もYに逆支配される(Yが逆支配するノード
のみを介してXからYに至る経路Pがある)。 XがYに逆支配されない。
【0052】制御依存関係の決定方法を以下に示す。
【0053】まず、制御フローグラフ中のノードAから
ノードBに至るアーク(A,B)の集合のうち、逆支配
木でBがAの祖先とならないような部分集合Sを求め
る。
【0054】図5(a)に示す逆支配木では、S=
{(ENTER,START),(3,4)}となる
(図5(b)参照)。
【0055】次に、逆支配木中でAとBとの共通の祖先
でかつ最もAとBとに近いノードをLとし、逆支配木中
でLからBに至る経路中のノード(LおよびSTART
を除く)にマーク付けを行う。なお、Aがループの入口
である時はL=Aとなるが、このときも同様のマーク付
けを行う。このマーク付けによって、マークの付けられ
たノードがノードAに制御依存するということが表され
る。
【0056】図5(b)は、図5(a)に示す逆支配木
に対する上述のマーク付けの内容を示す図である。
【0057】第3に、マーク付けの内容に基づいて、制
御依存グラフ(制御依存関係を示すグラフ)を作成す
る。
【0058】図5(c)は、図5(a)に示す逆支配木
および図5(b)に示すマーク付けの内容に対応する制
御依存グラフを示す図である。
【0059】図5(c)の制御依存グラフによって、ノ
ードとノードとがノードに制御依存することが示
される。なお、制御依存グラフにおいて、あるノード
(図5(c)ではノード,ノードおよびノード)
がENTERに制御依存するということは、そのノード
が制御依存するノードが存在しないということを示して
いる。
【0060】依存グラフ作成手段5は、データ依存解析
手段3の解析結果(データ依存グラフ)と制御依存解析
手段4の解析結果(制御依存グラフ)とを統合して依存
グラフを作成し、その依存グラフを依存グラフ格納手段
6に格納する。
【0061】図6は、図4(d)に示すデータ依存グラ
フと図5(c)に示す制御依存グラフとが統合されて作
成された依存グラフを示す図である。
【0062】以上のようにして作成された依存グラフ
(依存グラフ格納手段6内の依存グラフ)の存在を前提
として、解析対象のソースプログラムの強調表示処理が
行われる。以下に、図7を参照して、本実施例のプログ
ラム影響範囲表示装置における強調表示処理時の動作に
ついて説明する。
【0063】表示手段11は、解析対象のソースプログ
ラムをプログラムブラウザ7の画面上に表示する。
【0064】利用者は、プログラムブラウザ7に対し
て、マウス等の入力装置を用いて、以下の〜の内容
を指定する。なお、の指定については、プログラムブ
ラウザ7の画面上の起点命令の位置の指定によって実現
される。また、の指定に関しては、予めその指定内容
を本実施例のプログラム影響範囲表示装置に固有の情報
としておいて、その指定を不要にすることも可能であ
る。 表示すべき影響範囲の起点となる命令である起点命
令 影響範囲表示種別(データ依存関係に関する影響範
囲のみの表示を行うか、制御依存関係に関する影響範囲
のみの表示を行うか、データ依存関係および制御依存関
係の両方に関する影響範囲の表示を行うかを示す情報) 影響範囲として表示すべき範囲を示す情報、すなわ
ち依存グラフにおいてアークを推移的にたどる際の方向
およびアーク数
【0065】プログラムブラウザ7は、これらの指定を
検知して、プログラムブラウザ7の画面上の起点命令を
示す位置座標(x座標およびy座標)を取得する(ステ
ップ701)。
【0066】命令選択手段8は、ステップ701で取得
された位置座標によって特定される起点命令に対応する
依存グラフ中のノード(起点ノード)を同定(選択)す
る(ステップ702)。
【0067】一方、プログラムブラウザ7は、利用者に
より指定された影響範囲表示種別を判別する(ステップ
703)。すなわち、影響範囲表示種別が、データ依存
関係に関する影響範囲のみの表示を示す種別(以下、単
に「データ依存関係」という)であるか、制御依存関係
に関する影響範囲のみの表示を示す種別(以下、単に
「制御依存関係」という)であるか、データ依存関係お
よび制御依存関係の両方に関する影響範囲の表示を示す
種別(以下、単に「データ依存関係・制御依存関係」と
いう)であるかを判定する。
【0068】ステップ703で「影響範囲表示種別がデ
ータ依存関係である」と判定された場合には、強調表示
の対象のアーク種別(依存グラフ中のデータ依存アーク
または制御依存アークを示す情報)としてデータ依存ア
ークが指定されて、データ強調表示手段9が起動される
(ステップ704)。
【0069】ステップ703で「影響範囲表示種別が制
御依存関係である」と判定された場合には、強調表示の
対象のアーク種別として制御依存アークが指定されて、
ネスト強調表示手段10が起動される(ステップ70
5)。
【0070】ステップ703で「影響範囲表示種別がデ
ータ依存関係・制御依存関係である」と判定された場合
には、強調表示の対象のアーク種別としてデータ依存ア
ークと制御依存アークとの両方が指定されて、データ強
調表示手段9およびネスト強調表示手段10が起動され
る(ステップ706)。このように、データ強調表示手
段9とネスト強調表示手段10とを同時に用いることも
可能である。
【0071】次に、ステップ704〜706で起動され
たデータ強調表示手段9およびネスト強調表示手段10
の一方または両方(以下、起動強調表示手段という)
は、起点ノードを出発点(起点)として、依存グラフ中
においてステップ704〜706で指定されたアーク種
別に合致するアークを逆方向または正方向(どちらの方
向かは利用者からの指定による)に所定のアーク数(ど
れだけのアーク数であるかは利用者からの指定による)
だけ推移的にたどることにより、影響範囲の対象となる
ノード集合に属する各ノードにマーク付けを行う(ステ
ップ707)。
【0072】さらに、起動強調表示手段は、マーク付け
がなされた各ノードに対して以下の処理を繰り返す(ス
テップ708で「マーク付けがなされたノードがもう存
在しない」と判定するまで処理を繰り返す)。
【0073】まず、当該ノードに対応する命令のプログ
ラムブラウザ7の画面上の位置座標を計算する(ステッ
プ709)。
【0074】次に、ステップ709で計算した位置座標
で特定される命令の強調表示を行う(ステップ71
0)。強調表示の態様としては、当該命令を反転表示す
ることや、当該命令の位置の背景色や前景色の色を変化
させること等が考えられる(請求項7記載の発明参
照)。
【0075】なお、以上の第1の実施例は、請求項3記
載の発明に対応するものである。この実施例について
は、以下のおよびに示すようなバリエーションが考
えられる。
【0076】 データ依存グラフのみからなる依存グ
ラフが作成され、データ強調表示手段9による強調表示
のみが行われる。なお、データ依存関係に関する影響範
囲の強調表示だけが行われるので、利用者からの影響範
囲表示種別の指定は不要になる。このバリエーション
は、請求項1記載の発明に対応する。
【0077】 制御依存グラフのみからなる依存グラ
フが作成され、ネスト強調表示手段10による強調表示
のみが行われる。なお、制御依存関係に関する影響範囲
の強調表示だけが行われるので、利用者からの影響範囲
表示種別の指定は不要になる。このバリエーションは、
請求項2記載の発明に対応する。
【0078】図8は、本発明のプログラム影響範囲表示
装置の第2の実施例の構成を示すブロック図である。
【0079】本実施例のプログラム影響範囲表示装置
は、第1の実施例(図1参照)に対して、表示限定手段
101が付加されている。
【0080】次に、このように構成された本実施例のプ
ログラム影響範囲表示装置の動作について説明する。
【0081】構文解析手段1,制御フロー解析手段2,
データ依存解析手段3,制御依存解析手段4,依存グラ
フ作成手段5および依存グラフ格納手段6に関する動作
(依存グラフの作成に関する動作)は、第1の実施例と
同様である。
【0082】依存グラフ格納手段6内の依存グラフの存
在を前提として、解析対象のソースプログラムの強調表
示処理が行われる。以下に、本実施例のプログラム影響
範囲表示装置における強調表示処理時の動作について説
明する。
【0083】表示手段11は、解析対象のソースプログ
ラムを内部データ領域に内部データとして出力する。
【0084】表示限定手段101は、利用者から指定さ
れる限定情報(解析対象のソースプログラム中の特定の
モジュールまたは特定の段落等を示す情報)を受け取
り、内部データ領域内のソースプログラム中で当該限定
情報に合致した部分のみをプログラムブラウザ7の画面
上に表示する。
【0085】利用者は、プログラムブラウザ7に対し
て、マウス等の入力装置を用いて、第1の実施例の説明
で述べた〜の内容の指定を行う。
【0086】命令選択手段8は、第1の実施例と同様
に、プログラムブラウザ7を通じて起点命令の指定を受
け取ると、依存グラフ格納手段6内の依存グラフにおい
て起点ノードを選択する。
【0087】データ強調表示手段9は、利用者からの
「データ依存関係」または「データ依存関係・制御依存
関係」を示す影響範囲表示種別の指定によって起動さ
れ、起点ノードを出発点として依存グラフを走査するこ
とにより、表示限定手段101による限定(利用者から
指定された限定情報)に合致した範囲で、データ依存関
係に関する起点命令の影響範囲(利用者からの「影響範
囲として表示すべき範囲を示す情報」の指定に応じた影
響範囲)に含まれる命令群をプログラムブラウザ7の画
面上で強調表示する。ここで、強調表示の態様は、第1
の実施例と同様である。
【0088】ネスト強調表示手段10は、利用者からの
「制御依存関係」または「データ依存関係・制御依存関
係」を示す影響範囲表示種別の指定によって起動され、
起点ノードを出発点として依存グラフを走査することに
より、表示限定手段101による限定(利用者から指定
された限定情報)に合致した範囲で、制御依存関係に関
する起点命令の影響範囲(利用者からの「影響範囲とし
て表示すべき範囲を示す情報」の指定に応じた影響範
囲)に含まれる命令群をプログラムブラウザ7の画面上
で強調表示する。ここで、強調表示の態様は、第1の実
施例と同様である。
【0089】なお、第1の実施例で述べたように、デー
タ強調表示手段9とネスト強調表示手段10とを同時に
起動することも可能である。また、第1の実施例で言及
したバリエーションと同様のバリエーションが、第2の
実施例でも考えられる。
【0090】図9は、本発明のプログラム影響範囲表示
装置の第3の実施例の構成を示すブロック図である。
【0091】本実施例のプログラム影響範囲表示装置
は、第1の実施例(図1参照)に対して、強調情報転送
手段201と編集手段202とが付加されている。
【0092】次に、このように構成された本実施例のプ
ログラム影響範囲表示装置の動作について説明する。
【0093】構文解析手段1,制御フロー解析手段2,
データ依存解析手段3,制御依存解析手段4,依存グラ
フ作成手段5および依存グラフ格納手段6に関する動作
(依存グラフの作成に関する動作)は、第1の実施例と
同様である。
【0094】また、プログラムブラウザ7を通じて行わ
れる命令選択手段8,データ強調表示手段9,ネスト強
調表示手段10および表示手段11の動作(強調表示処
理時の動作)も、第1の実施例と同様である。
【0095】強調情報転送手段201は、プログラムブ
ラウザ7の画面上で強調表示されているソースプログラ
ム中の命令群(当該ソースプログラムの部分集合)を編
集手段202に転送する。
【0096】編集手段202は、その命令群(ソースプ
ログラムの部分集合)に対する編集,追加,削除,変更
および印刷等の機能を有し、当該編集等を行う。このよ
うな編集等は、既存のソースプログラムから仕様書を作
成する作業等を効率化するために有益となる。
【0097】図10は、本発明のプログラム影響範囲表
示装置の第4の実施例の構成を示すブロック図である。
【0098】本実施例のプログラム影響範囲表示装置
は、第3の実施例(図9参照)に対して、日本語化手段
301と日本語情報格納手段302とが付加されてい
る。
【0099】次に、このように構成された本実施例のプ
ログラム影響範囲表示装置の動作について説明する。
【0100】構文解析手段1,制御フロー解析手段2,
データ依存解析手段3,制御依存解析手段4,依存グラ
フ作成手段5および依存グラフ格納手段6に関する動作
(依存グラフの作成に関する動作)は、第3の実施例、
すなわち第1の実施例と同様である。
【0101】また、プログラムブラウザ7を通じて行わ
れる命令選択手段8,データ強調表示手段9,ネスト強
調表示手段10および表示手段11の動作(強調表示処
理時の動作)も、第3の実施例、すなわち第1の実施例
と同様である。
【0102】日本語化手段301は、構文解析手段1の
解析結果である中間データ中の変数を、利用者から指定
される情報または予め設定されている情報を基に、対話
的に日本語に変換し、変換前後の情報を日本語情報格納
手段302に格納する。
【0103】強調情報転送手段201は、プログラムブ
ラウザ7の画面上で強調表示されているソースプログラ
ムの部分集合の中に、日本語情報格納手段302に格納
されている変数が存在するか否かを判定する。
【0104】強調情報転送手段201は、この判定で日
本語情報格納手段302内の変数を当該部分集合におい
て検出した場合には、日本語情報格納手段302内の情
報に基づいてその変数を日本語に変換してから、変換後
の部分集合を編集手段202に転送する(上述の判定で
日本語情報格納手段302内の変数を当該部分集合にお
いて検出しなかった場合には、当該部分集合をそのまま
編集手段202に転送する)。
【0105】編集手段202は、第3の実施例と同様
に、その部分集合に対する編集,追加,削除,変更およ
び印刷等の処理を行う。
【0106】なお、第2の実施例における限定表示と第
3の実施例または第4の実施例における編集等とを組み
合わせることも可能である。
【0107】
【発明の効果】以上説明したように本発明は、利用者か
らの起点命令の指定に基づいて依存グラフ格納手段内の
依存グラフを検索・走査することにより、利用者がソー
スプログラム中で指定した特定の命令(起点命令)の影
響範囲の解析およびその解析結果の表示が可能となり、
しかもそのような指定,解析および表示を対話的に行う
ことができるという効果を有する。
【0108】なお、依存グラフ格納手段内の依存グラフ
は制御フローグラフに対するデータ依存解析手段による
データ依存解析と制御依存解析手段による制御依存解析
とに基づいて作成され、その依存グラフが使用されて上
述の影響範囲の解析および表示が行われるので、このよ
うな影響範囲の解析および表示を正確に行うことが保証
される。
【0109】以上のような効果により、ソースプログラ
ムの理解作業,保守作業および改造作業等を効率化する
ことができるようになる。
【0110】また、表示限定手段を設けることにより
(請求項4記載の発明および第2の実施例参照)、効率
的な強調表示を実現することができるという効果があ
る。
【0111】さらに、強調情報転送手段および編集手段
を設けてソースプログラム中の影響範囲の編集等を可能
にすることにより(請求項5および請求項6記載の発明
ならびに第3および第4の実施例参照)、既存のソース
プログラムから仕様書を作成する作業等を効率化するこ
とができるという効果がある。
【図面の簡単な説明】
【図1】本発明のプログラム影響範囲表示装置の第1の
実施例の構成を示すブロック図である。
【図2】図1,図8,図9および図10に示すプログラ
ム影響範囲表示装置における解析対象のソースプログラ
ムの一例を示す図である。
【図3】図1,図8,図9および図10中の制御フロー
解析手段で生成される制御フローグラフの一例を示す図
である。
【図4】図1,図8,図9および図10中のデータ依存
解析手段におけるデータ依存解析の態様の一例を示す図
である。
【図5】図1,図8,図9および図10中の制御依存解
析手段における制御依存解析の態様の一例を示す図であ
る。
【図6】図1,図8,図9および図10中の依存グラフ
作成手段で作成される依存グラフの一例を示す図であ
る。
【図7】図1に示すプログラム影響範囲表示装置による
強調表示処理を示す流れ図である。
【図8】本発明のプログラム影響範囲表示装置の第2の
実施例の構成を示すブロック図である。
【図9】本発明のプログラム影響範囲表示装置の第3の
実施例の構成を示すブロック図である。
【図10】本発明のプログラム影響範囲表示装置の第4
の実施例の構成を示すブロック図である。
【符号の説明】
1 構文解析手段 2 制御フロー解析手段 3 データ依存解析手段 4 制御依存解析手段 5 依存グラフ作成手段 6 依存グラフ格納手段 7 プログラムブラウザ 8 命令選択手段 9 データ強調表示手段 10 ネスト強調表示手段 11 表示手段 101 表示限定手段 201 強調情報転送手段 202 編集手段 301 日本語化手段 302 日本語情報格納手段
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G06F 11/28 7737−5B G06F 9/44 322B

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムの構文解析の解析結果
    に基づく制御フロー解析により制御フローグラフを作成
    する制御フロー解析手段と、 前記制御フロー解析手段により作成された制御フローグ
    ラフに対するデータ依存解析を行うデータ依存解析手段
    と、 前記データ依存解析手段によるデータ依存解析に基づい
    て依存グラフを作成する依存グラフ作成手段と、 プログラムブラウザの画面上に解析対象のソースプログ
    ラムを表示する表示手段と、 プログラムブラウザを通じて利用者から指定された起点
    命令に対応する起点ノードを前記依存グラフ作成手段に
    より作成された依存グラフにおいて選択する命令選択手
    段と、 前記命令選択手段により選択された起点ノードからの依
    存グラフの走査に基づいてソースプログラム中で起点命
    令とデータ依存関係にある命令群をプログラムブラウザ
    の画面上で強調表示するデータ強調表示手段とを有する
    ことを特徴とするプログラム影響範囲表示装置。
  2. 【請求項2】 ソースプログラムの構文解析の解析結果
    に基づく制御フロー解析により制御フローグラフを作成
    する制御フロー解析手段と、 前記制御フロー解析手段により作成された制御フローグ
    ラフに対する制御依存解析を行う制御依存解析手段と、 前記制御依存解析手段による制御依存解析に基づいて依
    存グラフを作成する依存グラフ作成手段と、 プログラムブラウザの画面上に解析対象のソースプログ
    ラムを表示する表示手段と、 プログラムブラウザを通じて利用者から指定された起点
    命令に対応する起点ノードを前記依存グラフ作成手段に
    より作成された依存グラフにおいて選択する命令選択手
    段と、 前記命令選択手段により選択された起点ノードからの依
    存グラフの走査に基づいてソースプログラム中で起点命
    令と制御依存関係にある命令群をプログラムブラウザの
    画面上で強調表示するネスト強調表示手段とを有するこ
    とを特徴とするプログラム影響範囲表示装置。
  3. 【請求項3】 ソースプログラムの構文解析の解析結果
    に基づく制御フロー解析により制御フローグラフを作成
    する制御フロー解析手段と、 前記制御フロー解析手段により作成された制御フローグ
    ラフに対するデータ依存解析を行うデータ依存解析手段
    と、 前記制御フロー解析手段により作成された制御フローグ
    ラフに対する制御依存解析を行う制御依存解析手段と、 前記データ依存解析手段によるデータ依存解析の解析結
    果と前記制御依存解析手段による制御依存解析の解析結
    果とを統合して依存グラフを作成する依存グラフ作成手
    段と、 プログラムブラウザの画面上に解析対象のソースプログ
    ラムを表示する表示手段と、 プログラムブラウザを通じて利用者から指定された起点
    命令に対応する起点ノードを前記依存グラフ作成手段に
    より作成された依存グラフにおいて選択する命令選択手
    段と、 利用者から指定される影響範囲表示種別がデータ依存関
    係に関する影響範囲の表示を示すものである場合に、前
    記命令選択手段により選択された起点ノードからの依存
    グラフの走査に基づいてソースプログラム中で起点命令
    とデータ依存関係にある命令群をプログラムブラウザの
    画面上で強調表示するデータ強調表示手段と、 利用者から指定される影響範囲表示種別が制御依存関係
    に関する影響範囲の表示を示すものである場合に、前記
    命令選択手段により選択された起点ノードからの依存グ
    ラフの走査に基づいてソースプログラム中で起点命令と
    制御依存関係にある命令群をプログラムブラウザの画面
    上で強調表示するネスト強調表示手段とを有することを
    特徴とするプログラム影響範囲表示装置。
  4. 【請求項4】 ソースプログラムのプログラムブラウザ
    への表示の代わりに、ソースプログラムを内部データ領
    域に内部データとして出力する表示手段と、 利用者から指定される限定情報を受け取り、内部データ
    領域内のソースプログラム中で当該限定情報に合致した
    部分のみをプログラムブラウザの画面上に表示し、強調
    表示についても当該限定情報に合致した部分のみの強調
    表示を行う表示限定手段とを有することを特徴とする請
    求項1,請求項2または請求項3記載のプログラム影響
    範囲表示装置。
  5. 【請求項5】 プログラムブラウザの画面上で強調表示
    されているソースプログラムの部分集合に対する編集,
    追加,削除,変更および印刷を行う編集手段と、 プログラムブラウザの画面上で強調表示されているソー
    スプログラムの部分集合を前記編集手段に転送する強調
    情報転送手段とを有することを特徴とする請求項1,請
    求項2または請求項3記載のプログラム影響範囲表示装
    置。
  6. 【請求項6】 ソースプログラムの構文解析の解析結果
    である中間データ中の変数を日本語に変換し、変換前後
    の情報を日本語情報格納手段に格納する日本語化手段
    と、 プログラムブラウザの画面上で強調表示されているソー
    スプログラムの部分集合の中に前記日本語情報格納手段
    に格納されている変数が存在する場合に、前記日本語情
    報格納手段内の情報に基づいてその変数を日本語に変換
    してから当該部分集合を編集手段に転送する強調情報転
    送手段とを有することを特徴とする請求項5記載のプロ
    グラム影響範囲表示装置。
  7. 【請求項7】 強調表示の態様が「強調表示の対象の命
    令を反転表示すること」および「当該命令の位置の背景
    色や前景色の色を変化させること」のいずれかであるこ
    とを特徴とする請求項1,請求項2,請求項3,請求項
    4,請求項5または請求項6記載のプログラム影響範囲
    表示装置。
JP7123123A 1995-04-24 1995-04-24 プログラム影響範囲表示装置 Pending JPH08292881A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7123123A JPH08292881A (ja) 1995-04-24 1995-04-24 プログラム影響範囲表示装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7123123A JPH08292881A (ja) 1995-04-24 1995-04-24 プログラム影響範囲表示装置

Publications (1)

Publication Number Publication Date
JPH08292881A true JPH08292881A (ja) 1996-11-05

Family

ID=14852760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7123123A Pending JPH08292881A (ja) 1995-04-24 1995-04-24 プログラム影響範囲表示装置

Country Status (1)

Country Link
JP (1) JPH08292881A (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1195996A (ja) * 1997-09-24 1999-04-09 Nippon Steel Corp 冗長コード検査装置
JPH11224186A (ja) * 1998-02-05 1999-08-17 Nippon Steel Corp ソフトウェア解析装置及びソフトウェア解析方法
JP2000029742A (ja) * 1998-05-21 2000-01-28 Lucent Technol Inc オ―プンシステムを閉じる方法
JP2006323480A (ja) * 2005-05-17 2006-11-30 Mitsubishi Electric Corp 解析支援装置
JP2007199800A (ja) * 2006-01-24 2007-08-09 Hitachi Software Eng Co Ltd デグレート防止支援プログラムおよびデグレート防止支援方法
US7363613B2 (en) 2003-06-23 2008-04-22 International Business Machines Corporation Program maintenance support device, program maintenance supporting method, and program for the same
JP2012164264A (ja) * 2011-02-09 2012-08-30 Mitsubishi Electric Corp プログラム解析装置およびプログラム解析プログラム
JP2012247881A (ja) * 2011-05-26 2012-12-13 Hitachi Ltd 影響分析方法および影響分析プログラム
JP2012256178A (ja) * 2011-06-08 2012-12-27 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2013030196A (ja) * 2012-10-24 2013-02-07 Toshiba Mitsubishi-Electric Industrial System Corp プログラム編集装置
JP2017004282A (ja) * 2015-06-11 2017-01-05 日本電気通信システム株式会社 プログラム表示装置、プログラム表示システム、プログラム表示方法、及びプログラム表示プログラム
CN108287695A (zh) * 2017-01-09 2018-07-17 罗伯特·博世有限公司 用于检测信号的方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1195996A (ja) * 1997-09-24 1999-04-09 Nippon Steel Corp 冗長コード検査装置
JPH11224186A (ja) * 1998-02-05 1999-08-17 Nippon Steel Corp ソフトウェア解析装置及びソフトウェア解析方法
JP2000029742A (ja) * 1998-05-21 2000-01-28 Lucent Technol Inc オ―プンシステムを閉じる方法
US8006229B2 (en) 2003-06-23 2011-08-23 International Business Machines Corporation Program maintenance support device and program for the same
US8185878B2 (en) 2003-06-23 2012-05-22 International Business Machines Corporation Program maintenance support device, program maintenance supporting method, and program for the same
US7363613B2 (en) 2003-06-23 2008-04-22 International Business Machines Corporation Program maintenance support device, program maintenance supporting method, and program for the same
JP2006323480A (ja) * 2005-05-17 2006-11-30 Mitsubishi Electric Corp 解析支援装置
JP2007199800A (ja) * 2006-01-24 2007-08-09 Hitachi Software Eng Co Ltd デグレート防止支援プログラムおよびデグレート防止支援方法
JP2012164264A (ja) * 2011-02-09 2012-08-30 Mitsubishi Electric Corp プログラム解析装置およびプログラム解析プログラム
JP2012247881A (ja) * 2011-05-26 2012-12-13 Hitachi Ltd 影響分析方法および影響分析プログラム
JP2012256178A (ja) * 2011-06-08 2012-12-27 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2013030196A (ja) * 2012-10-24 2013-02-07 Toshiba Mitsubishi-Electric Industrial System Corp プログラム編集装置
JP2017004282A (ja) * 2015-06-11 2017-01-05 日本電気通信システム株式会社 プログラム表示装置、プログラム表示システム、プログラム表示方法、及びプログラム表示プログラム
CN108287695A (zh) * 2017-01-09 2018-07-17 罗伯特·博世有限公司 用于检测信号的方法
JP2018113033A (ja) * 2017-01-09 2018-07-19 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 信号を収集する方法

Similar Documents

Publication Publication Date Title
US8234625B2 (en) Optimized look-up table calculations in block diagram software
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
EP0690378A1 (en) Tool and method for diagnosing and correcting errors in a computer programm
US5852564A (en) Method and apparatus for interactively displaying signal information during computer simulation of an electrical circuit
US8823738B1 (en) Merging electronic diagrams
JPH09134282A (ja) プログラム作成方法
JPH04337843A (ja) プログラム動作表示方法
JPH07182147A (ja) コンピュータプログラムを発生する方法及びシステム
JPH08292881A (ja) プログラム影響範囲表示装置
JP5147240B2 (ja) リバーシブルなデザイン・ツリーの変換のための方法とシステム
US5634024A (en) Definition execution system for operations and functions in computer system
JPH0863346A (ja) プログラム編集方法とその装置
US8798971B2 (en) System and method for using a truth table graphical function in a statechart
Gunter et al. Path exploration tool
JP2008059515A (ja) プログラム実行過程の表示方法及びシステム並びにプログラム
Eckstein et al. Interactive data inspection and program development for computer vision
JPH09101880A (ja) プログラム分析装置
JP2001142688A (ja) プログラム分析装置及び記録媒体
EP0410062A2 (en) Dynamic selection of logical element data format
JPH05181652A (ja) プログラムリバース装置
JPH05298082A (ja) プログラム編集装置及びその方法
JPH11237984A (ja) オブジェクト指向プログラム設計支援装置、方法および記録媒体
JPH08153162A (ja) オンライン手書き文字入力方法
CN117632248A (zh) 一种自适应的函数调用图生成方法及终端
JPH1115812A (ja) システム検討シミュレータの制御方法