JPH0431933A - 原始プログラム解析装置 - Google Patents

原始プログラム解析装置

Info

Publication number
JPH0431933A
JPH0431933A JP2138033A JP13803390A JPH0431933A JP H0431933 A JPH0431933 A JP H0431933A JP 2138033 A JP2138033 A JP 2138033A JP 13803390 A JP13803390 A JP 13803390A JP H0431933 A JPH0431933 A JP H0431933A
Authority
JP
Japan
Prior art keywords
program
information
unit
analysis
program unit
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
Application number
JP2138033A
Other languages
English (en)
Other versions
JP2526713B2 (ja
Inventor
Tomoko Sasaki
智子 佐々木
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 JP2138033A priority Critical patent/JP2526713B2/ja
Publication of JPH0431933A publication Critical patent/JPH0431933A/ja
Application granted granted Critical
Publication of JP2526713B2 publication Critical patent/JP2526713B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、計算機システムにおける高級言語で記述され
た原始プログラムの解析装置に関するものである。
〔従来の技術] 高級言語で記述された原始プログラムの構造を解析しエ
ラーを検出することは、従来よりコンパイラ等に設けら
れた解析装置で行われているが、複数のプログラム単位
から構成されるような原始プログラムにあっては、その
エラー検出範囲は専らプログラム単位内のエラーに限ら
れていた。
(発明が解決しようとする課題) 上述したように従来の原始プログラム解析装置は、プロ
グラム単位内のエラーのみを検出対象としているため、
プログラム単位間にまたがるようなエラー、即ちプログ
ラム単位間のタスクの同期排他制御にかかるエラーの検
出は行えず、原始プログラムを実行して初めてエラーが
発見される事態が多々生していた。
そこで本発明の目的は、プログラム単位間のタスクの同
期排他制御にかかるエラーを原始プログラムを解析する
ことにより検出する解析装置を提供することにある。
(課題を解決するための手段〕 本発明は上記の目的を達成するために、実行可能なプロ
グラムを互いに異なるタスクに分割して並列実行する多
重タスク化機能を有する計算機システム用に作成され高
水準言語で記述された複数のプログラム単位から構成さ
れる原始プログラムの解析装置において、 原始プログラムの個々のプログラム単位を入力して解析
し、個々のプログラム単位毎に、プログラム単位内に現
れるタスク関連文に関する情報を集めたプログラム単位
情報を生成するプログラム単位解析部と、 プログラム単位解析部で生成された情報を格納する解析
データベースと、 解析データベースに格納された情報に基づいて原始プロ
グラムに現れる変数毎に変数の使用状況を示す事象種別
情報を生成すると共にこの生成した事象種別情報に基づ
いて同期排他制御に関するエラーの検出を行うプログラ
ム全体解析部と、プログラム全体解析部で検出されたエ
ラーの情報を含む解析情報を出力する情報出力部とを有
している。
また、本発明の好ましい実施例においては、プログラム
単位解析部は上記プログラム単位情報の生成を行う以外
に、個々のプログラム単位毎にCALL関連文に関する
情報を集めたCALL文情報と原始プログラムのプログ
ラム構成情報とを生成して解析データベースに格納する
構成を有し、プログラム全体解析部は解析データベース
に格納された情報に基づいてプログラム構成グループを
認識すると共に原始プログラムに現れる変数毎に変数の
使用状況をプログラム構成グループを含めて示す事象種
別情報を生成し、この生成した事象種別情報に基づいて
同期排他制御に関するエラの検出を行う構成を有してい
る。
;作用] 本発明の原始プログラム解析装置においては、プログラ
ム単位解析部が、原始プログラムの個々のプログラム単
位を人力して解析し、個々のプログラム単位毎に、プロ
グラム単位内に現れるタスク関連文に関する情報を集め
たプログラム単位情報を生成する。このとき、本発明の
好ましい実施例においては、個々のプログラム単位毎に
CALL関連文に関する情報を集めたCALL文情報お
よび原始プログラムのプログラム構成情報も生成する。
プログラム単位解析部で生成された情報は解析データベ
ースに格納され、その後、プログラム全体解析部が、解
析データベースに格納された情報に基づいて原始プログ
ラムに現れる変数毎に変数の使用状況を示す事象種別情
報を生成すると共にこの生成した事象種別情報に基づい
て同期排他制御に関するエラーの検出を行う。このとき
、本発明の好ましい実施例においては、解析データベー
スに格納された情報に基づいてプログラム構成グループ
を認識し、原始プログラムに現れる変数毎に変数の使用
状況をプログラム構成グループを含めて示す事象種別情
報を生成する。そして、その後、情報出力部がプログラ
ム全体解析部で検出されたエラーの情報を含む解析情報
を出力する。
〔実施例〕
次に、本発明の実施例について図面を参照して詳細に説
明する。
第1図4↓本発明の一実施例の構成図である。この実施
例の解析装置1は、原始プログラム10を入力して解析
し、原始プログラム10のタスクの同期排他制御にかか
るエラーの情報を含む出力情報20を出力する装置であ
り、内部にプログラム単位解析部2とプログラム全体解
析部3と情報出力部4とを含み、外部に解析データベー
ス30を備えている。
原始プログラム10は、高水準言語で記述された複数の
プログラム単位から構成されており、実行可能なプログ
ラムを互いに異なるタスクに分割して並列実行する多重
タスク化機能を有する計算機ノステムにおいては、原始
プログラム10は幾つかのタスクとして並列に実行され
る。
解析装置1内のプログラム単位解析部2は、原始プログ
ラム10の個々のプログラム単位を人力して解析し、解
析結果を解析データベース3oに格納する。全てのプロ
グラム単位の解析を終了すると、制御をプログラム全体
解析部3に渡す。このプログラム単位解析部2は、本実
施例では、次のような情報を生成する。
■個々のプログラム単位毎にプログラム単位内に現れる
タスク関連文に関する情報を集めたプログラム単位情報
。ここで、タスク関連文とは、タスク起動、排他区間開
始、排他区間終了、タスク待ち合わせ、同期待ち開始、
同期待ち絽了等にかかる文をいい、タスク関連文に関す
る情報とは、そのタスク関連文で使用されている変数名
9種別作用する相手のプログラム単位名、当該タスク関
連文の行番号等である。
■個々のプログラム単位毎にCALL関連文に関する情
報を集めたCALL文情報。ここで、CALL関連文と
は、タスク起動あるいはサブルーチンの呼び出しにかか
る文をいい、CALL文情報とは、CALL文の種別、
呼び出しているプログラム単位名、当1cALL関連文
の行番号等である。
■原始プログラム10のプログラム構成情報。ここで、
プログラム構成情報とは、原始プログラム10がどのよ
うな名前2種別のプログラム単位で構成され、また各プ
ログラム単位の参照関係はどのようになっているかを示
す情報である。
第一1図の解析データベース30は、プログラム単位解
析部2で得られた上述した情報を保持する記憶手段であ
る。この解析データベース30はプログラム全体解析部
3から参照等される。
プログラム全体解析部3は、プログラム単位解析部1か
ら制御を渡されると、解析データベース30に格納され
た情報に基づいて先ず原始プログラム10のプログラム
構成グループを認識し、認。
識結果を本実施例では解析データベース30に格納され
たプログラム構成情報に追加する。ここで、原始プログ
ラム10のプログラム構成グループとは、主プログラム
単位或いはタスク起動されるプログラム単位を先頭とし
各々のプログラム単位かみタスク起動あるいは呼び出さ
れるプログラム単位の集合のことであり、多重タスク化
機能を有する計X機ンステムにおいては各プログラム構
成グループが1つのタスクとして実行される。次にプロ
グラム全体解析部3は、解析デークヘース30の内容を
参照して、原始プログラム104こ現れる変数毎に、変
数の使用状況をプログラム構成グループを含めて示す事
象種別情報を生成する。ここで、使用事象種別情報とは
、各変数がどのような事象種別に使用されているか、ど
のプログラム単位およびプログラム構成グループで使用
されているか等を示す情報である。そして、プログラム
全体解析部3は、上記生成した事象種別情報に基づいて
同期排他制御に関するエラーの検出を行い、その処理終
了後に制御を情報出力部4に渡す。
情報出力部4は、プログラム全体解析部3で検出された
エラーの情報を含む解析情報を出力情報20として図示
しない表示装置あるいはプリンタ等から出力する。
以上が本実施例の全体的な構成と大まかな動作であるが
、本発明の理解をより一層容易にするために、第2図以
降の図面を参照してより詳しく本実施例の内容を説明す
る。
先ず、第2図のプログラム単位解析部2の処理例を示す
流れ図と第3図の解析データベース30の内容例と第4
図の原始プログラム10の構成例とを参照して、プログ
ラム単位解析部2の構成および動作を説明する。
第4図の例では原始プログラム10は、各々が高水準言
語で記述された4つのプログラム単位410.420,
430,440で構成されており、プログラム単位41
0がプログラム単位名”MAIN”を持つ主プログラム
であり、残りのプログラム単位420,430,440
がそれぞれプログラム単位名゛5UBI”、”5UB2
” 、” 5UB3”を持つサブルーチンプログラムで
ある。
各々のプログラム単位410,420,430゜440
には同図に示す行番号部分に、先頭文、タスク関連文、
CALL関連文の何れかである文411〜416,42
1〜424.431〜435441が含まれている。
プログラム単位解析部2は、第2図に示すような処理を
実行することにより、第4図に示すようなプログラム単
位410,420,430,440から構成される原始
プログラム10を解析して、第3図に示すような情報を
解析データベース30上に生成する。ここで、第3図に
おけるプログラム単位情報310.320,330,3
40はそれぞれプログラム単位410,420,430
440より生成されたものであり、プログラム単位名、
プログラム種別、そのプログラム単位中に現れるタスク
起動や同期排他制御を行うタスク関連文の情報を格納す
る。また、CALL文情報350.360はそれぞれプ
ログラム単位410430より生成されたものであり、
タスク起動の文δよびCALL文の情報を格納する。更
に、プログラム構成情報370は、原始プログラム10
を構成するプログラム単位名と、各プログラム単位が主
プログラムか或いはサブルーチンかを示す種別と、CA
LL文で呼ばれるか或いはタスク起動されるかを示す参
照状況等の情報を格納する。
プログラム単位解析部2は原始プログラム10中より第
4図のプログラム単位410.420430.440を
その順に入力し、具体的には以下のような処理を行う。
先ず、第2図の処理100においてプログラム単位41
0のプログラムの開始を示す文411を入力すると、処
理120にて当該プログラム単位410の先頭の文であ
ることを認識し、処理130にて次のような情報格納処
理を行う。
■ プログラムの開始を示す文411中のプログラム単
位名゛MAIN”を第3図のようにプログラム単位情報
310のプログラム単位名311に格納し、主プログラ
ムであることを示すM”をプログラム種別316に格納
する。
■ 当初はプログラム構成情報370の何れのプログラ
ム単位名372にもプログラム単位名゛MAIN”が登
録されていない状態なので、1つのエントリE71のプ
ログラム単位名372に°゛MAIN”を追加し、同エ
ントリE71のプログラム種別373に“°M°°を格
納する。なお、該当するプログラム単位名が既に成るエ
ントリに登録されているときは、同エントリのプログラ
ム種別373にM”等の種別を格納するものである。
プログラム単位解析部2は処理130を終えた後に処理
140を経由して処理100に戻り、次の1文の入力を
行う。
その後、処理100においてタスク起動を指示する文4
12を入力すると、処理140にてタスり関連文の一種
であり且つタスク起動を指示するというCALL関連文
の一種でもあることを認識し、処理150にて以下のよ
うな情報格納処理を行う。
■ プログラム単位情報310の1つのエントリEll
O行番号315に文412の行番号”302′を、種別
313に文412の種別”タスク起動゛′を、変数名3
12に変数名″TASK1″を、プログラム単位名31
4に当該文412によって起動するサブルーチン名”5
UB2”をそれぞれ格納する。
■ タスク起動を指示する文なので、CALL文情報3
50のプログラム単位名351にプログラム単位名”M
AIN”を格納することにより、プログラム単位410
用の1つのCALL文情報を確保した後に1エントリE
51を追加し、そのCALL文の種別352に種別“タ
スク起動“′を、呼び出しているプログラム単位名35
3にプログラム単位名”5UB2”を、行番号354に
文412の行番号”302”をそれぞれ格納する。なお
、該当するプログラム単位名が既に登録されているCA
LL文情報が存在するときは、そのCALL文情報の1
エントリにCALL文の種別5呼び出しているプログラ
ム単位名1行番号の登録が行われる。
■ 現状では、プログラム構成情報370の何れのプロ
グラム単位名372にもプログラム単位名゛5UB2″
が登録されていない状態なので、1つのエントリE72
を追加してプログラム単位名372に’5UB2”を追
加し、そのエントリE72の参照状況375(タスク起
動の欄)に印を付ける。これによって、プログラム単位
名”5UB2”のプログラム単位がタスク起動されるこ
とにより呼び出されるプログラムであることを記録して
お(。
プログラム単位解析部2は処理150を終えた後に処理
100に戻り、次の1文の入力を行う。
その後、処理100においてCALL文413を入力す
ると、処理140にてCALL関連文の一種であること
を認識し、処理150にて以下のような情報格納処理を
行う。
■ 当該プログラム単位410に対応して既に存在する
CALL文情報350に1つのエントリE52を追加し
、そのCALL文の種別352に種別′°呼び出し”を
、呼び出しているプログラム単位名353にプログラム
単位名”5UB3”を、行番号354に文413の行番
号” 310°゛をそれぞれ格納する。
■ 現状では、プログラム構成情報370のいずれのプ
ログラム単位名372にもプログラム単位名“’5UB
3”が登録されていない状態なので、1つのエントリE
73を追加してプログラム単位名372に“’5UB3
“を追加し、そのエントリE73の参照状況374 (
CALL文の欄)に印を付ける。これによって、プログ
ラム単位名“SU B 3 ”のプログラム単位がCA
LL文によって呼び出されるプログラムであることを記
録しておく。
以下、プログラム単位410の文414,415.41
6の入力時には文412と同様な情報格納処理(但し、
CALL文情報の格納処理とプログラム構成情報の格納
処理は除く)が処理150で行われ、第3図に示すプロ
グラム単位情報31OのエントリE12.E13.E1
4の内容が登録される。
プログラム単位解析部2は最初のプログラム単位410
の処理を終えると、次のプログラム単位420.430
 440乙こついてもプログラム単位410と同様な処
理を行う。これGこよって、第3図のプログラム単位情
報3202プログラム単位情報330.プログラム単位
情報340、CALL文情報360が解析データベース
30に登録され、またプログラム構成情報370にエン
トリE74の内容が登録される。なお、この時点ではプ
ログラム構成情報370の各エントリE71〜E74に
おける「構成するプログラム名」の欄は空白である。
プログラム単位解析部2は、処理110において全ての
プログラム単位の処理を終了したことを判定すると、プ
ログラム単位解析の処理を終了し、制御をプログラム全
体解析部3に渡す。
次に、第5図のプログラム全体解析部3の処理例を示す
流れ図と第6図の事象種別情報の一例を示す図と既に引
用した第3図および第4図とを参照して、プログラム全
体解析部3の構成および動作を説明する。なお、第6図
の事象種別情報は、第3図のような解析データベース3
0の内容から生成される事象種別情報の一部を示してお
り、610は変数名TASKIの事象種別情報、620
は変数名EVENTIの事象種別情報である。
プログラム全体解析部3は、解析デークヘース30の内
容すなわちプログラム構成情報とプログラム単位情報と
CALL文情報とをもとに、プログラム構成グループと
事象種別情報とを生成する。
ここで、プログラム構成グループとは前述したように、
主プログラム単位或いはタスク起動されるプログラム単
位を先頭とし、各々のプログラム単位から呼び出される
プログラム単位の集合である。
本例では”MAIN”のプログラム単位を先頭とするプ
ログラム構成グループと、”5UB2”のプログラム単
位を先頭とするプログラム構成グループとの2つのプロ
グラム構成グループが存在する。また、事象種別情報と
は、前述したようにタスク起動や同期、排他制御に使用
される変数の情報を変数名毎にまとめたものである。
さて、プログラム全体解析部3は、先ず第5図の処理5
10において、プログラム構成のグループ分は処理を行
う。具体的には、先ずプログラム構成情報370よりプ
ログラム構成グループの入ロブログラム単位(プログラ
ム構成情報のプログラム秤別373が” M”になって
いるプログラム単位、或いは参照状況375に印がつい
ているタスク起動にかかるプログラム単位)を探し、そ
のプログラムにプログラム構成グループ番号を付与する
。第3図のプログラム構成情報370の場合、エントリ
E71のプログラム種別373にM”が登録されている
ので、”MAIN”のプログラム単位410が入ロブロ
グラム単位の1つであるト認識し、そのエントリE71
のプログラム構成番号371にグループ番号”l”を格
納する。そして、このMAIN”のプログラム単位41
0から呼び出されるプログラム単位があるが否かを、プ
ログラム単位410に対応するCALL文情報350か
ら順に検索する。今の場合、CALL文情報350中に
は”5UB3”があるので、それをエントリE71の構
成するプログラム名376の欄に格納する。次に、この
’5UB3“から呼び出されるプログラム単位があるか
否かを調べるが、”5UB3”に対応するCALL文情
報が存在しないことにより、そのようなプログラム単位
は存在しないと認識するう この結果、エントリE71
の構成するプログラム名376の欄には“5UB3”の
み格納され、番号”1”のグループは’MAIN”と’
5UB3”との2つのプログラム単位であることを認識
する。
同様に、プログラム構成情報370において参照状況3
75に印が付いている”タスク起動”である°’ 5U
B2°゛のプログラム単位が入ロブログラム単位であり
、且つ、それを先頭とするグループに“’5UBI”の
みが属すると認識して、プログラム構成情報370のエ
ントリE72のプログラム構成番号371にグループ番
号”2”を、構成するプログラム名376の欄に’5U
BI”を格納する。
プログラム構成のグループ分けの処理の紡了後、プログ
ラム全体解析部3は各グループ毎に処理511〜519
の処理を行う。
先ず、処理SZt、こお(ビご、グループ番号”1”の
グループを取り出す。なお、次の処理512で全てのプ
ログラム構成グループの処理が終了したと判定すると、
処理520でエラー判定処理を行う。今の場合、グルー
プ番号” 1”のグループの取り出しが行われて処理5
13に進み、ここで当該プログラム構成グループ中力・
ら1つのプログラム単位名を取り出し、処理514〜5
]9を実行づる。今の場合は、処理513で最初にプロ
グラム構成情報370のエントリE71におけるプログ
ラム単位名”MAIN”を取り出す。なお、次の処理5
14で当該プログラム構成グループの全てのプログラム
単位名の取り出しが終了したと判定すると、処理511
のプログラム構成グループの取り出し処理に戻り、次の
プログラム構成グループの取り出しを行うものである。
今の場合は、処理514においてプログラム単位名”M
AIN″が取り出されたので、処理515において、M
AIN”のプログラム単位に対応する第3図のプログラ
ム構成情報310から1つの変数名”TASKI”を取
り出す。なお、次の処理516で当該プログラム単位情
報内の全ての変数名の取り出しが終了したと判定すると
、処理513のプログラム単位名の取り出し処理に戻り
、次のプログラム単位の処理を行う。
今の場合は、変数名”TASKI゛”が取り出されたの
で、処理517に進んで、取り出した変数名”TASK
I”に対応する事象種別情報が既に存在しているか否か
を判定する。最初の場合は、存在していないので、次の
処理518で、第6図に示す1つの事象種別情報610
を確保し、その変数名611に’TASKI”を格納す
る。そして、処理519において以下のような処理を行
う。
■ 変数名”TASKI”が存在するプログラム単位情
報310におけるエントリEllの種別313が°゛タ
スク起動なので、事象種別情報610における事象種別
テーブル612の”タスク起動゛に対応するフラグ61
3を”On”にする。
■ 事象種別情報610の1つのエントリFilの事象
種別614に”タスク起動パを、プログラム構成のグル
ープ番号615にプログラム構成情報370におけるプ
ログラムの構成番号371に格納されている’ MA 
I N’“のプログラムの構成番号“1(Nnl)’“
を、プログラム単位名616に’MAIN”を、行番号
617にプログラム単位情報310のエントリEllに
格納されている行番号”302”をそれぞれ格納する。
プログラム単位情報310に格納されている変数名”T
ASKI”の処理を終えると、同プログラム単位情報3
10に格納されている残りの変数名” LOCKl” 
、” LOCKl°’、”TASKI゛について処理5
15〜519の処理を実行する。そして、プログラム単
位“’MAIN”の処理が終了したらグループ番号”1
″に属する残りのプログラム単位”S U B 3 ”
について同様の処理を行い、グループ番号パ1”の処理
が終了したら、次のグループ番号°°2”の処理を上述
と同様に行う。これによって、原始プログラムIOによ
る変数名”TASKI”に関する使用状況が全て洗い出
されて第6図の610のような事象種別情報が生成され
、また同様に原始プログラム10による変数名“EVE
NTI”に関する使用状況が全て洗い出されて620の
ような事象種別情報が生成される。
プログラム全体解析部3は、全てのプログラム構成グル
ープの処理が終了したら、処理520に進み、エラー判
定処理を行う。
この処理520におけるエラー判定処理では、上述のよ
うにして生成した各変数名ごとの事象種別情報に基づい
て、変数名の使用状況が予め定められた規則に合致して
いるか否かを調べることにより、プログラム単位間にま
たがるタスクの同期排他制御に関するエラーの検出等を
行う。例えば第6図の変数名”EVENTI″の事象種
別情報620を解析すると、変数名”EVENTI”が
、フラグ623により同期待ち開始と同期待ち終了とで
使用され、対応がとれていることがわかり、その限りで
はエラーはない。しかし、エントリF21、F22中の
プログラム構成のグループ番号625が共に′Nα2゛
になっており、変数名”EVENTI”に関し、同一の
プログラム構成グループ番号外に同期待ち開始処理と同
期待ち終了処理が存在しないことがわかる。同一プログ
ラム構成グループ内Gこ同期待ち開始と同期待ち終了が
あるということは、例えば同期待ち開始処理が先に実行
されるとすると、そこで処理が止まってしまうので、こ
の場合、同期待ち開始がエラーと判定される。このとき
、プログラム全体解析部3は変数名”EVENTI”の
事象種別情報620におけるエントリF21のエラー情
報628にその旨の情報”err”を格納する。
プログラム全体解析部3は、プログラム全体の解析処理
を終了すると、制御を情報出力部4に渡情報出力部4は
、例えば第6図の各変数名ごとの事象種別情報を編集す
ることにより、プログラム全体解析部3で検出されたエ
ラーの情報を含む解析情報を出力情報20として出力す
る。
第7図に出力情報20の一例を示す。この例では、事象
種別情報620のエントリF21のエラー情報628の
内容を参照して、変数名”EVENTI”に関し、同期
待ち開始、終了が同一プログラム構成グループ内にしか
存在しないことを意味するメンセージ710が付加され
た出力情報が出力されている。
以上、本発明の実施例について説明したが、本発明は以
上の実施例にのみ限定されず、その他各種の付加変更が
可能である。例えば、解析対象とする原始プログラムの
プログラム構成グループ分けを行わない範囲で検出可能
なエラーのみを対象とするような機能の縮小化も可能で
あり、その場合には、プログラム構成情報、CALL文
情報の生成、プログラム構成グループ分は等の機能を省
略することができる。
〔発明の効果〕
以上説明したように、本発明の原始プログラム解析装置
においては、原始プログラムを構成する個々のプログラ
ム単位を解析して各プログラム単位内に現れるタスク起
動、排他区間開始、排他区間終了、タスク待ち合わせ、
同期待ち開始、同期待ち終了等のタスク関連文に関する
情報をあつめたプログラム単位情報を生成し、次にこの
生成した情報に基づいて原始プログラムに現れる変数毎
に、各変数がとのような使われ方をされているかを示す
事象種別情報を生成し、そしてこの事象種別情報に基づ
いて同期排他制御に関するエラーの検出を行うものであ
り、例えば成る変数が同期待ち開始のみ或いは同期待ち
終了のみに使われ、原始プログラムを構成する何れのプ
ログラム単位にもその変数を同期待ち終了或いは同期待
ち開始に使っていない等の如きエラー、すなわち管理プ
ログラム間にまたがるタスクの同期排他制御にかかるエ
ラーの検出が可能となる。
また、個々のプログラム単位の解析時にどのプログラム
単位がどのプログラム単位をタスク起動或いはCALL
しているかを示すCALL文情報を生成するとともに、
解析対象となる原始プログラムがどのようなプログラム
単位で構成されプログラム単位間にどのような参照関係
が存在するかを示1プログラム構成情報を生成し、プロ
グラム全体の解析時に上記の情報から主プログラム単位
あるいはタスク起動されるプログラム単位を先頭とし各
々のプログラム単位からタスク起動あるいは呼び出され
るプログラム単位の集合であるプログラム構成グループ
を認識し、原始プログラムに現れる変数毎に変数の使用
状況をプログラム構成グループを含めて示す事象種別情
報を生成して同期排他制御に関するエラーの検出を行う
ことにより、例えば成る変数が同期待ち開始と同期待ち
終了との双方で使用されその限りにおいては対応がとれ
ていてエラーは存在しないが、その変数に対する同期待
ち開始処理と同期待ち終了処理とが同一のプログラム構
成グループ内にしか存在しないといった如きエラーまで
検出することが可能となる。
【図面の簡単な説明】
第1回は本発明の一実施例の構成図、 第2図はプログラム単位解析部2の処理の一例を示す流
れ図、 第3図:ま解析データベース30の内容例を示1図、 第4図は原始プログラムlOの一例を示す回、第5図は
プログラム全体解析部3の処理の一例を示ず流it図、 第6図は事象種別清報の一例を示す図および、第7図は
出力情報20の一例を示す図である。 図において、 J・・・解析装置 2・・−プログラム単位解析部 3・・・プログラム全体解析部 4・・・情報出力部 10・・・原始プログラム 20・・−出力情報 0・・・解析データベース 10.320,330,340・・・プログラム単位情
報 50.360・・・CALL文情報 70・・・プログラム構成情報 10.420,430,440・・・原始プログラム1
0を構成するプログラム単位 10.620・・・事象種別情報

Claims (2)

    【特許請求の範囲】
  1. (1)実行可能なプログラムを互いに異なるタスクに分
    割して並列実行する多重タスク化機能を有する計算機シ
    ステム用に作成され高水準言語で記述された複数のプロ
    グラム単位から構成される原始プログラムの解析装置に
    おいて、 前記原始プログラムの個々のプログラム単位を入力して
    解析し、個々のプログラム単位毎に、プログラム単位内
    に現れるタスク関連文に関する情報を集めたプログラム
    単位情報を生成するプログラム単位解析部と、 プログラム単位解析部で生成された情報を格納する解析
    データベースと、 該解析データベースに格納された情報に基づいて前記原
    始プログラムに現れる変数毎に変数の使用状況を示す事
    象種別情報を生成すると共にこの生成した事象種別情報
    に基づいて同期排他制御に関するエラーの検出を行うプ
    ログラム全体解析部と、 該プログラム全体解析部で検出されたエラーの情報を含
    む解析情報を出力する情報出力部とを含むことを特徴と
    する原始プログラム解析装置。
  2. (2)実行可能なプログラムを互いに異なるタスクに分
    割して並列実行する多重タスク化機能を有する計算機シ
    ステム用に作成され高水準言語で記述された複数のプロ
    グラム単位から構成される原始プログラムの解析装置に
    おいて、 前記原始プログラムの個々のプログラム単位を入力して
    解析し、個々のプログラム単位毎にプログラム単位内に
    現れるタスク関連文に関する情報を集めたプログラム単
    位情報とCALL関連文に関する情報を集めたCALL
    文情報とを生成すると共に、前記原始プログラムのプロ
    グラム構成情報を生成するプログラム単位解析部と、 該プログラム単位解析部で生成された情報を格納する解
    析データベースと、 該解析データベースに格納された情報に基づいてプログ
    ラム構成グループを認識すると共に前記原始プログラム
    に現れる変数毎に変数の使用状況をプログラム構成グル
    ープを含めて示す事象種別情報を生成し、且つ、この生
    成した事象種別情報に基づいて同期排他制御に関するエ
    ラーの検出を行うプログラム全体解析部と、 該プログラム全体解析部で検出されたエラーの情報を含
    む解析情報を出力する情報出力部とを含むことを特徴と
    する原始プログラム解析装置。
JP2138033A 1990-05-28 1990-05-28 原始プログラム解析装置 Expired - Lifetime JP2526713B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2138033A JP2526713B2 (ja) 1990-05-28 1990-05-28 原始プログラム解析装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2138033A JP2526713B2 (ja) 1990-05-28 1990-05-28 原始プログラム解析装置

Publications (2)

Publication Number Publication Date
JPH0431933A true JPH0431933A (ja) 1992-02-04
JP2526713B2 JP2526713B2 (ja) 1996-08-21

Family

ID=15212474

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2138033A Expired - Lifetime JP2526713B2 (ja) 1990-05-28 1990-05-28 原始プログラム解析装置

Country Status (1)

Country Link
JP (1) JP2526713B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007108940A (ja) * 2005-10-12 2007-04-26 Fujitsu Ltd 拡張言語仕様指定方法、プログラム開発方法、プログラム及びコンピュータ読み取り可能な記憶媒体
JP2021140501A (ja) * 2020-03-05 2021-09-16 日立Astemo株式会社 モデル並列化装置および方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007108940A (ja) * 2005-10-12 2007-04-26 Fujitsu Ltd 拡張言語仕様指定方法、プログラム開発方法、プログラム及びコンピュータ読み取り可能な記憶媒体
JP2021140501A (ja) * 2020-03-05 2021-09-16 日立Astemo株式会社 モデル並列化装置および方法

Also Published As

Publication number Publication date
JP2526713B2 (ja) 1996-08-21

Similar Documents

Publication Publication Date Title
US7178135B2 (en) Scope-based breakpoint selection and operation
US10613969B2 (en) Code coverage module with testing function identifier
US20090019273A1 (en) Exception-based error handling in an array-based language
JPH0431933A (ja) 原始プログラム解析装置
JPH01193944A (ja) テスト項目自動選択システム
CN109582582A (zh) 一种Web界面的自动化测试方法及系统
JPH02275539A (ja) デバッグ処理方式
JPH0926897A (ja) プログラム解析装置及びプログラム解析方法
JP2001184235A (ja) ログ情報取得解析装置
JP2560545B2 (ja) インタフェース検査処理装置
JPH03161844A (ja) スペリング訂正方式
JPH0784797A (ja) ロードモジュールへのソースコード行番号登録方法および装置
JPH05233323A (ja) 並行プログラムのデバッグ支援装置
JPS6274130A (ja) プログラム構造資料作成処理装置
US7627859B2 (en) Method for configuring non-script language library files to be run as scripts
JPH0468446A (ja) デバッグ支援装置
JP2004133827A (ja) core解析装置
JPS63148339A (ja) プログラムテスト処理方式
JPH07281879A (ja) アプリケーションプログラム編集装置
JPS59220849A (ja) イメ−ジ比較制御方式
JP2009093239A (ja) 不要プログラム部品検出システム
JPS63104133A (ja) 論理型言語処理系における木探索方式
JPS6282432A (ja) 不定順テキストサ−チ方式
JPH04338840A (ja) プログラムデバッグ支援処理装置
JPS6316340A (ja) ソ−スプログラムのチエツク方式