JPS63317851A - プログラム内容解析装置 - Google Patents

プログラム内容解析装置

Info

Publication number
JPS63317851A
JPS63317851A JP62154059A JP15405987A JPS63317851A JP S63317851 A JPS63317851 A JP S63317851A JP 62154059 A JP62154059 A JP 62154059A JP 15405987 A JP15405987 A JP 15405987A JP S63317851 A JPS63317851 A JP S63317851A
Authority
JP
Japan
Prior art keywords
instruction
block
program
branch
processing
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
JP62154059A
Other languages
English (en)
Inventor
Toshinori Yasuki
安木 寿教
Minoru Takahashi
稔 高橋
Masaki Hitotsuya
一津屋 正樹
Kiyoshi Yagi
八木 潔
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.)
Denso Ten Ltd
Original Assignee
Denso Ten Ltd
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 Denso Ten Ltd filed Critical Denso Ten Ltd
Priority to JP62154059A priority Critical patent/JPS63317851A/ja
Publication of JPS63317851A publication Critical patent/JPS63317851A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、マイクロコンピュータなどを作動するために
用いられるプログラムの内容を解析するY;、置に関す
る。
tX仁 米 1支 (釘 マイクロフンピユータ用などに設計されたプログラムの
、べ検は、以下のように行なわれる。まずシンタックス
エラーなどの店本的なバグを取除いた後、プリントアウ
トされたプログラムリストに基づいて、人手によって、
該プログラムの構造と、該プログラムに基づく各種入出
力!tcraの動作とを把握し、これを仕様書の記載内
容と照合する。さらに該プログラムが用いられるハード
ウェアに実際に組込み、プログラムの実行によって要求
される各種入力条件を入力して、シミュレーションさせ
、プログラムの動作状態を確認する。
またこのような被解析プログラムの各処理経路毎の全実
行時間、または各処理経路の命令列の所定の範囲の実行
時間などが必要となる場合がある。
このような場合、従来では該被解析プログラムを実行さ
せるに必要な外部入力データをすべて入力し、該プログ
ラムを実際に動作させ、前記各種実行時間を計測してい
た。このような従来技術では、実行時間を知るにあたっ
て、該プログラムに設定される外部入力をすべて入力し
なけらばならず、むやみに時間がかかつてしまうという
問題点があった。
発明が解決しようとする問題点 実際のプログラムは膨大なステップ数に及ぶことがあり
、その中にはやはり膨大な分岐命令が含まれている。し
たがってこれらの分岐命令に基づく処理の流れの数はや
はり膨大な数となり、上記人手による内容把握作業では
実現が困難である。
したがって前述したようなシミュレーションまたはエミ
ュレーションによるチェックがイテなわれがちになり、
仕様君の内容の遺漏やバグなどを完全に解消するには、
むやみに時間を要していた。また、前述したようなシミ
ュレーションやエミュレーションを行なうには、実際の
プログラム作動時において必要とされる入力要求をすべ
て充足させねばならず、繁雑な手間を要していた。
本発明の目的は、上述の問題点を解決し、仕様書など、
プログラム内容のチェックの基準となる物との照合が容
易な形態にプログラム内容を解析できるとともに、チェ
ック対象となる該プログラムを実行することなく、プロ
グラム内容の解析を行なうようにでき、さらにプログラ
ムをyI際に動作させることなく、プログラムの処1!
l!経路毎の全実行時間や処Fl!経路における所望の
範囲の実行時間などを容易に知ることがでさるプログラ
ム内容解析装置を提供することである。
問題点を解決するための手段 本発明は、機能語のみまたは機能8nとオペランドとの
組合わせなどから成る命令列に想定される処理経路を検
出し、 処理経路毎に命令列の範囲を設定し、 該範囲の命令列を実行するに要する時間を算出するよう
にしたことを+y徴とするプログラム内容解析装置であ
る。
作  用 本発明に従えば、命令列に想定される処理経路を検出し
、これらの処理経路毎に実行時間を算出すべき命令列の
範囲を設定する。該範囲の命令列毎に予め設定される実
行時間を積算することにより、該範囲の命令列を実行す
るに要する時間を算出できる。
実施例 第1図は本発明の一実施例のプログラム内容解析装fi
!(以下、解析装置と称する)1の構成を示すブロック
図である。第1図を参照して、解析i置1は、従来技術
の項で述べたようなチェックが行なわれる被解析プログ
ラムが、シーケンシャルな形式で記憶されている磁気テ
ープ記録/再生装置(以下、磁気テープ装置と称する)
2と、ランダムな記憶が行なわれる磁気ディスク装置?
!3と、たとえばフングムアクセスメモリ(RAM)な
どによって実現される内部記憶装置4と、たとえばCR
T(陰極線ff)装置や液晶表示装置などによって実現
される表示装置5と、インパクト形または非インパクト
形などの印字装置6と、各種キーやスイッチ類などによ
って実現されるキー人力装置7と、これらによって入力
されろ情報を処理し、またこのような情報の入力/出力
動作を制御するマイクロプロセッサなどを含んで構成さ
れる処理装r!18とを含む。
仕様書の内容に従って作成されたプログラムは、従来技
術の項で述べたように、まずシンタックスエラーなどの
基本的なバグを取除いた後、磁気テープ!Hft2に記
憶される。磁気テープ1fi2の被解析プログラムは、
解析装置1の内部記憶vc置、tへ転送され、後述する
ようなチェック処理が行なわれる。その結果は再び磁気
テープ装ra2へ記憶され、または磁気ディスク装r!
i3へ記憶される。
またこのような記憶処理とともに、表示装r!15へ表
示出力され、また印字装置6によって印字出力される。
第2図は磁気テープ装置i2や磁気ディスク装置3など
の記憶装置の記録状態を示す系統図である。
処理装fi8にパス9などを介して接続された磁気テー
プ装置2の記憶領域10は、前記被解析プログラムの実
行NyAとなるたとえばマイクロコンピュータに関する
アーキテクチャが記憶されるアーキテクチャ記憶領域1
0mや、この被解析プログラムによる制御の対象となる
入力/出力に用いられるアナログ信号をデジタル信号に
変換する際の比較電圧値など、このようなアナログ/デ
ジタル変換器の諸元などを記憶するA / D変換器諸
元記憶領域101+や、本被解析プログラムの実行対東
となるマイクロコンピュータの有する各端子の信号の出
力状態と、この端子に接続される各人力/′ 出力1f
?iの動作状態との関係の定義(たとえばマイクロコン
ピュータの成るピンからハイレベルの信号が導出される
と、LED(発光ダイオード)が点灯する、などの定a
)が、記憶される定義記憶領域10cなどを含んで構成
される。
第3図は第1図示の解析装r!11の基本的動作を説明
する70−チャートであり、第4図は解析聚W11の表
示装置5の表示例を示す図である。第1図〜第4図を参
照して、解析装置2!1の基本的動作について説明する
。解析装W11の電源が投入されるとPt%3図ステラ
ステップn1降の処理が開始され、表示波W15上に各
種入力要求を表示する。ステップn2  では、このよ
うな入力要求に対応して、解析されるプログラムの実行
N象となるマイクロコンピュータの名称を入力する。こ
の様子は第4図(1)に示される。
続くステップn3  では、入力された名称のマイクロ
コンピュータのアーキテクチャが、アーキテクチャ領域
10aに存在するかどうかをt’!断する。
存在していればステップn4で当該アーキテクチャを呼
出し、たとえば内部記憶4に転送し、ステップ115 
 でアナログ/デジタル変換器の名称を入力する。一方
、前記ステップ−13のi1断が否定であれば処理はス
テップn6  に移り、解析i置1は、入力された名称
に対応するアーキテクチャが記憶されていないことを表
示し、新規登録を要求する。
この後、処理はステップn5  へ移る。
ステップn5  のアナログ/デジタル変換器の名称入
力の様子は、第4図(1)に示される。続くステップn
 7  では、解析されるプログラムが動作対象とする
マイクロコンピュータに設定される各ボートの状態と外
部状態との関係を、第4図(2)に示すように入力する
。たとえばPORT 17がノ)イレベルとなれば、ス
タートスイッチがオン状態に切換わl)、PORTlG
がハイレベルになるとサーモスイッチがオン状態に切換
わる。ステップn8  では、前記マイクロコンピュー
タの割込み端子の状態と、外部状態との関係の入力が、
表示装r!15上で要求される。またアナログ/デジタ
ル変換器チャンネル用ボー1については、キー人力装置
7によって所定の事項を入力し、第4図(3)に示すよ
うに所定のデータ項目を入力して各ボートを定義する。
ステップn9では、ステップn7嘗n8での各種入力が
正しく実行されたかどうかを↑1断する。↑1断結果が
否定であれば処理はステップn7  に戻り、上記入力
されたデータを訂正する0判断結果が肯定であればステ
ップnlOに移り、たとえば磁気テープ装r!L2に記
憶されている被解析プログラムを内部記憶装Wi4に転
送して読取る。ステップn11では、後述するような被
解析プログラムを解析し、ステップn12  で解析結
果を出力して処理を終了する。
第5図は第3図のステップ+111  のプログ2ムの
解析処理の内容を説明する70−チャートである。第5
図を併せで参照して、解析1置1の操作について説明す
る。上述したように本発明は、午とえばマイクロコンピ
ュータ用にたとえば7センプ2言語によって作成された
プログラムの内容を解析する装置に関する。被解析プロ
グラムは、解析装置1の磁気テープ装@2に記憶されて
おり、第3図ステップnlOで説明したように、このよ
うなプログラムは磁気テープ装置if2からたとえば内
部記憶装@4へ転送される。
本実施例では、被解析プログラムを以下のriSi表に
示すプログラムと想定して説明する。
(以下余白) 第 1 表(プログラムリスト) 上記第1&のプログラムの内容は、第6図および第7図
の70−チャートに示される。第6図および第7図のス
テップ番号al 、a2 、・・・、a21は、上記第
1表のプログラムリストの行番号に対応している。また
、第1表の全21行の8帝介の実行に関する各7ラグの
状態を示すコンディションコードレノスタ (以下、C
CRと称する)は、下記第2表に示される。ここでは、
符号7ラグN1ゼロ7ラグZ1オーバ70−7ラグ■お
よびキャリ7ラグCの状態を示す。
(以下余白) 第2表 れぞれ[結果によってセットまたはリセットされる」、
「変化しない」、[リセット(クリア)される]および
「セセラされる」を表わす。
(注2)上記プログラムには、レノスタ名称の定義、割
込み制御レジスタの設定、ボート入出力方向の設定、割
込みベクトルの設定等は省略されているが、割込みはC
,APTlのみ許可、その割込みアドレス(ラベル)は
CAPTとする。
上記第1表のプログラムリストで、 (1)入カニPORT1の第6ビツトにスイッチ入力(
スイッチONでハイレベルに変化): PORT2の第
θビットに可変周波信号入力 および、 (2)出カニPORT1の第7ビツトから発光ダイオー
ド出力(出力ハイレベルで発光ダイオード点灯)の入出
力操作が行なわれる、と定義しておく。
これは第3図ステップ117で行なわれる。
上記第1表のプログラムリストが読込まれた解析装置?
?1では、第5図ステップ論1 でプログラムの流れ構
造の解析が行なわれる。
上述したように、第1表に示すプログラムリストは、第
6図および第7図に示す動作内容を有している。しかし
ながら、第1表のプログラムリストから第6図および第
7図示の70−チャートを得るには、人手によって、各
命令が単なる処理命令か条件文による分岐命令かを把握
する作業と、分岐命令の場合にはその分岐先の検出作業
などが′:!rまれ、これらの作業に基づいて上記70
−チャートが作成される。
本発明の眼目の1つは、任意のプログラムリストから、
該プログラムの分岐命令と、該分岐命令によって定めら
れる分岐先命令とを把握した後、該プログラムの処理の
流れの構造の把握を人間の頭脳による作業を介すること
なく、解析装置によって自動的に行なうことができるよ
うにしたことである。またこれによって、後述するよう
に上記フローチャートと類似の形態の出力を得ることが
できる。
このような流れの構造を把握する処理を、第8図の70
−チャートにおいて示す、第5図ステップb1では、命
令行番号を示すパラメータkを「1」に初期化し、ステ
ップb2で第に命令(第1表にオ;ける行番号にの命令
)の読取りを行なう。続くステップ113では、この読
取られた第崎命令が分岐命令であるかどうかを判断する
。この判断はたとえば、第1表における命令を構成する
二−モニツクを読取ればよい、すなわち上述したように
、所望のマイクロコンピュータのアーキテクチャを呼出
した段階で、解析装置1の内a記憶4には、当該マイク
ロコンピュータに用いられるアセンブラ3語のコマンド
や、コマンドに関連するフラグなどのテーブルが別途記
憶され、これを参照することによって、第1表の各命令
が分岐命令であるか否かを容易に判断で終るからである
上記ステップb3  のt4断結果が否定であれば、ス
テップb4でパラメータkを+1インクリメントし、処
理をステップb2  に戻し、上述の説明と同様な処理
を行なう。このとき第1表のプログラムリスFに従えば
、第4命令を読取ったとき、アーキテクチャが参照され
、この第4命令がゼロ7ラグZの状!ll!1(rlJ
または「0」)を条件とする分岐命令であることが把握
される。したがって、第8図の処理において第4命令が
読取られたときステップ1)3のtす断は前足となり、
処理はステップl+5に移る。
ステップ1)5  では、PtS1表の第4命会のオペ
ランドjLOOPJと対応するラベル名を検索する。
第1表のプログラムリストでは、第2命令に上記オペラ
ンドと同一のラベルが付されており、したか−〕で第4
#令の分岐先は、第2命令であることが理解される。ス
テップ+3(11では、一般に分岐命令の行番号にと、
これに対応する分岐先命令行番号−との対(以下、ブロ
ック他情報E称する)(k、+a)を、内部記憶vc置
4に記憶する。この後、処理はステップb4  に移り
、行番号を+1インクリメントして次の行へ処理を進め
る。
このような処理を行なうことによって、第1表のプログ
ラムリストにおける分岐命令と分岐先命令との行番号の
討(k、m)に関しで、下記第3表のような結果が得ら
れる。
この段階で解析装置ll!1は、第1表に示すプログラ
ムリストの流れ構造が把握できたことになる。すなわち
第3表として得られた結果を操作者が容易に理解できる
形式に出力する場合、たとえばPt51表のプログラム
リストの行番号1〜21を19図に示すように一列に配
列し、上記第3表に基づいて、行番号kから行番号論へ
向かう分岐矢符をこれに付すことによって、プログラム
リストの流れ構造として第9図示のような出力が得られ
る。これによって4作者も、第1表のプログラムリスト
の流れ構造を容易に把握することがでさる。こうして第
5図ステップ−1の処理は終了する。
人1こ第5図ステップ論2では、ステップM1で得られ
た被解析プログラムの流れ構造の認識に基づいて、該プ
ログラムをブロックに区分する処理を行なう。このよう
なブロック化処理には、以下のような利点がある。本発
明のプログラム内室解析処理が行なわれる岐Mf析プロ
グラムは、一般にはたとえば致方ステップのような場合
もあり、このようなプログラムには、各種分岐命令も大
量に含まれている。したがって、この上うな分岐命令の
条件の成立の是非に関する岨合わせの敗が膨大な数にな
ることは、容易に想定される。このような膨大な組合わ
せ耽のプログラムの系統を逐次的に考察の対象とし、各
系統ごとに全命令のコンディションコードレノスタ<c
 c R>を記憶スるのは、極めて繁雑であるとともに
膨大な記憶容量が要求される。
したがって本発明の眼目の1つは、被解析プログラムを
後述するような条件の下で、複数のブロックに区分し、
各ブロックに対してPt%5図ステップ論3 の分岐条
f′t−柄出処理、ステップ輪4 の書込み命令単位の
入出力結合処理、tSよびステップ輸5のパイルの結合
処理などから成る同一内容の処理を施すようにしたこと
である。このようなブロックの区分、αは、プログラム
における分岐命令↑テか分岐先命令性であり、1ブロツ
クは分岐命令行または分岐先命令性で始まり、これらの
いずれかで終了し、かつその間にはこれら分1咬命令ま
たは分岐先命令性を含まないように選ぶ。
すなわち全プログラムは、このような複数のブロックの
結合として表現され、同一ブロック内のプログラムの異
なる流れの種類も極めて少数となる。これにより各ブロ
ックごとの内容解析を格段に容易に行なえるようになり
、全プログラムの内容解析は、ブロックごとに得られた
内容解析結果の結合として示される。
このようなブロック分は処理は、第10図の70−チャ
ートに示される。このとき、前記第8図を参照して説明
した第5図ステップ輸1 の流れもが造の解析処理によ
って得られたブロック化情報肘(k、m)について、t
j%1表の全プログラムについて行なうことによって、
第3表に示したような結果が得られる。すなわち、この
ようなブロック化情?!l t”f (k 1  tl
ll 1  )−(k2  、論2  )、−+(ks
、ms)  (本実施例では5=4)が、第1図示の内
部記憶装W14に記憶さ耽ている。以下に説明する第1
0図の処理には、このブロック化情報対列を用いる。な
お上記ブロック化情報列の?!j敗値に1 、に2 、
・・・l 、 :輸1.輸21”’?165について総
称する場合には、それぞれ記号kpmを用いて示す。
第10図ステップC1では、fj%1表のプログラムの
行番号を示すパラメータiを「1」に初期化する。ステ
ップc2では上記行番号iに関して、この行番号i1.
:′!?シい上記ブロック化情報kまたはブロック化情
ff1.が存在するか否かを判断する。このtq断が1
?定であれば、ステップC3でブロック化情11jk、
論によるブロック化処理を行なう。
このブロック化処理は、以下のように行なわれる。まず
ステップc3  において、判断が肯定となるブロック
化情報に、曽が記憶される。次にステップc4でイテ番
号−が+1インクリ/ントされ、ステップc5では行番
号iがこのような行番号の最終値すなわちM A X 
(i)を超えたかどうかの判断を行なう。
?!断結果が否定であれば、第10図に示すブロック化
処理は被解析プログラムの最終行よ″C到達していない
ことになり、ステップc2  に戻る。以下、同様の処
理が繰り返し行なわれ、ステップC2の判断が肯定とな
るブロック化情報に、糟があった場合、前回ステツ、ブ
C2の判断をI′r定としたブロック化情報に、鴫を呼
び出し、これらを組み合わせてブロック情報対(’+β
)として記憶する。以下、このような処理がプログラム
の最終行まで繰り返し行なわれる。
上記ステップc1〜c5で行なわれる処理は、たとえば
第1表のプログラムの第1行から第21行までを順番に
たどって、その中でブロック化情報(k4)として示さ
れる分岐命令行および分岐先命令性に関して、行番号の
増加方向において14接する命令列の組をブロック情報
(’+β)として記憶する処理であ耽 上記ステップc5  のt!断が肯定となれば、処理は
ステップc6  に移り、上記ブロック化情報列(kj
+IjJ>                    
  ・・・(1)J=1+2+・・・、S によるブロック化処理を行なう。
このブロック化処理は、第1!2のプログラムリストに
おいて、分岐処理を実現するブロワ9ヲik定する処理
となる。すなわち第3表のブロック化情報(k、鴫)に
おいて、たとえばブロック化情報対(,4,2)は、第
4命資から第2命令・\処理が分岐する系統を規定して
いる。しrこがって、これらのブロック化情報対(k、
輸)を、曲記ブロック情1′F1対(’+ β)と異な
る内容をなす分岐ブロック情報対(α、β)1)rとし
て再定義することにより、第1表のプログラムリストに
関して、分岐を行なう系統を網羅できる。ステップCG
 による分岐ブロック化処理が終了すると、第11図に
示すブロック分は結果が得られる。
また上述のように、ブロック情報対(α、β)と、分1
咳ブロック情報対(α、β)11rとを定義することに
より、第1表のプログラムリストのたとえば第91?i
7令、第10命令およびfpJ11命令からなるブロッ
クと、fjS9命令と第11命令とかC)なる分岐ブロ
ックとを明瞭に区分できる。この上うなブロック情報対
(a+β)および分岐ブロック情報対(a。
β)brを、下記の第4表に示す。
1jtJ4  表 以下、得られた各ブロックを示すに際して、第11図に
示すように記号■、■、・・・、0 をもって示す。す
なわちブロック■は、行番号1,2の命令群を示してい
る。このような記法に従い、f:tS1表のプログラム
は第12図および第13図で示されるように表現される
。ここで、第1表のプログラムを第12図およびt51
3図の2つの図に区分したのは、PtSi2図は行番号
1〜12のメイン処理ルーチンを表わし、第13図は行
番号13〜21の後述するような割込み処理ルーチンを
表わし、これらは相互間に亘って分岐関係が存在しない
独立な内存だからである。このようにして、第5図ステ
ップI−2のブロック分は処理が終了する。
第5図ステップ悄3 では、分岐条件摘出処理が行なわ
れる。このような分岐条件摘出処理は、第14図の70
−チャートに示される。第14図ステップd1  では
、上述したようなブロック化処理を行ない、各ブロック
化情報対(’tβ)、(α、β)1】「を得る。ステッ
プd2では変数jを「1」に初期化する。ステップd″
3 以降の処理では、分岐条件として第1ブロツク■、
第2ブロツク■、第3ブロツク■、・−・、第13ブロ
ツク■を処理が通過する条件を求めることになる。
(1)第1ブロツクのを通る条件 第1ブロツク■は第6図に明らかなように、第12命令
の無条件ノヤンブ命令によって処理が無条件に通過する
ブロックである。
(2)P1%2ブロック■を通る条件 第14図ステップd3  では、tj%3表を参照して
第j番目(現時点ではj=1)のブロック化情報N<k
論)を参照する。ステップd4では、ステップd3にお
けるブロック化情報対(k、m)において、第に命令の
分岐条件を支配するフラグを検出する。第4表によれば
、j=1のときに=4であり、tJ%1表のプログラム
の第k(= 4 )命令jBNEJの分岐条件を支配す
るフラグの検出を行なう、これはアーキテクチャによっ
て、各命令それ自体に規定される条件となる。すなわち
上記第4命令の場合には、ゼロ7ラグZであ耽 ステップd5  では、命令列の配列方向と反対方向に
一命令を読取る。この命令が上記フラグ(ゼロ7ラグZ
)を変化させる命令であるかどうかのステップd6  
における判断が否定であれば、ステップd5.d6を繰
り返す。肯定であればステップd7  に移り、フラグ
を変化させる命令を記憶する。
第1表のプログラムリストと第2表のOCRとを参照す
れば、この命令は第3命令[cMPA  COU N 
T Jであり、ゼロ7ラグZを変化させる命令であるこ
とがtl断される。ステップd8  では、第1表のプ
ログラムリストを参照して、ゼロ7ラグZに関する当該
第3命令中のパラメータを検出する。すなわちPJ3命
をはアキュムレータAI:関する命令であり、パラメー
タとしてアキュムレータAが検出される。
ステップd9 では、該命令が該パラメータを変化させ
る命令か否かをtq断する。このf!断は前記アーキテ
クチャに含まれる前記CCRを参照して竹なおれる。判
断が肯定であれば、ステップd10に移り当該命令が記
憶され、ステップdll  に移る。第3命令[cMP
AJはアキュムレータAの内容を変化せず、ステップd
9  の判断が否定となり、ステップdlOを経ること
なくステップdllに移る。
ステップdll  では、現在検討中のブロックが第1
表のプログラムリスト中でループを構成するブロックか
どうかを判断する。現時点では、解析装r!11は第4
命令および第3命令しか認識しておらず、この判断は否
定となり、処理はステップd12に移り、ステップd1
0 で記憶した命令が、前記パラメータの入力命令であ
るがどうかを判断する。この判断が肯定であれば、ステ
ップd15に移る。一方、上記ステップdll  の判
断が1r定であれば、ステップd14  で分岐条件に
後述するようなループ要素を追加し、処理はステップd
15に移る。
ステップd15  では、当該分岐命令が第9図に示す
ような本実施例における被解析プログラムの構造におい
て、ネスティング構造に含まれるものであるかどうかを
t!断する。 t!断結果がl’を定ならば、ステップ
dlG  で後述するような冬スティング要素を追加し
、ステップd13  で記憶したブロック列の種類がす
べて終了したがどうかをf4Wtシ、判断結果が1?定
であればステップd17  で分岐対のパラメータjを
プラス1インクリメントし、処理はステップd3に戻る
。前記ステップd15のf1断が否定であれば、ステッ
プdlG  を経ることなく、処理はステップd13 
 に移る。
第3#令rCMPAJについて、前記ステップd12の
判断は否定となり、処理はステップd19に移り、現在
検討中の命令が当該命令を含むブロックの先頭であるか
どうかを1′1断する。第3命令について?噂断結果は
否定であり、ステップd20で命令列の配列方向と反対
方向に一命令を読取り、処理はステップd9 に移り、
前述の処理を操返す。
前記ステップd19  で1断結果がけ定ならば、ステ
ップd21  に移り、当該ブロックに処理が到達rる
ブロック列の!1類を記憶する。rなわち当該ブロック
に至るルートの種類を記憶する。ステップd22  で
は、記憶したブロック列中から−ブロック列を選択し処
理はステップd20に戻る。
第1表のプログラムリストにおいて、第4命令から上述
の処理が繰り返される。このとき、第1命令[LDAA
Jを解析する段階で、ステップdl。
で記憶されてbた命令は、オペランドで記述すると、 A=T I ME−(COLINT+ 1 )   ・
・・(2)になる。
またステップd11  の判断は肯定となり、第2式の
分岐条件にステップd14  でループ要素が付加され
、下記第3式の分岐条件が得られる。すなわちループを
0回繰返せば上記第2式は、A=T I ME −(C
OUNT+n)   ・・・(3)と表される。この実
行内容がループを構成する条件は、第4frt令で分岐
条件が成立すること、すなわちゼロ7ラグZに関して、 2=0                 ・・・(4
)が成立する場合である。したがって上記ステップdl
Oでは最終的に、 T I ME  (COUNT+n)≠0  ・・・(
5)の条rトが得られる。これは第2ブロツク■を処理
が通過する条件となる。
(3)第3ブロツク■を通ろ条件 この場合、vJ1表のプログラムリストにすjいて、□
処理が第2ブロツク■に進イテしない条件、すなゎち、
上記t55式の条件の否定 T I ME  (COUNT+n)=O・・・(6)
が求めろべき条件となる。
(4)m、iブロック■を通る条f↑ ステップd3  では、!54ブロック■の最終行番号
9をブロック化情報にとする対(k、翰)が、j=2の
場合として、第3表より(8,11)として読出される
。このrtS8命介に討して、上記第2ブロツク■を通
る条件を求めた処理と同様な処理が行なわれる。ステッ
プd4  では、第1表のプログラムの第k(= 8 
)命令1’BMIJの分岐条件を支配するフラグの検出
を行なう。すなわち、上記18命令の場合には、符号7
ラグNである。
ステップd5.d6では、この符号7?グNを変化しう
る最近の命令を検索する。上記tPJ1表および第2表
を参照すれば、第7命令II、DAB  pORTIJ
が対応することが検出される。ステップd8  では、
この符号7ラグNに関する第7命令中のパラメータを検
出する。すなわち第7命令はアキュムレータBに関する
命令であり、このアキュムレータBがパラメータとして
検出される。
ステップd12  では、パラメータとしての7キユム
レータBの入力命令を検出する。f:tS1表のプログ
ラムリストを参照すれば、上記第7命令自身が7キユム
レータBの入力命令であることが検出される。したがっ
てステップd12  の判断は1?定となり、ステップ
d15  でのネスティング構造判断は否となるため、
tPJ3Pt5ブロツク)〒内容をオペランドによって
表現すれば、求める分岐条件は、 PORTI 7=O・・・(7) となる、ここで表記rPORT17=OJは、入出カポ
−)PORTIの第7ビツトが「0」となる状態を表現
する。この後、処理はステップd13  に移りf1断
が否定となり、@述のような処理を経て処理はステップ
d3に戻る。
(5)第5ブロツク■を通る条件 ステップd3では、j=3の場合としてブロック化情報
討(k、曽)ミ(9,11)が読出され、ステップd4
ではff1k(=9)命令r13EQ  NANNOI
Jの分岐条件を支配するフラグすなわちゼロ7ラグZが
検出される。続いてステップd5.dGでは、このゼロ
7ラグZを変化しうる最近の命令として、第1表および
第2表を参照して、第7命介rLDA[lJが検出され
る。
このロード命令は7キユムレータBにrPORTIJの
内容を読込む内容であり、このアキュムレータBl:関
するゼロ7ラグZの1k文の是非が分岐条件となる。し
たがって、前述のような処理が繰り返された後、ステッ
プd10 では、PORTIの少なくとも1つのビット
=1・・・(8) が得られる。この後、処理はステップdi 1  に移
り、第5ブロツク■がループ構造の一部をなすがどうか
が判断され、これは否定となる。
続くステップd12  の判断は肯定となり、ステップ
d15  で第5ブロツク■がネスティングも3造の一
部を成すかどうかが1′可断される。第5ブロツク■は
2′rfLの冬スティング構造を構成しており、ステッ
プt416  で上記第8式の分岐条件にネスティング
要素が付加される。
すなわち、第12図に明らかなように、第5ブロツク■
は、第4ブロツク■を通過しなければ1達しない処理ブ
ロックであり、したがって第5ブロツク■の通過条件は
、第4ブロツク■の通過条件と上記第8式の条件との論
理積となる。rなわち、 PORT17=0 かつ、 PORT 1の少な(とも1つのビット=1・・・(9
) の分岐条件が得られる。この後、ステップt413にお
いて、記憶したブロック列はないので、処理はステップ
d3に戻る。
(6)第6ブロツク■を通る条件 114図の70−チャートにおいて、ステップd3でj
=4のとき、対応するプロツク化情11に、+*が、P
t53表を参照して存在しないことがt’1 Mされる
。したがって、本件実施例のプログラム内容解析装置!
1は、現在のPt56ブロツクの分岐条件を、以萌の直
鎖ブロックと同一分岐条件として設定する。すなわち現
在の第6ブロツク■の分岐条件は、以11qの直鎖ブロ
ックである第3ブロツク■の分岐条件、すなわち上記第
6式の条件として設定される。この後、処理は前記パラ
メータjを+1インクリ/ントした後に、ステップd3
に戻る。
(7)第7ブロツク■を通る条件 第7ブロツク■は、上記第2ブロツク■の分岐条件を考
察した段階で、第2ブロツク■と組合されてループ構造
を構成するブロックとして把握されている。したがって
第7ブロツク■の分岐条f′トは、上記第3ブロツクで
挙げたループ処理の離脱条件の否定の形式の条1′トで
ある上記第5式の条件として示される。
(8)第8ブロツク■を通る条件 fvS8ブロック■は、ttS3表および第4表に示す
分岐ブロック情報対(8、11)l+rで示される。し
たがって第1表第8命令の分岐条件より、第8ブロツク
■を処理が通る条件は、第4ブロツク■を通る条件の否
定、すなわち、 PORT  1 7=  1            
  ・ (10)となる。
(9)第9ブロツク■を通る条件 tjS9ブロック■も、ill’$3表およびI:IS
4表から分岐ブロック情@(9、11)brによって規
定されるブロックであり、したがって前記第5ブロツク
■を通る条件を考察した際に検討した第1表第9命令の
分岐条f′I−(第8式)の否定の条件と、第4ブロツ
クq)を通る条件(第7式)との論理積となる。すなわ
ち、 PORTIの 全ビット=0 かつ PORTlの第7ビツト=O・(11)の条件が
得られる。
(1G)第10ブロツク[相]を通る条件第10ブロツ
ク[相]は、第6ブロツク■と分岐命令を介在すること
なく線形に続くブロックであり、したがって第10ブロ
ツク[相]を処理が通る条件は、第6ブロツク■を通る
条件、すなわち第3ブロツク■を通る条件(上記第6式
)と同一になる。
(11)第11ブロツク■を通る条件 第1表のプラグラムリストがら明がなように、第13#
介〜第21命令は、第1命介〜第12命令のメインルー
チンに対する割込み処理ルーチンである。その内容から
、上記第2表の欄外に付した入力/出力の定義において
、PORT2の第0ビツトに立ち上がりエツノまたは立
ち下がりエツノの信号が入力された状態を表わす割込み
ベクトルの条件、 I RQ 2 = (1・・・(12)が得られる。
(12)第12ブロツク@を通る条件 上記第4ブロツク■を通る条件が導出された処理と同様
な処理を経て、第18命令[BNEJでゼロ7ラグZ=
1となる条件が求められればよい。
すなわち第18命介がらプラグラムリストをさかのぼり
、当該分岐命令を支配するフラグであるゼロ7フグZを
変化させる最近の1!1y+を検出する。
これはt517命令でストア命令[5TAAJが検出さ
れ、パラメータとして7キユムレータAが検出される。
アキュムレータへの入力命令として、第13命令でa−
ド命令[LDDJが検出される。したがって第13命令
〜第18命令の火打内部をオペランドで記述すれば、 1cAPTt(D) −ZCAPT(D)++7)上位
ハイド=0・・・(13) が得られる。
(13)第13命介■を通る条件 この場合、第1表のプログラムリストにおいて、第13
命令以降の処理の進行において、処理が第12ブロツク
@に進行しない条件、すなわち上記第13式の条件の否
定、 1cAr’TI(D) −ZCAPT(D)+77) 
J:位ハイド≠。
・・・(14) が求めるべき条件となる。
このようにして第5図ステップm3  において摘出さ
れるべき分岐条件は、各ブロック■〜0を処理が通る条
件として導出された。これ以降、処理は第5図ステップ
m4に移る。
ステップ輪4 では、再込み命令単位の人出方結合処理
が行なわれる。ここに言うδ込み命令とは、ストア命イ
Yと、オペランドの直接程fit命介(たとえばオペラ
ンドの数値を+1増加させるインクリメント命令[IN
cJなど)とを指す。このような命令の検出は、第1&
のプログラムリストにおいて、各命令を読取ることによ
って直ちに実現でさる。
このような入出力の結合処理は、第15図の70−チャ
ートに示される。第15図 ステップel。
C2では、第1表で示されるプログラムに対して、1i
if述したブロック化処理と分岐条件の生成処理とを行
なう。この後、ステップe3  では、第1表に示され
るプログラムにおいて、書込命令が検出される。このよ
うな書込み命令としては、ptrJ2命令1’INcJ
、第6命令jsTAAJ、第11命令し5TAAJ、第
16fg令「5TXJ、第17命令rSTAAJおよび
第20命令「STAΔ」が、後述するように検出される
(1)第2命令1−INCJについて 第15図ステップe4  では、当該命令に関するパラ
メータを検出する。上述した残余の書込命令、たとえば
第6命令[S T A A Jでは、このようなパラメ
ータとしてたとえばアキュムレータAが検出されるが、
第5命令のようなメモリの直接操作命令では、本ステッ
プを行なうことなく、ステップe5  で当該命令がそ
の命令の所属するブロックの先頭であるかどうかを判断
する。否定であれば、ステップc6  に移って、命令
列の配列方向と反対方向に一命令を検出する。1デ定で
あればステップe7  で、当該ブロックに至るブロッ
ク列のJ+11類、すなわち当該ブロックに至る処理の
系統の種類を記憶する。
第2命令に関しては、第2命令を含む第2ブロツク■に
至るブロックは、上記ブロック化処理から得られた第1
2図および第13図の処理の流れ図に示されるように、
第1ブロツク■おより第7ブロツク■である。ステップ
e8  では、このような記憶したブロック列中から−
ブロック (たとえば第7ブロツク■)を選択し、処理
はステップe6に移る。
ステップe6  では、選択されたブロックにおいて、
命令列の配列方向と反対方向に一命令を検出し、現時点
では第4命令1’BNEJを検出する。これによりステ
ップe9.el 1 、 cl 2の判断は、それぞれ
すべて否定であり、したがって処理はステップe5 に
戻る。このようにして上述した処理を繰り返し行ない、
ステップe6  で第2命令が読取られたとき、ステッ
プe11 でループになったことが?ql!され、ステ
ップe13  でループ要素が追加される。すなわちt
jS2命令の実行内容は、C0UNT←C0UNT+1
     ・・・(15)であるが、この処理がループ
構造にしたがって11回実行される場合を想定すると、 COtl N T 4− COU N T + n  
   ・・・(16)となる。これが第2命介の実行内
容の一般形である。
このときの火打条件は、上記fjS7ブロツク■を通る
条件、すなわち上記第5式の条件となる。したがってr
jtJ2命令に関しては、 ifTIME−(Il+C0UNT);1’0tbcn
  C0UNT −C0UNT+n         
−(17)となる。
(2)第6命令について ステップe3  では、次の書込命令である第6命令を
検出し、ステップe4  で第6命令に関するパラメー
タすなわちアキュムレータAを検出する。
ステップe5のt1断は否定となり、ステップe6でt
jS5命令[cLRAJを検出する。
ステップC9では、この第5命令が上記パラメータであ
る7斗ユレータAを変化させる+!i7令であることが
判断され、ステップelOで第5命令が記憶される。ス
テップel 1  では、当該第5命令がループ構造に
含まれないことが判断され、ステップe12  では、
第5命令が7キユムレータへの入力命令であることが判
断される。この後、ステップe14  のt’!断で肯
定となり、処理はステップe15に移る。
したがって実行内容は、 C0UNT、−0・・・(18) となり、χ行条f1−は、処理が第3ブロツク■を通る
条件、すなわち上記第6式で示される条件と同−になり
、これらを整理すれば、 if   TIME −(n+ C0UNT)= 0L
lten  C0tlNT←O−(19)の結果が得ら
れる。
(3)第11命警について 第11命令については、第15図に示されるステップc
3  で当該命令が検出された後、ステップe4  で
パラメータとして7キユムレータAが検出されるゆステ
ップe5  では、上記第3表および第4&を参照して
、第11命令がI:Aaプaツク■の先頭であることが
19断され、処理はステップc7に移る。このtlI断
によって、第1表のプログラムリストにおいて、第11
命令に到達rるには第5ブロツク■、第9ブロツク■お
上り第8ブロツク■をそれぞれ通る3つの経路が存在す
ることが認aされる。以下、後述する実行内容の検出と
実行条件の検出とを各経路毎に仔ない、それらの結果が
論理和として出力される。
(ア)第5ブロツク■を通る経路の場合ステップe4 
でパラメータである7キユムレータAを検出し、プログ
ラムをさかのぼると、第10命令で7キユムレータAに
関するロード命静が検出される。ここ″C第11命令は
、入出力ボートへの書込み6rI令であり、論理演算と
して扱う。したがって第10命令および第11命令によ
る実行内容は、第1表のプログラムリスト上の表現では
、r’0RT1←¥80        ・・・(20
)と表現されるが、論理演算の結果としては、上記第1
0式と同等な PORT17←1        ・・・(10)なる
論理式が得られる。
このときの実行条件は、第5ブロツク■を処理が通る条
件(上記第9式)と、第2ブロツク■お上り第7ブロツ
ク■からなるループを処理が離脱する条件、すなわち処
理が第3ブロツク■を通る条件(上記第6式)との論理
積となる。したがって、if   TIME −(++
+ C0INT)= 0and  PORT17= 0 ind  PORTI≠¥00 Lben  PORT17 ←1         −
 (21)なる論理式出力が得られる。
(イ)第8ブロツク■を通るl¥J6 ステツプc6 でプログラムをさかのけると、第6命会
でストア命1sTAAJが検出される。したがって求め
る文行内′αは、前述の第6命令の場合と同様にして、
PORTI←¥00が求められる。
また実行条(1−は、前述したループの離脱条件すなオ
ンち第3ブロツク■を通る条件(第6式)と、第8ブロ
ツク■を処理が通る条件(第10式)との論F?!積で
ある。したがってこれらをまとめて、if   TIM
E−(n+C0UNT)= 0and  PQRT17
= 1 t b e n  P ORT 1 ←¥00    
     ・<22)の論理式出力が得られる。
(つ)第9ブロツク■を通る場合 ステップe4  で検出されるパラメータは、アキ゛ 
 ユムレータAであり、第9ブロツク■を通ってプログ
ラムをさかのぼると第6命令を検出する。したがってこ
の場合の実行内容は、上記第22式と同一であり、実行
条件はループの離脱条件すなわち第3ブロツク■を通る
条件(第6式)と、第4ブロツク■を通る条件(第7式
)と、第9ブロツク■を通る条件(第11式)との論理
積である。したがってこれらをまとめて、 if   TIME  (n + C0UNT)= 0
and    PORTIフ=O and  (PORT17”Oand PORT1=¥
00)t I+ e n  P ORT 1 ←¥00
         ・(23)の出力が得られる。
このようにして、第11frr令に関する入出力条件の
結合処理が実現された。
(4)第16命令について ttS1表のプログラムリストにおいて、行番号13〜
21は割込みルーチンであり、行番号1〜12のメイン
処理・ルーチンとは独立の内容となっている。したがっ
て第15図ステップe4  で第16命令「STX」が
検出される。第16命令に関して検出されるパラメータ
は、インデックスレノスタXであり、ステップe6  
でプログラムをさがのぽると第15命令でロード命をか
検出される。したかって第16命令に関する入出力結合
結果は、if   IRQ2=1 Lbe++  ZCAPT 4−CAPT 1    
=(24)の論理式出力が得られる。
(5)第17命令「5TAAJについて第16命令と同
様にステップe4 で、パラメータとして7キユムレー
タAを検出t71.ステップe6 ′cプログラムをさ
かの+rると、P113命令でロード命令1−LDDJ
が検出される。したがって第17命令でオペランド[’
MMEJlこストアされるのは、オペランドrcAPT
lおよ1オペランド[ZcAPTJの各上位バイト情報
である。また実行条件は第16命令と同一である。した
がって二技らを整理して、 if   IRQ2=1 then  TIHE←(CAI’TI(D)−ZCA
PT(’D)>(II)・・・(25) 注:第25式の右辺末尾の(H)は、右辺のオペランド
の上位バイトであることを示す。
(6)fi 20命令rsTAAJについて第20命令
の場合には、Pt515図ステップe4で、当該命令に
関するパラメータすなわちアキュムレータAを検出する
。このパラメータを決定するRWrc7)命令をプログ
ラムをさかのぼってステップe6  t’検索すると、
第19命令で7キユムレータAに関する毘作命介rDE
CAJが検出される。
したがって第20命令の実行内容は、 C0UNT−A−1・・・(26) となる。
ここで第19命介は、第18命令の分岐命なでゼロ7フ
グZ=1の場合であることを考慮すると、上記第25式
において、 T I ME=7キユムレータA=0   ・・・(2
7)の場合に相当する。したがって上記第26式におい
て、アキュムレータA=0であり、 C0UNT←¥FF         ・・・(28)
が結論される。
その実行条件は、第11ブロツク■お上りPIS12ブ
ロック@を処理が通る条件、すなわち上記第12式およ
び第13式で示される各条件の論F’!!積となる。し
たがってこれらをまとめれば、if   rRQ2=1 and  (CAPTI (D)  ZCAPT(D)
)(H)=Otl+en  C0UNT←¥FF   
      −(29)が得られ、これでfitJ1表
のプログラムリストに関して第5図ステップ亀4 の書
込み命令単位の入出力結合処理が行なわれる。
続いて、第5図ステップ輸5 で後述するようなパイル
の結合処理が行なわれる。ここに言うパイルとは、プロ
グラムリスト中におけるオペランドの直接操作命令を含
むたとえば上記tjtJ29式のような書込み命令が実
行されるための実行条件と実行内容との結合表記を指す
。その具体的処理内容は第16図の70−チャートに示
される。
上述したように、第1表のプログラムリストには6個の
書込み命令があり、第3命令には第17式のパイルD7
、tpra命令にはfjS19式のパイル’   D6
、第4命令には第21式〜第23式のパイルD3.D2
.Di、tj%15命令にはfj%24式のパイルD5
、第17命介には第25式のパイルD4、第20命令に
は第29式のD8がそれぞれ作成される。
以下、第16図を参照して、パイル結合処理について説
明する。ステップ「1 では、ボートへの書込み命令が
ある外部出力命令パイルD1.D2゜D3を検出する。
ステップf2  では、たとえばパイルD1中の未決定
パラメータを決定するパイルを検出する。すなわち、パ
イルD1の実行条件に関して、パラメータrTIMEJ
、「c、0UNTJが未決定である。
また、残余の外部出力命令パイルD2.D3についても
、それぞれ実行内容は異なるものの、未決定パラメータ
はパイルD1と同一のものが検出される。
以下、このようなパラメータを決定するパイルを検出す
る。パラメータrTIMEJについてはパイルD4が検
出され、続くステップ「3 では該パイルD4に含まれ
る全てのパラメータが決定されているかどうかを判断す
る。現時点ではfq断結果は否定であり、処理はステッ
プr2  に戻り、パラメータrCAPT IJ、rZ
CAPTJを決定するパイルを検出する。このとき第5
パイルD5が選ばれる。このときステップr3  では
、全パラメータが決定されたことがtq断され、処理は
ステップ「4に移り、外部出力命令パイルが終了したか
どうかをtlI断rる。現時ツユでは外部出力命令パイ
ルD1のみを検討しており、判断結果は否定となり、処
理はステップf1  に戻る。
これ以降、パイルD2.l’)3が外部出力命令パイル
として検出され、それぞれについて前述の場合と同様な
処理が行なわれる。パイルD1〜D3では、未決定のパ
ラメータは共通であり、したがってステップf2  で
は同一内容の処理が行なわれる。このようにしてパイル
D3に対するパイル結合が終了した後、ステップr4 
 では判断結果が肯定となり、ステップf5に移って第
17図(1−1)−(3−3)のパイル結合結果が出力
される。このようにしてtss図ステップ輸5 のパイ
ルの結合処理が終了する。
以上のように本実施例では、第5図ステップ曽3以降の
分岐条件摘出処理などを行なうに先だって、第5図ステ
ップ鵠1 の流れ構造の解析処理を行なうようにした。
したがってプログラム中の分岐命令や分岐先命令が事前
に明らかとなり、OCRなどの制御情報は、これらの命
令に関してのみ記憶すればよい。したがって被解析プロ
グラムの動作内容を分析するに当り、たとえばCCRを
全#今にわたって記憶する必要がなく、装置に要求され
る記憶′I!量を格段に削減できる。
上述したように被解析プログラムの動作内容を解析して
、第17図示のようなパイル結合出力を行なう解析装置
1において、第2I2I示の記憶領域10のアーキテク
チャ記憶′fIi域10aには、第1表に示すような被
解析プログラムを構成する命令の種類毎に、その実行時
間が記憶されている。たとえば第1命令[LDAAJは
3/js、また第2frI令jlNcJは6μsなどの
ごとくである。したがって、このような記憶内容を順次
読取ることによって、m1表に示されるプログラムに関
して、所望の命令行の組合わせからなる命令列の実行時
間を算出することができる。すなわち、第5図ステップ
峻10の実行時間表示処理が実現される。
以下、説明の簡略のため、下記第5表に示すプログラム
例を用いて実行時間算出動作について説明する。
第 5 表 また、このような実行時間算出処理を実現する手順は、
第18図の70−チャートに示される。
第18図を併せて参照して、ステップ81  では、第
5表のプログラム例における分岐命令が検出され、この
場合、第2命令および第5命令がそれぞれ検出される。
このような分岐命令の検出は、被解析プログラムの各命
令を第1命令から順次読取り、読取られた命令が分岐命
令であるがどうかを解析装r!11のアーキテクチャ記
憶領域10aを参照しつつ判断することなる。このとき
解析装置1はステップg2  において、読取られた各
命令毎にアーキテクチャ記m領域10aに記憶されてい
る各実行時間をそれぞれ読出す。
ステップg3  では、当該被解析プログラムの全命令
行が読取られたがどうかを71断し、最終行を読取るま
で前記ステップg1〜g3の処理をa返す。
ステップg3の判断が肯定となればステップg4に移り
、当該被解析プログラムにおける処J!!!経路を検出
する。すなわち任意のプログラムには、それに含まれる
分岐命令によって複数の種類の処理経路が存在する。す
なわち分岐命令が単−個であれは処理経路は2種類ある
ことが想定され、一般に、分岐命令がN[あれば処理経
路は最大2 個あることが想定される。第5表の被解析
プログラム例では、この処理経路はfjS19図に示す
ように行番号1.2.3からなる処理経路aと、行番号
1,2゜4.5.7からなる処理経路すと、行番号1.
2.4 。
5+ 6.7からなる処理経路Cとからなる。
すなわち第18図ステップg4  では、このような処
P!、n路a、b tcが検出されることになる。ステ
ップ85  では、実行時間を算出すべき処理経路およ
びその処理経路中における実行の範囲を設定する。すな
わち実行時間の算出は、たとえば処理経路すにおいて、
その全命令行に関して行なわれてもよく、命令性1+2
+4+5について行なわれてもよい。
次にステップg6  て・は、被解析プログラムにおい
て主プログラムに対し、割込処理を打なうルーチンが存
在するならば、この割込数を算定する。
第5表のプログラム例では、このような割込ルーチンが
存在しないため、割込数は算定されない。
なお本ステップについては、後述する。ステップ87で
は、ステップg2で第5表に示すような命令毎の実行時
間をすでに読取っており、これを積算する。今、第19
図に示す処理経路a、b、eの全経路にわたって実行時
間を計算する場合、処理経路aでは11μs1処理経路
l)では20μS、処P1経路Cでは26μsの積算結
果がそれぞれ得られる。
ステップ88  では、各処理経路に閃して直達したよ
うなパイル結合処理を行ない、得られたパイルと箭記積
算結果とを結合して出力する。この出力は、処理経路a
tb、 eの各場合に対応して、下記第30式〜32式
のように出力されてもよい。
(Al路a) if   F L A Gの第7Bit=1then 
 11 μs  [M I N ]      −(3
0)(経路13) if   FLAGの第7 B it= 1and  
C0UNT+1≠O tl+en  20μS            ・(
31)(経路C) if   F L A G〜の第7 B it= 1a
nd  C0UNT+1=O tl+en  2 G μs  [M A X ]  
    −(32)またこのような出力結果を第20図
に示すようなヒストグラムの形式で出力してもよい。第
20図のヒストグラムの横軸は実行時間であり、縦軸は
処理経路の数である。
一力、第18図ステップg6  において、割込数を算
定する処理が実行される場合について説明する。彼角イ
析プログラムに関して、主ルーチンと、これに所定の条
件のもとで割込処理を訂なう割込ルーチンとが存在する
場合、主ルーチンと割込ルーチンとの実行時間とは、そ
れぞれ上述したような処理手順で算出することができる
。−)7 、主ルーチンに割込ルーチンが割込むタイミ
ングの最大数は、主ルーチンの最大実行時間を割込周期
の最小時間で除して得られた商に1を加えたものである
。すなわち主ルーチン、割込ルーチンおよび割込周期の
最大時間および最小時間が下記第6表の場合を例に想定
する。
(以下余白) fjsG     表 (単位;μs) このとき割込回数の最大値は、〃ウス記号[]を用いて
、 (300/250]+1=2      ・・・(33
)と算出される。したがって主ルーチンに対する割込処
理を想定した場合の第6表から得られる最大実行時間は
540μsとなり、最小時間は主ルーチンに対する割込
処理が1度も行なわれない場合である。したがって27
0μSとなる。このようにして被解析プログラムに関し
て、任意の処理経路の任意の範囲の実行時間を容易に知
ることができる。
効  果 以上のように、本発明に従えば、被解析プログラムの任
意の処理経路と火付範囲を指定することによって、容易
にその実行時間を知ることができる。
【図面の簡単な説明】
第1図は本発明の一実施例のプログラム内容解析装置1
の構成を示すブロック図、第2図は解析′vc置1の記
憶領域10の構成を示すブロック図、ttS3図はプロ
グラム内容解析装置1の基本的動作を示す70−チャー
ト、第4図は表示装置5の表示例を示す図、第5図は解
析装r!11のプログラム内容解析処理手順を示す70
−チャート、第6図および第7図は被解析プログラム例
の動作内容を示170−チャート、第8図は流れ構造の
解析処理手順を示す70−チャー)、m9図は流れ構造
の解析処理結果を示す系統図、第10図はブロック化処
理手順を示す70−チャート、第11図はブロック化処
理の中間結果を示す系統図、第12図および第13図は
ブロック化処理結果を示す系統図、第14図は分岐条件
摘出処理手順を示す70−チャート、第15図は入出力
結合処理手順を示す70−チャート、第16図はパイル
結合処理手順を示す70−チャート、第17図はパイル
結合処理結果を示す系統図、fiS18図はプログラム
の実行時間を算出する処理を説明する70−チャ−1・
、第19図は第5表のプログラム例の処理経路の種類を
示す図、第20図は実キテ時間算出処理の出力例を示す
グラフである。 1・・・プログラム内室解析V装置、2・・・磁気テー
プ装置、3・・・磁気ディスク装置、4・・・内部記t
a装置、5・・・表示装置、8・・・処理装置、10・
・・記憶領域、10a・・・アーキテクチャ記憶領域 代理人  弁理士 画数 圭一部 第3図 第4図 第5図 第 6図 メインルーチンへ 第8 図 13−−一−1’1込 第10図 第11図 第12図     第13図 第16図 趣等

Claims (1)

  1. 【特許請求の範囲】 機能語のみまたは機能語とオペランドとの組合わせなど
    から成る命令列に想定される処理経路を検出し、 処理経路毎に命令列の範囲を設定し、 該範囲の命令列を実行するに要する時間を算出するよう
    にしたことを特徴とするプログラム内容解析装置。
JP62154059A 1987-06-20 1987-06-20 プログラム内容解析装置 Pending JPS63317851A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62154059A JPS63317851A (ja) 1987-06-20 1987-06-20 プログラム内容解析装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62154059A JPS63317851A (ja) 1987-06-20 1987-06-20 プログラム内容解析装置

Publications (1)

Publication Number Publication Date
JPS63317851A true JPS63317851A (ja) 1988-12-26

Family

ID=15576009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62154059A Pending JPS63317851A (ja) 1987-06-20 1987-06-20 プログラム内容解析装置

Country Status (1)

Country Link
JP (1) JPS63317851A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6423346A (en) * 1987-07-20 1989-01-26 Yokogawa Electric Corp Evaluating method for program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5854449A (ja) * 1981-09-28 1983-03-31 Fujitsu Ltd 分岐命令短縮化処理方式
JPS6081641A (ja) * 1983-10-11 1985-05-09 Matsushita Electric Ind Co Ltd レジスタトレース方法
JPS60107142A (ja) * 1983-11-16 1985-06-12 Matsushita Electric Ind Co Ltd プログラム翻訳装置
JPS6167131A (ja) * 1984-09-10 1986-04-07 Fujitsu Ltd ドキユメント自動出力制御方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5854449A (ja) * 1981-09-28 1983-03-31 Fujitsu Ltd 分岐命令短縮化処理方式
JPS6081641A (ja) * 1983-10-11 1985-05-09 Matsushita Electric Ind Co Ltd レジスタトレース方法
JPS60107142A (ja) * 1983-11-16 1985-06-12 Matsushita Electric Ind Co Ltd プログラム翻訳装置
JPS6167131A (ja) * 1984-09-10 1986-04-07 Fujitsu Ltd ドキユメント自動出力制御方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6423346A (en) * 1987-07-20 1989-01-26 Yokogawa Electric Corp Evaluating method for program

Similar Documents

Publication Publication Date Title
CN105426711B (zh) 一种计算机软件源代码相似度检测方法
CN102959538B (zh) 给文档编索引
CN110471835A (zh) 一种基于电力信息系统代码文件的相似度检测方法及系统
JPS63317851A (ja) プログラム内容解析装置
JPS63317848A (ja) プログラム内容解析装置
JPS63317853A (ja) プログラム内容解析装置
CN104899371B (zh) 输电线路勘测方法及装置
JP2548197B2 (ja) プログラム内容解析装置
CN109741731A (zh) 一种语种训练数据获得方法及装置
JPS63317844A (ja) プログラム内容解析装置
JPH03280120A (ja) 操作履歴を利用したガイダンスシステム
JPS63317852A (ja) プログラム内容解析装置
CN105242905B (zh) 数据假相关的处理方法和装置
JPS63317849A (ja) プログラム内容解析装置
JPS63317843A (ja) プログラム内容解析装置
CN103761071B (zh) 一种plc的指令编码及识别系统
JPS61151753A (ja) ガイド機能付き計算機
JPS63317845A (ja) プログラム内容解析装置
JPS63317846A (ja) プログラム内容解析装置
JPH02128240A (ja) コンピユータプログラムの検査方法
JPH0820970B2 (ja) プログラム内容解析装置
JPH0423167A (ja) コマンド検索方式
JPH03179537A (ja) プログラム内容解析装置
JP3294498B2 (ja) 投資信託の手数料算出システム
JP2839845B2 (ja) マイクロプログラム検証方法