JPH10283175A - プログラム解析装置、プログラム解析方法及びソースプログラム解析用プログラム記録媒体 - Google Patents
プログラム解析装置、プログラム解析方法及びソースプログラム解析用プログラム記録媒体Info
- Publication number
- JPH10283175A JPH10283175A JP9082502A JP8250297A JPH10283175A JP H10283175 A JPH10283175 A JP H10283175A JP 9082502 A JP9082502 A JP 9082502A JP 8250297 A JP8250297 A JP 8250297A JP H10283175 A JPH10283175 A JP H10283175A
- Authority
- JP
- Japan
- Prior art keywords
- program
- procedure
- statement
- output
- input
- 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.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
クセスの状況を正確かつ高速に、さらに人間が理解しや
すいように出力するプログラム解析装置を提供するこ
と。 【解決手段】 プログラム受付手段2がソースプログラ
ム1の入力を受け付けると、構造抽出手段3が、ソース
プログラム1の制御構造を決定する文と入出力文と手続
きとを抽出し、プログラム基本構造4を生成する。構造
展開手段5は、プログラム基本構造4に、離れて記述さ
れた手続きを呼び出す手続き呼出が含まれている場合
に、その手続きを手続き呼出の直後に挿入して、プログ
ラム展開構造6を生成する。削除手段7はプログラム展
開構造6から入出力文に関与しない文を削除し、アクセ
ス構造8を生成する。そして、出力手段9がアクセス構
造8を出力する。
Description
置、プログラム解析方法及びコンピュータをプログラム
解析装置として機能させるためのプログラムを記録した
記録媒体に関し、特にプログラム言語にて記述されたソ
ースプログラムを解析するプログラム解析装置、プログ
ラム言語にて記述されたソースプログラムを解析するプ
ログラム解析方法及びコンピュータを、プログラム言語
にて記述されたソースプログラムを解析するプログラム
解析装置として機能させるためのプログラムを記録した
ソースプログラム解析用プログラム記録媒体に関する。
グラムを実行する場合、その実行にかかる時間は、ファ
イルアクセスのための時間に左右されることが多い。こ
のためデータファイルは、記憶装置の中でも同時にアク
セスされる他のデータファイルと近い場所に格納された
り、アクセス頻度の高い順に速くアクセスできる場所に
格納されたりする。
につれ、ファイルの効率的な格納は難しくなる。そし
て、ファイルを効率的に格納し直したい場合には、その
記憶装置にアクセスするすべてのプログラムが、どのよ
うな順番でどのファイルにアクセスするかを調べなけれ
ばならない。従来この解析作業は、人間の手作業でのみ
行っていた。
ログラムすべてを人間の手作業で解析し、そのアクセス
状況を調べると、莫大な時間や費用がかかったり、正確
性を欠いたりしてしまうという問題点があった。
のであり、プログラムのソースファイルからファイルア
クセスの状況を、正確に、かつ高速に、さらに人間が理
解しやすいように出力するプログラム解析装置を提供す
ることを目的とする。
ソースファイルからファイルアクセスの状況を、正確
に、かつ高速に、さらに人間が理解しやすいように出力
するプログラム解析方法を提供することである。
タを、プログラムのソースファイルからファイルアクセ
スの状況を、正確に、かつ高速に、さらに人間が理解し
やすいように出力するプログラム解析装置として機能さ
せるためのプログラムを記録したソースプログラム解析
用プログラム記録媒体を提供することである。
決するために、プログラム言語にて記述されたソースプ
ログラムを解析するプログラム解析装置において、前記
ソースプログラムの入力を受け付けるプログラム受付手
段と、前記ソースプログラムから、前記ソースプログラ
ムの制御構造を決定する文と入出力文と手続きとを抽出
し、プログラム基本構造とする構造抽出手段と、前記プ
ログラム基本構造に、離れて記述された手続きを呼び出
す手続き呼出が含まれている場合に、前記手続きを前記
手続き呼出の直後に挿入し、プログラム展開構造とする
構造展開手段と、前記プログラム展開構造から前記入出
力文に関与しない文を削除し、アクセス構造とする削除
手段と、前記アクセス構造を出力する出力手段と、を有
することを特徴とするプログラム解析装置が提供され
る。
ラム言語にて記述されたソースプログラムを解析する場
合、プログラム受付手段がソースプログラムの入力を受
け付ける。また、構造抽出手段が、ソースプログラムか
ら、ソースプログラムの制御構造を決定する文と入出力
文と手続きとを抽出し、プログラム基本構造とする。構
造展開手段は、プログラム基本構造に、離れて記述され
た手続きを呼び出す手続き呼出が含まれている場合に、
その手続きを手続き呼出の直後に挿入してプログラム展
開構造とする。削除手段は、プログラム展開構造から入
出力文に関与しない文を削除し、アクセス構造とする。
そして、出力手段はアクセス構造を出力する。
プログラムを解析すると、ソースプログラム中に、離れ
た手続きを呼び出す手続き呼出が含まれている場合で
も、その手続き順序に対応してアクセス状況を解析、出
力することができる。
に、プログラム言語にて記述されたソースプログラムを
解析するプログラム解析方法において、前記ソースプロ
グラムの入力を受け付け、前記ソースプログラムから、
前記ソースプログラムの制御構造を決定する文と入出力
文と手続きとを抽出してプログラム基本構造とし、前記
プログラム基本構造に、離れて記述された手続きを呼び
出す手続き呼出が含まれている場合には、前記手続きを
前記手続き呼出の直後に挿入し、前記入出力文に関与し
ない文を削除して、出力することを特徴とするプログラ
ム解析方法が提供される。
グラム言語にて記述されたソースプログラムを解析する
場合、まずソースプログラムを受け付け、受け付けたソ
ースプログラムから、ソースプログラムの制御構造を決
定する文と入出力文と手続きとを抽出してプログラム基
本構造とし、このプログラム基本構造に、離れて記述さ
れた手続きを呼び出す手続き呼出が含まれていれば、そ
の手続きを手続き呼出の直後に挿入してから、入出力に
関与しない文を削除して、出力する。
プログラムを解析すると、ソースプログラム中に、離れ
た手続きを呼び出す手続き呼出が含まれている場合で
も、その手続き順序に対応してアクセス状況を解析、出
力することができる。
めに、コンピュータを、プログラム言語にて記述された
ソースプログラムを解析するプログラム解析装置として
機能させるためのプログラムを記録したソースプログラ
ム解析用プログラム記録媒体において、前記ソースプロ
グラムの入力を受け付けるプログラム受付手段と、前記
ソースプログラムから、前記ソースプログラムの制御構
造を決定する文と入出力文と手続きとを抽出し、プログ
ラム基本構造とする構造抽出手段と、前記プログラム基
本構造に、離れて記述された手続きを呼び出す手続き呼
出部が含まれている場合に、前記手続きを前記手続き呼
出部に挿入し、プログラム展開構造とする構造展開手段
と、前記プログラム展開構造から前記入出力文に関与し
ない文を削除し、アクセス構造とする削除手段と、前記
アクセス構造を出力する出力手段と、としてコンピュー
タを機能させるためのソースプログラム解析用プログラ
ム記録媒体が提供される。
ラム記録媒体にて、コンピュータを、プログラム言語に
て記述されたソースプログラムを解析するプログラム解
析装置として機能させる場合、コンピュータは、ソース
プログラムの入力を受け付ける機能と、ソースプログラ
ムから、ソースプログラムの制御構造を決定する文と入
出力文と手続きとを抽出し、プログラム基本構造とする
機能と、プログラム基本構造に、離れて記述された手続
きを呼び出す手続き呼出部が含まれている場合に、その
手続きを手続き呼出部に挿入し、プログラム展開構造と
する機能と、プログラム展開構造から入出力文に関与し
ない文を削除し、アクセス構造とする機能と、アクセス
構造を出力する機能とを実現する。
ラム記録媒体にてコンピュータをプログラム解析装置と
して機能させると、プログラム中に、離れた手続きを呼
び出す手続き呼出が含まれている場合でも、その手続き
順序に対応してアクセス状況を解析、出力することがで
きる。
を参照して説明する。図1は、本発明のプログラム解析
装置の原理構成を示したブロック図である。
ム受付手段2と、構造抽出手段3と、構造展開手段5
と、削除手段7と、出力手段9とから構成される。プロ
グラム受付手段2は、プログラム言語にて記述されたソ
ースプログラム1の入力を受け付ける。構造抽出手段3
は、受け付けたソースプログラム1から、ソースプログ
ラム1の制御構造を決定する文と入出力文と手続きとを
抽出して、プログラム基本構造4を生成する。構造展開
手段5は、プログラム基本構造4に、離れて記述された
手続きを呼び出す手続き呼出部が含まれている場合に、
その手続きを手続き呼出部の直後に挿入して、プログラ
ム展開構造6を生成する。削除手段7は、プログラム展
開構造6から入出力文に関与しない文を削除して、アク
セス構造8を生成する。出力手段9は、生成されたアク
セス構造8を出力する。
挿入部5bとから構成される。置換部5aは、プログラ
ムの制御構造を決定する文に含まれる手続き呼出にて指
定される手続き名を、その手続き名の行番号に置き換え
る。そして、挿入部5bは、呼び出されている手続き
を、手続き呼出の直後に挿入する。
9から出力する際、プログラム言語のまま出力する方法
と、アクセス構造8からファイルアクセスの様子を示す
アクセス表を生成して、このアクセス表を出力する方法
とが選択できる。
プログラム1の解析を行うと、ソースプログラム1の中
に、離れた手続きを呼び出す手続き呼出が含まれている
場合でも、その手続き順序に対応してアクセス状況を解
析、出力することができる。
実際にプログラム解析を行う場合の解析の様子を、例を
挙げて説明する。図2〜図5は、ソースプログラム1の
例を示す図である。
0(4/4)は、プログラム言語「COBOL」にて記
述されている。プログラム10の各行左側に添えてある
のは行番号で、プログラム10が行番号「000100」〜行
番号「014200」にて構成されていることが判る。
は、プログラム10全体の概要を示す見出し部11であ
る。見出し部11に含まれた行番号「000300」の「PROF
GRAM-ID PROG001 」にて、プログラム10の名称「PROG
001 」を宣言している。
る計算機の機器構成やハードウェアに依存する内容を示
す環境部12であり、行番号「001200」〜「002900」
は、手続き対象のデータやファイルの構造を示すデータ
部13である。そして、行番号「003100」以降が、実行
すべき内容を示す手続き部14である。なお、行番号の
直後に「*」が示してある文はコメント文である。
は細かく分かれている。すなわち、行番号「003100」〜
「004200」は、このプログラム10の主体部141であ
る。また、行番号「004400」〜「005100」は、このプロ
グラム10の第1のサブルーチン142であって、名称
「PROC-RTN」を持つ。行番号「005300」〜「007300」
は、このプログラム10の第2のサブルーチン143で
あって、名称「PROC-S-RTN」を持つ。以下同様に、行番
号「007500」〜「008700」は、第3のサブルーチン14
4であって、名称「READ-F01-RTN」を持つ。また、行番
号「008900」〜「010000」は、第4のサブルーチン14
5であって、名称「SEARCH-KYMD-RTN 」を持つ。行番号
「010200」〜「012300」は、第5のサブルーチン146
であって、名称「READ-MST-RTN」を持つ。行番号「0125
00」〜「013800」は、第6のサブルーチン147であっ
て、名称「GET-YMD-RTN 」を持つ。そして、行番号「01
4000」〜「014100」は、第7のサブルーチン148であ
って、名称「DBECD-CLEAR 」を持つ。
のプログラム解析装置にて解析する場合、まずプログラ
ム受付手段2がプログラム10を受け付ける。そして、
受け付けられたプログラム10から、構造抽出手段3
が、プログラム10の制御構造を決定する文と入出力文
とサブルーチンとを抽出して、プログラム基本構造を生
成する。
0を生成する場合、見出し部11、環境部12、データ
部13は抽出されない。また、コメント文やDISPL
AY(表示)文、MOVE(転記)文、算術文等も抽出
されない。
ラム10から生成したプログラム基本構造を示した図で
ある。プログラム基本構造20(1/2)〜プログラム
基本構造20(2/2)は、プログラムの主体部141
から抽出された領域21と、第1〜第7のサブルーチン
142〜148から抽出された領域22〜28とから構
成されている。
のサブルーチン143から、行番号「006000」〜「0062
00」のMOVE文や、行番号「006400」〜「006800」の
MOVE文のみを含むIF(条件)文以外の部分が抽出
されて生成される。
144から、行番号「007800」のADD(加算)文や、
行番号「008300」のMOVE文以外の部分が抽出されて
生成される。
ら、行番号「009000」〜「010000」の変数Jを増加させ
るPERFORM(実行)文や、この変数Jが一定の条
件を満たした時点でMOVE文を実行するIF文以外の
部分が抽出されて生成される。
ら、行番号「010700」や行番号「011800」のMOVE
文、行番号「012100」〜「012200」のDISPLAY文
以外の部分が抽出されて生成される。
ら、行番号「013000」〜「013200」のMOVE文及びA
DD文、行番号「0013400 」〜「0013500 」のDISP
LAY文以外の部分が抽出されて生成される。
148から、行番号「014100」のMOVE文以外の部分
が抽出されて生成される。生成されたプログラム基本構
造20は次に、構造展開手段5にて、離れて記述された
手続きを呼び出す手続き呼出部が含まれている場合に、
その手続きを手続き呼出部の直後に挿入されて、プログ
ラム展開構造6が生成される。
本構造中の手続き呼出にて指定される手続き名をその手
続き名の行番号に置き換える置換部5aと、行番号を含
んだ手続き呼出の直後にその行番号の手続きを挿入する
挿入部5bとから構成されている。そこで、まず置換部
5aにてプログラム第1展開構造が生成される様子を説
明した後、挿入部5bにてプログラム第2展開構造が生
成される様子を説明する。このプログラム第2展開構造
がプログラム展開構造6にあたる。
ラム10から生成されたプログラム第1展開構造の様子
を示した図である。図において、プログラム第1展開構
造30(1/2)〜プログラム第1展開構造30(2/
2)は、プログラム基本構造20の領域21に含まれた
手続き呼出にて指定された手続き名をその手続き名の行
番号に置き換えた領域31と、領域22〜28を同様に
置き換えた領域32〜38とから構成されている。
「003700」の「PERFORM DBECD-CREAR.」が、「PERFORM
SEQ-014000. 」に置き換えられている。これは、行番号
「014000」に名称「DBECD-CREAR 」のサブルーチンが存
在するためである。同様に行番号「003800」の「PERFOR
M PROC-RTN. 」が、「PERFORM SEQ-004400. 」に置き換
えられている。なお、「SEQ-」にて行番号を示す。
0」の「PERFORM READ-F01-RTN THRUREAD-F01-EXIT.」が
「PERFORM SEQ-007500 THRU SEQ-008700. 」に、行番号
「004700」の「PERFORM PROC-S-RTN THRU PROC-S-EXI
T.」が「PERFORM SEQ-005300 THRU SEQ-007300. 」に、
さらに行番号「005100」の「PERFORM DBECD-CREAR.」が
「PERFORM SEQ-014000. 」に、置き換えられている。
0」の「PERFORM READ-MST-RTN THRUREAD-MST-EXIT.」が
「PERFORM SEQ-010200 THRU SEQ-012300. 」に、行番号
「005600」の「GO TO PROC-S-001. 」が「GO TO SEQ-00
7100. 」に置き換えられている。また、行番号「00630
0」の「PERFORM SEARCH-KYMD-RTN.」が「PERFORM SEQ-0
08900. 」に、行番号「007200」の「PERFORM READ-F01-
RTN THRU READ-F01-EXIT.」が「PERFORM SEQ-007500 TH
RU SEQ-008700. 」に置き換えられている。
0」の「AT END GO TO READ-F01-EXIT. 」が「AT END GO
TO SEQ-008700.」に、行番号「008400」の「GO TO REA
D-F01-EXIT.」が「GO TO SEQ-008700. 」に、行番号「0
08600」の「GO TO READ-F01-RTN. 」が「GO TO SEQ-007
500. 」に置き換えられている。
では、行番号「010400」の「AT END GO TO READ-MST-ER
R.」が「AT END GO TO SEQ-012000.」に、行番号「0010
600 」の「AT END GO TO READ-MST-ERR.」が「AT END G
O TO SEQ-012000.」に置き換えられている。また、行番
号「011000」の「GO TO READ-MST-ERR. 」が「GO TO SE
Q-012000. 」に、行番号「011200」の「AT END GO TO R
EAD-MST-ERR.」が「AT END GO TO SEQ-012000.」に、行
番号「011400」の「AT END GO TO READ-MST-ERR.」が
「AT END GO TO SEQ-012000.」に置き換えられている。
さらに、行番号「011600」の「PERFORM GET-YMD-RTN TH
RU GET-YMD-END. 」が「PERFORM SEQ-012500THRU SEQ-0
13800.」に、行番号「011900」の「GO TO READ-MYST-EX
IT. 」が「GO TO SEQ-012300. 」に置き換えられてい
る。
ND GO TO GET-YMD-END. 」が「AT END GO TO SEQ-01380
0.」に、行番号「012900」の「GO TO GET-YMD-RTN.」が
「GOTO SEQ-012500. 」に置き換えられている。また、
行番号「013600」の「GO TOGET-YMD-END.」が「GO TO G
ET SEQ-013800. 」に、行番号「013700」の「GO TOGET-
YMD-RTN.」が「GO TO SEQ-012500. 」に置き換えられて
いる。
ここで、各領域に含まれる手続き呼出を確認しておく。
領域31に含まれる手続き呼出は、行番号「003700」の
「PERFORM SEQ-014000. 」と、行番号「003800」の「PE
RFORM SEQ-004400. 」である。なお、この領域31に含
まれた行番号「003200」の「START-001.」は、他からの
呼出のない段落名であるので、以降の処理では不要であ
る。よって、この時点で削除する。
「004500」の「PERFORM SEQ-007500THRU SEQ-008700.
」、行番号「004700」の「PERFORM SEQ-005300 THRU S
EQ-007300. 」、及び行番号「005100」の「PERFORM SEQ
-014000. 」である。
「005400」の「PERFORM SEQ-010200THRU SEQ-012300.
」、行番号「006300」の「PERFORM SEQ-008900. 」、
及び行番号「007200」の「PERFORM SEQ-007500 THRU SE
Q-008700. 」である。
出力文は含まれているが、手続き呼出は含まれていな
い。なお、領域35には手続き呼出も入出力文も含まれ
ておらず、以降の処理では不要である。よって、領域3
5はこの時点で削除する。
「011600」の「PERFORM SEQ-012500THRU SEQ-013800.
」である。領域37には、GOTO文や入出力文は含
まれているが、手続き呼出は含まれていない。
も含まれておらず、以降の処理では不要である。よっ
て、領域38はこの時点で削除する。図10、11は、
構造展開手段5の挿入部5bにて、図8、9にて示した
プログラム第1展開構造30からプログラム第2展開構
造40が生成された様子を示した図である。
(1/2)〜プログラム第2展開構造40(2/2)
は、プログラム第1展開構造30に含まれた手続き呼出
の直後に、呼び出されている手続きを挿入した構成とな
っている。
の流れが不明瞭になるのを防ぐために、展開番号という
項目を設けてある。これは、新たに手続きを挿入する度
に、その手続きによる処理の流れに逐次番号を付加して
いくもので、最初は展開番号01である。この流れの途
中で手続き呼出があり、手続きを挿入した場合、その手
続きには展開番号02を付加する。また、展開番号02
の途中でさらに手続き呼出があったり、展開番号02の
処理が終了して展開番号01の処理の再開中に別の手続
き呼出があったりした場合には、展開番号03、04・
・・を付加していく。また、ここでは、手続き呼出を意
味している行に「*」を付加して、その他の行と区別し
てある。
4000. 」であるが、行番号「014000」の手続きは削除さ
れており、存在しない。よって、挿入は行われない。次
に、行番号「003800」の「PERFORM SEQ-004400. 」及び
行番号「003900」にの「UNTIL DBSCB=01」に基づいて、
この直後に行番号「004400」の「PROC-RTN.」以下が挿
入される。以降、展開番号02が付加される。
0」の「PERFORM SEQ-007500 THRU SEQ-008700. 」が手
続き呼出を意味しているので、この直後に行番号「0075
00」の「READ-F01-RTN. 」以下が挿入されている。以
降、展開番号03が付加される。
しないので、行番号「008700」までで、この流れは終了
する。展開番号02の流れに戻ると、行番号「004700」
の「PERFORM SEQ-005300 THRU SEQ-007300. 」及び行番
号「004800」の「UNTIL DBSCB=01」が、手続き呼出を意
味している。よって、この直後に行番号「005300」の
「PROC-S-RTN. 」以下が挿入される。以降、展開番号0
4が付加される。
0」の「PERFORM SEQ-010200 THRU SEQ-012300. 」が手
続き呼出を意味しているので、この直後に行番号「0102
00」の「READ-MST-RTN. 」以下が挿入される。以降、展
開番号05が付加される。
0」の「PERFORM SEQ-012500 THRU SEQ-013800. 」が手
続き呼出を意味しているので、この直後に行番号「0125
00」の「GET-YMD-RTN.」以下が挿入される。以降、展開
番号06が付加される。
しないので、行番号「013800」までで、この流れは終了
する。展開番号05の流れに戻ると、ここにもこれ以上
の手続き呼出は存在しないので、行番号「012300」まで
で、この流れは終了する。
6300」の「PERFORM SEQ-008900. 」が手続き呼出を意味
している。しかし、行番号「008900」の手続きは削除さ
れており、存在しない。よって、挿入は行われない。
007500 THRU SEQ-008700. 」が手続き呼出を意味してい
るので、この直後に行番号「007500」の「READ-F01-RT
N. 」以下が挿入される。以降、展開番号07が付加さ
れる。
しないので、行番号「008700」までで、この流れは終了
する。展開番号04の流れに戻ると、ここにもこれ以上
の手続き呼出は存在しないので、行番号「007300」まで
で、この流れは終了する。
5100」の「PERFORM SEQ-014000. 」が手続き呼出を意味
している。しかし、行番号「014000」の手続きは削除さ
れており、存在しない。よって、挿入は行われない。
手続き呼出は存在しないので、行番号「004200」まで
で、この流れは終了する。このようにして、構造展開手
段5にてプログラム第2展開構造40が生成される。生
成されたプログラム第2展開構造40は次に、削除手段
7にて入出力に関与しない文を削除される。なお、入出
力に関与するのは、データベースファイルとのアクセス
を意味するGET文、WRITE(書込み)文、REA
D(読込み)文、及びこれらの文の繰り返しを意味する
文である。
ム10から生成したアクセス構造を示した図である。ア
クセス構造50には、新たに相対番号が付加される。行
番号「003500」は、GET文なので残され、相対番号
「 001」を付加されている。相対番号「 002」のPER
FORM文及び相対番号「 025」のEND−PERFI
RM文は、プログラム10の行番号「003800」〜「0039
00」が意味していた処理の繰り返しに相当する。
ブルーチンの名称を示しているので残され、相対番号
「 003」を付加されている。行番号「007600」はGET
文なので残され、相対番号「 004」を付加されている。
行番号「008600」は、行番号「007600」のGET文の繰
り返しを意味するGOTO文なので残され、相対番号
「005」を付加されている。相対番号「 006」のPER
FORM文及び相対番号「023」のEND−PERFI
RM文は、プログラム10の行番号「004700」〜「0048
00」が意味していた処理の繰り返しに相当する。
ブルーチンの名称を示しているので残され、相対番号
「 007」を付加されている。行番号「010300」、「0105
00」、「010800」、「011100」、「011300」は、GET
文なので残され、相対番号「 008」、「 009」、「 01
0」、「 011」、「 012」を付加されている。
ブルーチンの名称を示しているので残され、相対番号
「 013」を付加されている。行番号「012600」はGET
文なので残され、相対番号「 014」を付加されている。
行番号「012900」及び「013700」は、どちらも行番号
「012600」のGET文の繰り返しを意味するGOTO文
なので残され、相対番号「 015」及び「 016」を付加さ
れている。相対番号「 017」のPERFORM文及び相
対番号「 019」のEND−PERFIRM文は、プログ
ラム10の行番号「005700」〜「007000」が意味してい
た処理の繰り返しに相当する。
ブルーチンの名称を示しているので残され、相対番号
「 020」を付加されている。行番号「007600」はGET
文なので残され、相対番号「 021」を付加されている。
行番号「008600」は、行番号「007600」のGET文の繰
り返しを意味するGOTO文なので残され、相対番号
「022」を付加されている。そして、行番号「004900」
はGET文なので残され、相対番号「 024」を付加され
ている。
ラム「PROG1」のファイルアクセスの状況が判る。
すなわち、相対番号「 001」より、まずファイル「F0
2」の最初のデータが読み込まれることが判る。以下、
ここで読み込まれるファイル「F02」の最初のデータ
を、説明のため、「データA1」とする。
ファイル「F01」とのアクセスが行われ、先にファイ
ル「F02」から読み込まれたデータ「データA1」に
関連するデータが存在すれば、そのデータが読み込まれ
ることが判る。データの読込みは、に関連するデータが
すべて読み込まれるまで繰り返される。以下、ここで
「データA1」に関連して読み込まれるファイル「F0
1」のデータを、「データB11」、「データB12」
・・・「データB1X」とする。次に、相対番号「 00
8」により、ファイル「F04」とのアクセスが行わ
れ、先にファイル「F01」から読み込まれたデータ
「データB11」の親にあたるデータが読み込まれるこ
とが判る。以下、ここで「データB11」の親として読
み込まれるファイル「F04」のデータを、「データC
11」とする。
5」とのアクセスが行われ、先にファイル「F02」か
ら読み込まれた「データA1」の親にあたるデータが読
み込まれることが判る。以下、ここで「データA1」の
親として読み込まれるファイル「F05」のデータを、
「データD1」とする。
6」とのアクセスが行われ、インデックスを指定してデ
ータが読み込まれることが判る。以下、ここで読み込ま
れるファイル「F06」のデータを、「データEk」と
する。
7」とのアクセスが行われ、先にファイル「F06」か
ら読み込まれた「データEk」の親にあたるデータが読
み込まれることが判る。以下、ここで「データEk」の
親として読み込まれるファイル「F07」のデータを、
「データFk」とする。
8」とのアクセスが行われ、先にファイル「F06」か
ら読み込まれた「データEk」の親にあたるデータが読
み込まれることが判る。以下、ここで「データEk」の
親として読み込まれるファイル「F08」のデータを、
「データGk」とする。
イル「F03」とのアクセスが行われ、先にファイル
「F01」から読み込まれた「データB11」に関連す
るデータが存在すれば、そのデータが読み込まれること
が判る。データの読込みは、関連するデータがすべて読
み込まれるまで繰り返される。以下、ここで「データB
11」に関連して読み込まれるファイル「F03」のデ
ータを、「データH111」、「データH112」・・
・「データH11X」とする。
イル「S01」とのアクセスが行われ、インデックスを
指定してデータが書き込まれることが判る。データの書
き込みは、必要に応じて繰り返される。
イル「F01」とのアクセスが行われ、先にファイル
「F02」から読み込まれた「データA1」に関連する
データが存在すれば、そのデータが読み込まれることが
判る。ここで読み込まれるデータは、「データB1
1」、「データB12」・・・「データB1X」であ
る。
6」以下の流れに再度進むことが判る。すなわち、「デ
ータB11」に関する処理が終了したので、次は「デー
タB12」に関する処理が行われる。相対番号「 006」
〜「 023」の処理は、「データB1X」に関する処理が
終了するまで繰り返される。
イル「F02」の次のデータが読み込まれ、相対番号
「 002」以下の流れに再度進むことが判る。すなわち、
「データA1」に関する処理が終了したので、次はファ
イル「F02」に含まれた次のデータである「データA
2」に関する処理が行われる。相対番号「 002」〜「 0
25」の処理は、ファイル「F02」のすべてのデータに
関する処理が終了するまで繰り返される。
ではソースプログラムからアクセス構造が出力できるの
で、ファイルアクセスの状況を解析することができる。
また、本発明ではアクセス構造を表形式で出力すること
もできる。
ム10から生成した表形式のアクセス構造を示した図で
ある。アクセス構造60では、横軸にファイル名を記載
し、縦軸で処理の流れを意味するようにして、アクセス
構造を表形式で表わしている。繰り返し処理は矢印等で
示せばよい。また、ファイルアクセスを意味する文を添
付することで、必要に応じて修正の手掛かりとすること
ができる。
うにファイルアクセスの状況を表形式で表わすことがで
きるので、プログラム形式のアクセス構造だけでは把握
しづらいようなプログラムに関しても解析が容易とな
る。
解析装置では、プログラム中に、離れた手続きを呼び出
す手続き呼出が含まれている場合でも、その手続き順序
に対応してアクセス状況を解析、出力することが可能で
ある。
らに人間が理解しやすいように出力されるので、この解
析結果をファイルの統廃合等を行う際の指針とすること
ができる。
て解析されたファイルのアクセス状況の解析結果を3
例、示した図である。解析結果71は、プログラム「P
ROG001」のファイルアクセス状況を、解析結果7
2は、プログラム「PROG002」のファイルアクセ
ス状況を、解析結果73は、プログラム「PROG00
3」のファイルアクセス状況を、表形式で示している。
G001」は、ファイル「F02」のレコードを読み込
んだ後、ファイル「F01」の関連するレコードを読
み、さらにファイル「F01」から読み込んだレコード
の親レコードをファイル「F03」から読み込むという
処理を繰り返すことが判る。
の内容と同一であることから、プログラム「PROG0
02」がプログラム「PROG001」と同様の処理を
繰り返すことが判る。
「PROG003」は、ファイル「F04」のレコード
を指定に従って読み込むことが判る。つまり、プログラ
ム「PROG001」、「PROG002」、「PRO
G003」に関してのみ考えると、ファイル「F03」
は独立して読み込まれることはなく、必ずファイル「F
01」との関連に基づいて読み込まれている。従って、
他に支障がなければファイル「F03」をファイル「F
01」に統合してしまった方が、各プログラムのファイ
ルへのアクセス回数を、減少させることができる。
ァイルと関連して読み込まれることはない。従って、他
に支障がなければ、セット情報を意識させずに、独立し
たファイルとして記憶装置に格納させることができる。
にて、プログラムによるファイルのアクセス状況を解析
し、その結果を人間に判りやすいように出力すること
で、記憶装置内のデータファイル整理等の指針とするこ
とができる。
ム解析装置をプログラム言語「COBOL」で記述され
たソースプログラムに適用した例を示したが、「COB
OL」以外のプログラム言語で記述されたソースプログ
ラムに対しても本発明のプログラム解析装置は適用可能
である。
ム解析装置には、ソースプログラム中に、離れて記述さ
れた手続きを呼び出す手続き呼出が含まれている場合
に、この手続きを手続き呼出の直後に挿入する構造展開
手段と、入出力文に関与しない文を削除する削除手段と
を設けたので、ソースプログラム中に、離れた手続きを
呼び出す手続き呼出が含まれている場合でも、その手続
き順序に対応してアクセス状況を解析、出力することが
できる。
ソースプログラム中に、離れて記述された手続きを呼び
出す手続き呼出が含まれている場合に、この手続きを手
続き呼出の直後に挿入するので、ソースプログラム中
に、離れた手続きを呼び出す手続き呼出が含まれている
場合でも、その手続き順序に対応してアクセス状況を解
析、出力することができる。
ム解析装置として機能させるためのプログラムを格納し
たソースプログラム解析用プログラム記憶媒体は、コン
ピュータを、ソースプログラム中に、離れて記述された
手続きを呼び出す手続き呼出が含まれている場合に、こ
の手続きを手続き呼出の直後に挿入する構造展開手段及
び入出力文に関与しない文を削除する削除手段として機
能させるので、ソースプログラム中に、離れた手続きを
呼び出す手続き呼出が含まれている場合でも、その手続
き順序に対応してアクセス状況を解析、出力することが
できる。
たブロック図である。
る。
る。
る。
る。
プログラム基本構造を示した図(その1)である。
プログラム基本構造を示した図(その2)である。
たプログラム第1展開構造の様子を示した図(その1)
である。
たプログラム第1展開構造の様子を示した図(その2)
である。
からプログラム第2展開構造が生成された様子を示した
図(その1)である。
からプログラム第2展開構造が生成された様子を示した
図(その2)である。
たアクセス構造を示した図である。
た表形式のアクセス構造を示した図である。
ファイルのアクセス状況の解析結果を3例、示した図で
ある。
Claims (7)
- 【請求項1】 プログラム言語にて記述されたソースプ
ログラムを解析するプログラム解析装置において、 前記ソースプログラムの入力を受け付けるプログラム受
付手段と、 前記ソースプログラムから、前記ソースプログラムの制
御構造を決定する文と入出力文と手続きとを抽出し、プ
ログラム基本構造とする構造抽出手段と、 前記プログラム基本構造に、離れて記述された手続きを
呼び出す手続き呼出が含まれている場合に、前記手続き
を前記手続き呼出の直後に挿入し、プログラム展開構造
とする構造展開手段と、 前記プログラム展開構造から前記入出力文に関与しない
文を削除し、アクセス構造とする削除手段と、 前記アクセス構造を出力する出力手段と、 を有することを特徴とするプログラム解析装置。 - 【請求項2】 前記構造抽出手段は、前記ソースプログ
ラムが他プログラムからの複写を含む場合には、複写対
象となっているプログラム部分からも制御構造を決定す
る文と入出力文と手続きとを抽出して、前記プログラム
基本構造を生成することを特徴とする請求項1記載のプ
ログラム解析装置。 - 【請求項3】 前記構造展開手段は、前記プログラムの
制御構造を決定する文に含まれる手続き呼出にて指定さ
れる手続き名を、前記手続き名の行番号に置き換える置
換部と、前記手続きを前記手続き呼出の直後に挿入する
挿入部とから構成されることを特徴とする請求項1記載
のプログラム解析装置。 - 【請求項4】 前記出力手段は、前記アクセス構造をプ
ログラム言語のまま出力することを特徴とする請求項1
記載のプログラム解析装置。 - 【請求項5】 前記出力手段は、前記アクセス構造から
ファイルアクセスの様子を示すアクセス表を生成し、前
記アクセス表を出力することを特徴とする請求項1記載
のプログラム解析装置。 - 【請求項6】 プログラム言語にて記述されたソースプ
ログラムを解析するプログラム解析方法において、 前記プログラムの入力を受け付け、 前記プログラムから、前記プログラムの制御構造を決定
する文と入出力文と手続きとを抽出してプログラム基本
構造とし、 前記プログラム基本構造に、離れて記述された手続きを
呼び出す手続き呼出が含まれている場合には、前記手続
きを前記手続き呼出の直後に挿入し、 前記入出力文に関与しない文を削除して、出力すること
を特徴とするプログラム解析方法。 - 【請求項7】 コンピュータを、プログラム言語にて記
述されたソースプログラムを解析するプログラム解析装
置として機能させるためのプログラムを記録したソース
プログラム解析用プログラム記録媒体において、 前記ソースプログラムの入力を受け付けるプログラム受
付手段と、 前記ソースプログラムから、前記ソースプログラムの制
御構造を決定する文と入出力文と手続きとを抽出し、プ
ログラム基本構造とする構造抽出手段と、 前記プログラム基本構造に、離れて記述された手続きを
呼び出す手続き呼出部が含まれている場合に、前記手続
きを前記手続き呼出部に挿入し、プログラム展開構造と
する構造展開手段と、 前記プログラム展開構造から前記入出力文に関与しない
文を削除し、アクセス構造とする削除手段と、 前記アクセス構造を出力する出力手段と、 としてコンピュータを機能させるためのソースプログラ
ム解析用プログラム記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08250297A JP3970373B2 (ja) | 1997-04-01 | 1997-04-01 | プログラム解析装置、プログラム解析方法及びソースプログラム解析用プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08250297A JP3970373B2 (ja) | 1997-04-01 | 1997-04-01 | プログラム解析装置、プログラム解析方法及びソースプログラム解析用プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10283175A true JPH10283175A (ja) | 1998-10-23 |
JP3970373B2 JP3970373B2 (ja) | 2007-09-05 |
Family
ID=13776283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08250297A Expired - Fee Related JP3970373B2 (ja) | 1997-04-01 | 1997-04-01 | プログラム解析装置、プログラム解析方法及びソースプログラム解析用プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3970373B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02112024A (ja) * | 1988-10-21 | 1990-04-24 | Hitachi Ltd | プログラム処理パターン推定方法 |
JPH0324639A (ja) * | 1989-06-21 | 1991-02-01 | Hitachi Ltd | プログラム理解支援方法 |
JPH0540616A (ja) * | 1991-08-02 | 1993-02-19 | Hitachi Ltd | プログラム仕様生成方法 |
JPH07104994A (ja) * | 1993-09-30 | 1995-04-21 | Fujitsu Ltd | ソースプログラムの業務仕様解析装置 |
-
1997
- 1997-04-01 JP JP08250297A patent/JP3970373B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02112024A (ja) * | 1988-10-21 | 1990-04-24 | Hitachi Ltd | プログラム処理パターン推定方法 |
JPH0324639A (ja) * | 1989-06-21 | 1991-02-01 | Hitachi Ltd | プログラム理解支援方法 |
JPH0540616A (ja) * | 1991-08-02 | 1993-02-19 | Hitachi Ltd | プログラム仕様生成方法 |
JPH07104994A (ja) * | 1993-09-30 | 1995-04-21 | Fujitsu Ltd | ソースプログラムの業務仕様解析装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3970373B2 (ja) | 2007-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0451384A1 (en) | Hypertext data processing system | |
JPH04229364A (ja) | 強調特性変更方法及びシステム | |
US6819806B1 (en) | Document processing apparatus and storage medium | |
US8898625B2 (en) | Optimized storage of function variables | |
EP2587380B1 (en) | Runtime environment and method for non-invasive monitoring of software applications | |
JP2005173999A (ja) | 電子ファイル検索装置、電子ファイル検索システム、電子ファイル検索方法、プログラムおよび記録媒体 | |
JPH10283175A (ja) | プログラム解析装置、プログラム解析方法及びソースプログラム解析用プログラム記録媒体 | |
JPH08221417A (ja) | 構造化文書の新旧対照編集装置 | |
JP2000099526A (ja) | 文書情報抽出装置 | |
JP2766261B2 (ja) | 文章要約システム | |
CN111209075A (zh) | 多语言界面维护方法、系统、存储介质和智能设备 | |
JPS63288357A (ja) | デ−タ編集方式 | |
CN113010400B (zh) | 计算机工程技术文档智能生成、复盘系统和方法 | |
CN118093512A (zh) | 一种基于修订模式识别软件工程数据条目化变更的方法 | |
JPH06202841A (ja) | アイコンの表示方法 | |
JP3458421B2 (ja) | 文書処理システム | |
JP2721377B2 (ja) | Basicプログラム圧縮方法 | |
JP2811804B2 (ja) | 変数出力範囲指定方式 | |
JP2946509B2 (ja) | 対話型マニュアルの制御方法 | |
JPH0773030A (ja) | 動的モデル設計支援方法 | |
JP3031767B2 (ja) | 自然言語処理装置 | |
KR20230172354A (ko) | 업스트림과 다운스트림을 이용한 문서 제어 방법 및 시스템 | |
CN118210494A (zh) | 组件开发方法、装置和计算设备 | |
JPH0358125A (ja) | ソースプログラムの世代管理方式 | |
JPH06324853A (ja) | オブジェクト指向プログラミング言語を対象とした原始プログラム編集装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060731 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060808 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070130 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070330 |
|
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: 20070605 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070606 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120615 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120615 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130615 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140615 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |