JPS63317852A - プログラム内容解析装置 - Google Patents
プログラム内容解析装置Info
- Publication number
- JPS63317852A JPS63317852A JP62154060A JP15406087A JPS63317852A JP S63317852 A JPS63317852 A JP S63317852A JP 62154060 A JP62154060 A JP 62154060A JP 15406087 A JP15406087 A JP 15406087A JP S63317852 A JPS63317852 A JP S63317852A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- block
- program
- condition
- branch
- 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
- 238000000034 method Methods 0.000 claims abstract description 95
- 238000004458 analytical method Methods 0.000 claims abstract description 32
- 238000001514 detection method Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 88
- 230000008859 change Effects 0.000 abstract description 9
- 238000010924 continuous production Methods 0.000 abstract 1
- 238000005206 flow analysis Methods 0.000 abstract 1
- 230000000903 blocking effect Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 16
- 238000004088 simulation Methods 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000008676 import Effects 0.000 description 3
- 241001441724 Tetraodontidae Species 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- GSDSWSVVBLHKDQ-UHFFFAOYSA-N 9-fluoro-3-methyl-10-(4-methylpiperazin-1-yl)-7-oxo-2,3-dihydro-7H-[1,4]oxazino[2,3,4-ij]quinoline-6-carboxylic acid Chemical compound FC1=CC(C(C(C(O)=O)=C2)=O)=C3N2C(C)COC3=C1N1CCN(C)CC1 GSDSWSVVBLHKDQ-UHFFFAOYSA-N 0.000 description 1
- 235000017166 Bambusa arundinacea Nutrition 0.000 description 1
- 235000017491 Bambusa tulda Nutrition 0.000 description 1
- 241001330002 Bambuseae Species 0.000 description 1
- 229910001369 Brass Inorganic materials 0.000 description 1
- 241000951471 Citrus junos Species 0.000 description 1
- 241000218691 Cupressaceae Species 0.000 description 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 description 1
- 239000011425 bamboo Substances 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 239000010951 brass Substances 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007598 dipping method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000011888 foil Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
産業上の利用分野
本発明は、マイクロコンピュータなどを作動するために
用いられるプログラムの内容を解析する装置に関する。 従来技術 マイクロコンピュータ用などに設計されたプログラムの
点検は、以下のように打なわれる。まずシンタックスエ
ラーなどの基本的なバグを取除いた後、プリントアウト
されたプログラムリストに基づいて、人手によって、該
プログラムの構造と、該プログラムに基づく各種入出力
装置の動作とを把握し、これを仕様書の記載内容と照合
する。さらに該プログラムが用いられるハードウェアに
実際に組込み、プログラムの実行によって要求される各
種入力条件を入力して、シミュレーションさせ、プログ
ラムの動作状態を確認する。 発明が解決しようとする問題点 しかしながら実際のプログラムは膨大なステップ数に及
ぶことがあり、その中にはやはり膨大な分岐命令がi&
まれている。したがってこれらの分岐命令に基づく処理
の流れの数はやはり膨大な数となり、上記人手による内
容把握作業では実現が困難である。したがって直達した
ようなシミュレーションまたはエミュレーションによる
チェックが行なわれがちになり、仕様書の内容の遺漏や
バグなどを完全に解消するには、むやみに時間を要して
ぃた。また、重連したようなシミュレーションやエミュ
レーションを↑〒なうには、実際のプログラム作動時に
おいて必妥とされる人力要求をrべて充足させねばなら
ず、繁雑な手間を要していた。 本発明の目的は、上述の問題点゛を解決し、仕様gなど
、プログラム内容のチェックの基壁となる物との照合が
容易な形態にプログラム内容を解析できるととらに、チ
ェック対象となる該プログラムを実行することなく、プ
ログラム内容の解析を行なうようにできるプログラム内
容解析装置を提供することである。 問題点を解決するための手段 本発明は、機能語のみまたは機能語とオペランドとの組
合せなどから成る命令列を区分し、各区分毎に命令列の
実行条件と実行内容とを検出し、 検出結果を出力するにあたって、プログラムから要求さ
れる入力項目のデータで、入力されていない場合には、
該データを不定データとして処理するようにしたことを
特徴とするプログラム内部記憶装置である。 作 用 本発明に従えば、与えられた命令列は所定の想様に区分
され、各区分毎に命令列の天行条f’l−と実行内容と
が検出される。一般に、このような実行内容には、デー
タの外部入力が要求される場合があるが、このような外
部入力で入力されていない場合には、検出結果を出力す
るにあたって該外部入力データを不定データとして処理
し、χ好条件に従って外部入力データを場合分けするな
どして、各場合毎の実行内容を区分して表示する。 実施例 tirJ1図は本発明の一実施例のプログラム内容解析
v装置(以下、解析装置と称する)1の構成を示すブロ
ック図である。第1図を参照して、解析装置1は、従来
技術の項で述べたようなチェックが行なわれる被解析プ
ログラムが、シーケンシャルな形式で記憶されている磁
気テープ記録/再生装置(以下、磁気テープ装置と称す
る)2と、ランダムな記憶が行なわれる磁気ディスク装
r113と、たとえばランダムアクセスメモリ(RAM
)などによって実現される内部記憶装置・tと、たとえ
ばCRT(陰極線管)装置や液晶表示装置などによって
実現される表示vcrI15と、インパクト形または非
インパクト形などの印字装置6と、各種キーやスイッチ
類などによって実現されるキー人力装置7と、これらに
よって入力される情報を処理し、またこのような情報の
入力/出力動作を制御するマイクロプロセッサなどを含
んで構成される処理装置8とを含む。 仕様書の内容に従って作成されたプログラムは、従来技
術の項で述べたように、まずシンタックスエラーなどの
基本的なバグを取除いた後、磁気テープ装置2に記憶さ
れる。磁気テープ装置r12の被解析プログラムは、解
析iil!iの内部記憶装f!!4へ転送され、後述す
るようなチェック処理が行なわれる。その結果は再び磁
気テープ装置2へ記憶され、または磁気ディスクv装置
3へ記憶される6またこのような記憶処理とともに、表
示′11置5へ表示出力され、また印字装r!16によ
って印字出力される。 第2図は磁気テープ装置2や磁気ディスク装置3などの
記憶装置の記録状態を示す系統図である。 処理装置8にバス9などを介して接続された磁気テープ
装置2の記憶領域10は、前記被解析プログラムの実行
大寸象となるたとえばマイクロコンピュータに関するア
ーキテクチャが記憶されるアーキテクチャ記憶領域10
aや、この被解析プログラムによる制御の対象となる入
力/出力に用いられるアナログ信号をデジタル信号に変
換する際の比較電圧値など、このようなアナログ/アノ
タル変換器の諸元などを記憶するA/′D変換器諸元記
憶領域101)や、本肢解析プログラムの実行対果とな
るマイクロコンピュータの有する各端子の信号の出力状
態と、この端子に接続される各人力/出力vcr?iの
動作状態との関係の定義(たとえばマイクロコンピュー
タの成るビンからハイレベルの信号が導出されると、I
= E D (発光グイオード)が点灯する、などの定
義)が、記憶されろ定義記憶領域10cなどを含んで構
成される。 第3図は第1図示の解析¥cfr?1の基本的動作を説
明する70−チャートであり、第・を図は解析装F11
の表示装置5の表示例を示す図である。第1図〜第・を
図を参照して、解析装置1の基本的動作について説明す
る。解析装vfilの電源が投入されると第3図ステッ
プn1 以降の処理が開始され、表示装置5上に各種
入力要求を表示する。ステップ112 では、このよ
うな入力要求に対応して、解析されるプログラムの実行
対果となるマイクロコンピュータの名称を入力動る。こ
の様子は第4図(1)に示される。 続くステップn3 では、入力された名称のマイクロ
コンピュータのアーキテクチャが、アーキテクチャ領域
10aに存在するかどうかを判断する。 存在していればステップ口4で当該アーキテクチャを呼
出し、たとえば内部記憶4に転送し、ステップ+15
でアナログ/アノタル変換器の名称を入力する。一方
、前記ステップn3 の判断が否定であれば処理はス
テップn6 に移り、解析ii!!iは、入力された名
称に対応するアーキテクチャが記憶されていないことを
表示し、新規登録を要求する。 この後、処理はステップn5 へ移る。 ステップ115 のアナログ/アノタル変換器の名称
入力の様子は、第4図〈1)に示される。続くステップ
用いられるプログラムの内容を解析する装置に関する。 従来技術 マイクロコンピュータ用などに設計されたプログラムの
点検は、以下のように打なわれる。まずシンタックスエ
ラーなどの基本的なバグを取除いた後、プリントアウト
されたプログラムリストに基づいて、人手によって、該
プログラムの構造と、該プログラムに基づく各種入出力
装置の動作とを把握し、これを仕様書の記載内容と照合
する。さらに該プログラムが用いられるハードウェアに
実際に組込み、プログラムの実行によって要求される各
種入力条件を入力して、シミュレーションさせ、プログ
ラムの動作状態を確認する。 発明が解決しようとする問題点 しかしながら実際のプログラムは膨大なステップ数に及
ぶことがあり、その中にはやはり膨大な分岐命令がi&
まれている。したがってこれらの分岐命令に基づく処理
の流れの数はやはり膨大な数となり、上記人手による内
容把握作業では実現が困難である。したがって直達した
ようなシミュレーションまたはエミュレーションによる
チェックが行なわれがちになり、仕様書の内容の遺漏や
バグなどを完全に解消するには、むやみに時間を要して
ぃた。また、重連したようなシミュレーションやエミュ
レーションを↑〒なうには、実際のプログラム作動時に
おいて必妥とされる人力要求をrべて充足させねばなら
ず、繁雑な手間を要していた。 本発明の目的は、上述の問題点゛を解決し、仕様gなど
、プログラム内容のチェックの基壁となる物との照合が
容易な形態にプログラム内容を解析できるととらに、チ
ェック対象となる該プログラムを実行することなく、プ
ログラム内容の解析を行なうようにできるプログラム内
容解析装置を提供することである。 問題点を解決するための手段 本発明は、機能語のみまたは機能語とオペランドとの組
合せなどから成る命令列を区分し、各区分毎に命令列の
実行条件と実行内容とを検出し、 検出結果を出力するにあたって、プログラムから要求さ
れる入力項目のデータで、入力されていない場合には、
該データを不定データとして処理するようにしたことを
特徴とするプログラム内部記憶装置である。 作 用 本発明に従えば、与えられた命令列は所定の想様に区分
され、各区分毎に命令列の天行条f’l−と実行内容と
が検出される。一般に、このような実行内容には、デー
タの外部入力が要求される場合があるが、このような外
部入力で入力されていない場合には、検出結果を出力す
るにあたって該外部入力データを不定データとして処理
し、χ好条件に従って外部入力データを場合分けするな
どして、各場合毎の実行内容を区分して表示する。 実施例 tirJ1図は本発明の一実施例のプログラム内容解析
v装置(以下、解析装置と称する)1の構成を示すブロ
ック図である。第1図を参照して、解析装置1は、従来
技術の項で述べたようなチェックが行なわれる被解析プ
ログラムが、シーケンシャルな形式で記憶されている磁
気テープ記録/再生装置(以下、磁気テープ装置と称す
る)2と、ランダムな記憶が行なわれる磁気ディスク装
r113と、たとえばランダムアクセスメモリ(RAM
)などによって実現される内部記憶装置・tと、たとえ
ばCRT(陰極線管)装置や液晶表示装置などによって
実現される表示vcrI15と、インパクト形または非
インパクト形などの印字装置6と、各種キーやスイッチ
類などによって実現されるキー人力装置7と、これらに
よって入力される情報を処理し、またこのような情報の
入力/出力動作を制御するマイクロプロセッサなどを含
んで構成される処理装置8とを含む。 仕様書の内容に従って作成されたプログラムは、従来技
術の項で述べたように、まずシンタックスエラーなどの
基本的なバグを取除いた後、磁気テープ装置2に記憶さ
れる。磁気テープ装置r12の被解析プログラムは、解
析iil!iの内部記憶装f!!4へ転送され、後述す
るようなチェック処理が行なわれる。その結果は再び磁
気テープ装置2へ記憶され、または磁気ディスクv装置
3へ記憶される6またこのような記憶処理とともに、表
示′11置5へ表示出力され、また印字装r!16によ
って印字出力される。 第2図は磁気テープ装置2や磁気ディスク装置3などの
記憶装置の記録状態を示す系統図である。 処理装置8にバス9などを介して接続された磁気テープ
装置2の記憶領域10は、前記被解析プログラムの実行
大寸象となるたとえばマイクロコンピュータに関するア
ーキテクチャが記憶されるアーキテクチャ記憶領域10
aや、この被解析プログラムによる制御の対象となる入
力/出力に用いられるアナログ信号をデジタル信号に変
換する際の比較電圧値など、このようなアナログ/アノ
タル変換器の諸元などを記憶するA/′D変換器諸元記
憶領域101)や、本肢解析プログラムの実行対果とな
るマイクロコンピュータの有する各端子の信号の出力状
態と、この端子に接続される各人力/出力vcr?iの
動作状態との関係の定義(たとえばマイクロコンピュー
タの成るビンからハイレベルの信号が導出されると、I
= E D (発光グイオード)が点灯する、などの定
義)が、記憶されろ定義記憶領域10cなどを含んで構
成される。 第3図は第1図示の解析¥cfr?1の基本的動作を説
明する70−チャートであり、第・を図は解析装F11
の表示装置5の表示例を示す図である。第1図〜第・を
図を参照して、解析装置1の基本的動作について説明す
る。解析装vfilの電源が投入されると第3図ステッ
プn1 以降の処理が開始され、表示装置5上に各種
入力要求を表示する。ステップ112 では、このよ
うな入力要求に対応して、解析されるプログラムの実行
対果となるマイクロコンピュータの名称を入力動る。こ
の様子は第4図(1)に示される。 続くステップn3 では、入力された名称のマイクロ
コンピュータのアーキテクチャが、アーキテクチャ領域
10aに存在するかどうかを判断する。 存在していればステップ口4で当該アーキテクチャを呼
出し、たとえば内部記憶4に転送し、ステップ+15
でアナログ/アノタル変換器の名称を入力する。一方
、前記ステップn3 の判断が否定であれば処理はス
テップn6 に移り、解析ii!!iは、入力された名
称に対応するアーキテクチャが記憶されていないことを
表示し、新規登録を要求する。 この後、処理はステップn5 へ移る。 ステップ115 のアナログ/アノタル変換器の名称
入力の様子は、第4図〈1)に示される。続くステップ
【17 では、解析されるプログラムが動作対策とす
るマイクロコンピュータに設定される各ボートの状態と
外部状態との関係を、第4図(2)に示すように入力す
る。たとえばPORT17がハイレベルとなれば、スタ
ートスイッチがオン状態に切換わり、PORT16がハ
イレベルになるとサーモスイッチがオン状態に切換わる
。ステップ118 では、前記マイクロコンピュータ
の割込み端子の状態と、外部状態との関係の入力が、表
示装置5上で要求される。またアナログ/アノタル変換
器チャンネル用ボートについては、キー人力装置7によ
って所定の事項を入力し、第4図(3)に示すように所
定のデータ項目を入力して各ボートを定義する。 ステップ119では、ステップn7.n8での各種入力
が正しく実行されたかどうかを判断する。t1断結果が
否定であれば処理はステップロア に戻り、上記人力さ
れたデータを訂正する。判断結果が11定であればステ
ップ−+10 に移り、たとえば磁気テープ装置2に
記憶されている被解析プログラムを内部記憶Vc置4に
転送して読取る。ステップ+111では、後述するよう
な被解析プログラムを解析し、ステップn12 で解
析結果を出力して処理を終了する。 第5図は7fs3図のステップ+111 のプログラ
ムの解析処理の内容を説明する7o−チャートである。 第5図を併せて参照して、解析装置1の毘作について説
明する。上述したように本発明は、rことえばマイクロ
コンピュータ用1こたとえばアセンブラ−3語によって
作成されrこプログラムの内容を解析するvc置に関す
る9被解析プログラムは、解析装置a 1の磁気テープ
装置2に記憶されており、第3図ステップ1110
で説明したように、このようなプログラムは磁気テープ
装置2からたとえば内部記憶vc置4へ転送される。 本実施例では、被解析プログラムを以下の第1表に示す
プログラムと想定して説明する。 (以−F余白) 第 1 表(プログラムリスト) 上記第1表のプログラムの内容は、第6図および第7図
の70−チャートに示される。第6図および第7図のス
テップ番号a1.a2 、・・・、a21は、上記第1
表のプログラムリストの行番号に対応している。また、
11表の全21行の各命令の実行に関する各7ラグの状
態を示すコンディションコードレジスタ (以下、OC
Rと称する)は、下記第2表に示される。ここでは、符
号7ラグN1ゼロ7ラグZ、オーバ70−7ラグ\lお
よびキャリ7ラグCの状態を示す。 (以下余白) 第2表 (注1)第2表中、記号rt J、r・J、[RJ、r
S Jはそれぞれ[結果によってセットまたはリセット
される]、 [変化しない]、[リセット(クリア)さ
れる」および「セットされる」を表わす。 (注2)上記プログラムには、レジスタ名称の定義、割
込み制御レジスタの設定、ボート入出力)f向の設定、
割込みベクトルの設定等は省略されているが、割込みは
CAPTIのみ許可、その割込みアドレス(ラベル)は
CAPTとする。 上記第1表のプログラムリストで、 (1)入カニ PORTIの第6ビツトにスイッチ人力
(スイッチONでハイレベルに変化): PORT2の
第0ビツトに可変周波イシ号入力 および、 (2)出カニ PORTIの第7ビツトから発光グイオ
ード出力 (出力ハイレベルで発光ダイオード点灯)の
入出力繰作が行なわれる、と定義しておく。 これは第3図ステップ117で行なわれる。 上記第1表のプログラムリストが読込まれた解析装置1
では、第5図ステップ噛1 でプログラムの流れ構造の
解析が行なわれる。 上述したように、tpJ1表に示すプログラムリストは
、第6図および17図に示す動作内容を有している。し
かしながら、tr%1表のプログラムリストから第6図
および第7図示の70−チャートを得るには、人手によ
って、3frr令が単なる処理命令か条件文による分岐
命令かを把握する作業と、分岐命令の場合にはその分岐
先の検出作業などが含まれ、これらの作業に基づいて上
記70−チャートが作成される。 本発明の眼目の1つは、任意のプログラムリストから、
該プログラムの分岐命令と、該分岐命令によって定めら
れる分岐先#令とを把握した後、訊プログラムの処理の
流れのvI造の把握を人間の頭脳による作業を介するこ
となく、解析装置によって自動的に行なうことができる
ようにしたことである。またこれによって、後述するよ
うに上記70−チャートと! $1の形態の出力を得る
ことができる。 このような流れのvl造を把握する処理を、第8図の7
0−チャートにおいて示す。第8図ステップ1)1では
、命令行番号を示すパラメータkを「1」に初期化し、
ステップl+2でfpJk命令(第1表における行番号
にの命令)の読取りを行なう、続くステップb3では、
この読取られた第に命令が分岐命令であるかどうかを判
断する。この判断はたとえば、第1表における命令を1
ilIr&する二一モニツクを読取ればよい、すなわち
上述したように、所望のマイクロコンピュータのアーキ
テクチャを呼出した段階で、解析装置1の内部記憶4に
は、当該マイクロコンピュータに用いられるアセンブラ
ff 9のコマンドや、コマンドに関連する7フグなど
のテーブルが別途記憶され、これを参照することによっ
て、第1表の各命令が分岐命令であるか否かを容易に判
断できるからである。 上記ステップb3 の判断結果が否定であれば、ステ
ップb4でパラメータkを+1インクリメントし、処理
をステップb2 に戻し、上述の説明と同様な処理を
行なう。このとき第1表のプログラムリストに従えば、
第4命令を読取ったとき、アーキテクチャが参照され、
この第4命令がゼロフラグZの状?!!HIJまたは「
0」)を条件とする分岐命令であることが把握される。 したがって、第8図の処理において第を命令が読取られ
たときステップl+3の?!断はけ定となり、処理はス
テップI+5に移る。 ステップ1)5 では、第1表の第4命令のオペラン
ドrLOOPJと対応するラベル名を4/j1.′lR
する。 第1表のプログラムリストでは、第2命令に上記オペラ
ンドと同一のラベルが付されており、したがって第4命
令の分岐先は、1MZfff令であることが理解される
。ステップb6 では、一般に分岐命令の行番号にと
、これに対応する分岐先命令行番号噛との討(以下、ブ
ロック化情報と称する)(k、輸)を、内部記憶装置4
に記憶する。この後、処理はステップ1】4 に移り
、竹番号を+1インクリメントして次の行へ処理を進め
る。 このような処理を行なうことによって、fjS1表のプ
ログラムリストにおける分岐命令と分岐先命令との行番
号の対(k、s)に関して、下記第3表のような結果が
得られる6 第3表 この段階で解析装置1は、第1表に示すプログラムリス
トの流れvIaが把握できたことになる。すなわち第3
表として得られた結果を操作者が容易に理解できる形式
に出力する場合、たとえば第1表のプログラムリストの
行番号1〜21を第9図に示すよ)に−列に配列し、上
記第3表に基づいて、行番号kから行番号−へ向かう分
岐矢符をこれに付すことによって、テログラムリストの
流れ構造として第9図示のような出力が得られる。これ
によって操作者も、第1表のプログラムリストの流れ構
造を容易に把握することがCきる。こうして第5図ステ
ップw1 の処理は終了する。 次に第5図ステップ瞳2では、ステップ輸1で得られた
被解析プログラムの流れ構造の認識に店づいて、該プロ
グラムをブロックに区分する処理を行なう。このような
ブロック化処理には、以下のような利1代がある。本発
明のプログラム内容解析処理が行なわれる被解析プログ
ラムは、一般にはたとえば数百ステップのような場合も
あり、このようなプログラムには、各種分岐命令ら大量
に含まれている。したがって、このような分岐命令の条
fl=の成立の是非に関する組合わせの数が膨大な数に
なることは、容易に想定される。このような膨大な組合
わせ数のプログラムの系統を逐次的に考察の対象とし、
各系統ごとに全命令のコンディションコードレノスタ(
CCI?)を記憶するのは、極めて繁雑であるとともに
膨大な記憶容量が要求され耽 したがって本発明のIiL目の1つは、被解析プログラ
ムを後述するような条件の下で、複数のブロックに区分
し、各ブロックに対して第5L2Iステツプ論3 の分
岐条件柄出処理、ステップm4 の書込み命令単位の
入出力結合処理、およびステップ糟5のパイルの結合処
理などから成る同一内容の処理を施すようにしたことで
ある。このようなブロックの区分7αは、プログラムに
おける分岐命各行か分岐先命令性であり、1ブロツクは
分岐命令性または分岐先命令性で始まり、これらのいず
耽かで終了し、かつそのtitにはこれら分山支命令ま
tこは分岐先命令性を含まないように選ぶ。 すなわち全プログラムは、このような複数のブロックの
結合として表現され、同一ブロック内のプログラムの異
なる流れの種類も極めて少数となる。これにより各ブロ
ックごとの内容解析を格段に容易に行なえるようになり
、全プログラムの内容解析は、ブロックごとに得られた
内容解析結果の結合として示される。 このようなブロック分は処理は、第10図の70−チャ
ートに示される。このとさ、前記第8図を参照して説明
した第5図ステップ輸1 の流れ#lq造の解析処理に
よって得られたブロック化情報対(k、m)について、
tlSl&の全プログラムについて行なうことによって
、第3表に示したような結果が得られる。すなわち、こ
のようなブロック化情報対(kl sml L(k
2 +輸2 >t”・t(耽s、−s) (本実
施例ではs;4)が、第1図示の内部記憶装置4に記憶
されている。以下に説明する第10図の処理には、この
ブロックツク報討列を用いる。なお上記ブロック化情報
列の品数ffIkl、に2.・・・、ks;噛1.鍮2
.・・・。 −5について総称する場合には、それぞれ記号ktmを
用いて示す。 第10図ステップc1 では、第1表のプログラムの
行番号を示すパラメータiを「1」に初期化する。ステ
ップc2では上記行番号iに関して、この行番号i l
: ”F Lい上記ブロック化情報kまたはブロックツ
ク報輸が存在するか否かを判断する。このtl断が1〒
定であれば、ステップC3でブロックツクf1に、輪に
よるブロック化処理を打なう。 このブロック化処理は、以下のように行なわれる。まず
ステップc3 において、tq断が1′r定となるブ
ロック化情報に、檜が記憶される。次にステップc4で
イテ番号iが+1インクリメントされ、ステップc5で
は行番号iがこのような行番号の最終値すなわちM A
X (i)を超えたかどうかのtq断を行なう。 ↑1断結果が否定であれば、第10図に示すブロック化
処理は被解析プログラムの最終行まで到達していないこ
とになり、ステップc2 に戻る。以下、同様の処理
が繰り返し行なわれ、ステップC2の1′1断が肯定と
なるブロック化情報に、 mがあった場合、前回ステッ
プc2 の判断を11定としたブロック化情報に、曽
を呼び出し、これらを組み合わせてブロック情報対(a
tβ)として記憶する。以下、このような処理がプログ
ラムの最終作まで繰り返し行なわれる。 上記ステップc1〜c5で行なわれる処理は、たとえば
第1表のプログラムの第1イテがら第21行までを順番
にたどって、その中でブロック化情報(k=陰)として
示される分岐命令性および分岐先命令性に関して、行番
号の増加方向において隣接する命令列の組をブロック情
報(a、β)として記憶する処理である。 上記ステップc5 のtq断が肯定となれば、処理は
ステップc6 に移り1.ヒ記ブロック化情報列(kL
+aj) ・
・・(1)i=1?21・・・、S によるブロック化処理を好なう。 このブロック化処理は、第1表のプログラムリストにお
いて、分岐処理を実現するブロックを決定する処理とな
る。すなわち第3表のブロック化情報(k、 n)にお
いて、たとえばブロック化情報対(4,2)は、第4命
令から第2+fb介へ処理が分岐r71系統を規定して
いる。したがって、これらのブロック化情報対(k、
m)を、前記ブロック情報対(a、β)と)4なる内容
をなす分岐ブロック情報対(a、β)brとして再定義
することにより、第1表のプログラムリストに関して1
分岐を行なう系統を網羅できる。ステップC6による分
岐ブロック化処理が終了すると、第11図に示すブロッ
ク分は結果が得られる。 また上述のように、ブロック情報対(α、β)と、分岐
ブロック情報対(a、β)l)「とを定義することによ
り、第1表のプログラムリストのたとえば第9命令、第
10命令および第11命令からなるブロックと、mQc
rr令と第11命令とからなる分岐ブロックとを明瞭に
区分できる。このようなブロック情報対(atβ)およ
び分岐ブロック情報対、(α。 β)11rを、下記の第4表に示す。 IjS4 表 以下、得られた各ブロックを示すに際して、第11図に
示すように記号■、■、・・・、co をもって示す
、すなわちブロック■は、行番号1.2の命介群を示し
ている。このような記法に従い、第1表のプログラムは
第12図お上りtiS13図で示されるように表現され
る。ここで、第1表のプログラムを第12L4および第
13図の2つの図に区分したのは、第12図は4?一番
号1〜12のメイン処理ルーチンを人わし、第13図は
行番号13〜21の後述rるような割込み処理ルーチン
を表わし、これC)は相互間に亘って分岐関係が存在し
ない独立な内容だからである。このようにして、第5図
ステップ+62 のブロック分は処理が終了する。 第5図ステップ悄3 では、分岐条件摘出処理が行なわ
れる。このような分岐束ff:摘出処理は、第14図の
70−チャートに示される。第14図ステップd1
では、上述したようなブロック化処理を行ない、各ブロ
ック情報対(a、β)t(’tβ)1】rを得る。ステ
ップd2では変敗jを「1」に初期化する。ステップd
3 以降の処理では、分岐条件として第1ブロツク■
、第2ブロツク■、第3ブロツク■、・・・、第13ブ
ロツク0を処理が通過する条件を求めることになる。 (1)第1ブロツク■を1lTlろ条件第1ブロツクの
は第6図に明らかなように、第12命令の無条件ジャン
プ命令によって処理が無条件に通過するブロックである
。 (2)第2ブロツク■を通る条件 第14図ステップd3 では、第3表を参照して第j
番目(現時、αではj=1)のブロック化111報対(
k。 輸)を参照する。ステップd4では、ステップd3にお
けるブロック化情報対(kls+)において、tjtJ
k命介の分岐条件を支配するフラグを検出する。第4表
によれば、j=1のときに=4であり、第1表のプログ
ラムの第k(= 4 )命令[BNEJの分1岐条件を
支配するフラグの検出を行なう、これはアーキテクチャ
に上って、各命令それ自体に規定される条件となる。す
なわち上記第4命令の場合には、ゼロ7?グZである。 ステップd5 では、命介列の配列方向と反対方向に
一命令を読取る。この命令が上記フラグ(ゼロ7ラグZ
)を変化させる命令であるかどうかのステップd6
におけるtl断が否定であれば、ステップd5.d6を
繰り返す。肯定であればステップd7 に移り、フラ
グを変化させる命令を記憶する。 第1表のプログラムリストと第2表のOCRとを参照す
れば、この命令は第3命令[cMPA CO[I N
T Jであり、ゼロ7ラグZを変化させる命令である
ことがtq断される。ステップd8 では、第1表の
プログラムリストを参照して、ゼロ7″7グZに関する
当atitJ3命令中のパラメータを検出する。すなわ
ち第3命令はアキュムレータAに関する命令であり、パ
ラメータとしてアキュムレータAが検出される。 ステップd9 では、該命令が該パラメータを変化させ
る命令か否かを判断する。このf!断は前記アーキテク
チャに含まれる前記CCRを参照して行なわれる。t1
断が1′r定であれば、ステップd10に移り当該命令
が記憶され、ステップdi 1 に移る。第3命令r
cMPAJはアキュムレータAの内容を変化せず、ステ
ップd9 の判断が否定となり、ステップdlOを経
ることなくステップdi 1に移る。 ステップdi 1 では、現在検討中のブロックが第
1/2のプログラムリスト中でループを構成するブロッ
クがどうかを判断する。現時点では、解析装置1は第4
命令および第3命介しが認識しておらず、この判断は否
定となり、処理はステップd12に移り、ステップdl
Oで記憶した命令が、前記パラメータの入力命令である
かどうかをt++断する。このf1断が1〒定であれば
、ステップd15に移る。一方、上記ステップtJ11
のtq断がff定であれば、ステップd14 で
分岐条件に後述するようなループ要素を追加し、処理は
ステップcj15に移る。 ステップd15 では、当該分岐命令が第9図に示す
ような本実施例における被解析プログラムの構造におい
て、ネスティング構造に含まれるものであるかどうかを
f1断する。t!断結果がff定ならば、ステップd1
6 で後述するようなネスティング要素を追加し、ス
テップtl13 で記憶したブロック列の種類がすべ
て終了したかどうかをtq断し、?!断結果が肯定であ
ればステップd17 で分岐討のパラメータjをプラ
ス1インクリメントし、処理はステップd3に戻る。前
記ステップd15の71断が否定であれば、ステップd
lG を経ることなく、処理はステップd13 に
杉る。 第3命+rCMPAJについて、前記ステップJ12の
tq mは否定となり、処理はステップd19に移り、
現在検討中の命令が当該命令を含むブロックの先頭であ
るかどうかを判断する。第3命令について1′!断結果
は否定であり、ステップd20で命令列の配列方向と反
対力向に一命令を読取り、処理はステップd9 に移り
、重連の処理を繰返す。 m記ステップJ19 で1′り断結果が1′!r定な
らば、ステップd21 に移り、当該ブロックに処理
が到達するブロック列の種類を記憶する。すなわち当該
ブロックに至るルートの種類を記憶する。ステップd2
2 では、記憶したブロック列中から−ブロック列を
選択し処理はステップd2(1に戻る。 第1表のプログラムリストにおいて、第4命介から上述
の処理が繰り返される。このとき、第1命令[LDAA
Jを解析する段階で、ステップdlOで記憶されてきた
#介は、オペランドで記述すると、 A=TIME−(COUNT+1) −<2)にな
る。 またステップdi 1 の判断は肯定となり、第2式
の分岐条件にステップd14 でループ要素が付加さ
れ、下記第3式の分岐条件が得られる。すなわちループ
を1回繰返せば上記m2式は、A=TIME (CO
UNT+n) ・−(3)と表される。この実行内
容がループを構成する条件は、第4命令で分岐条件が成
立すること、すなわちゼロ7ラグZに関して、 2=0 ・・・(4)が
成立する場合である。したがって上記ステップdlOで
は最終的に、 T I ME−(COUNT+n)≠O・=(5)の条
件が得られる。これは第2ブロツク■を処理が通過する
条件となる。 (3)第3ブロツク■を通る条件 この場合、第1表のプログラムリストにおいて、処理が
第2ブロツク■に進行しない条件、士なゎち、上記第5
式の条fl=の否定 T I hi E (COU N T +n)= 0
・・・(6)が求めるべき条件となる。 (、i)m・tブロック■を通る条件 ステップd3 では、第・tブロック■の最終行番号
9をブロック化情報にとする対(k 、 u+ )が、
j=2の場合として、第3表より(8−11)として読
出される。この第8命介に対して、上記第2ブロツク■
を通る条件を求めた処理と同様な処理が行なわれる。ス
テップd4 では、第1表のプログラムの第k(=
8 )命令rBMIJの分岐条件を支配するフラグの検
出を行なう。すなわち、上記第O命介の場合には、符号
7ラグNである。 ステップd5.d6では、この符号7ラグNを変化しう
る最近の命令を検索する。上記第1表および第2表を参
照すれば、第7命令[LDAB PORTIJが対応
することが検出される。ステップd8 では、この符
号75グNに関する第7命令中のパラメータを検出する
。すなわち第7命令は7キユムレータBに関する命令で
あり、このアキュムレータBがバフメータとして検出さ
れる。 ステップd12 では、バフメータとしてのアキュム
レータBの入力命令を検出する。第1表のプログラムリ
ストを参照すれば、上記第7命令自身が7キユムレータ
Bの入力命令であることが検出される。したがってステ
ップd12 の↑lI断は1〒定となり、ステップd
15 でのネステイングモ弯造tq断は杏となるため
、第3ブロツク■の実行内容をオペランドに上って表現
すれば、求める分岐条件は、 PORT17=O・・・(7) となる。ここで表記rPORT17=OJは、入出カポ
−)PORTIの第7ビツトが「0」となる状態を表現
する。この後、処理はステップd13 に移り判断が
否定となり、前述のような処理を経て処理はステップd
3に戻る。 (5)第5ブロツク■を通ろ条件 ステップd3では、j=3の場合としてブロックツク報
討(k、曽)=(9tll)が読出され、ステップd4
では第k(= 9 )命令rBEQ NANNOIJ
の分岐条件を支配する7フグすなわちゼロ7ラグZが検
出される。続いてステップd5.d6では、このゼロ7
ラグZを変化しうる最近の命令として、第122および
第2表を参照して、第7命令「LD!〜13」が検出さ
れる。 このロード命令はアキュムレータBに「PORTl」の
内容を読込む内容であり、このアキュムレータBに関す
るゼロ7ラグZの成立の是非が分岐条件となる。したが
って、前述のような処理が繰り返された後、ステップc
llOでは、F OR,T 1の少なくとも1つのビッ
ト=1・・・(8) が得られる。この後、処理はステップdll に移り
、第5ブロツク■がループ構造の一部をなすかどうかが
判断され、これは否定となる。 続くステップtl12 の判断はl’f定となり、ス
テップd15 で第5ブロツク■がネスティング構造
の一部を成すかどうかが判断される。第5ブロツク■1
土2重の冬スティングも1造をh1成しており、ステッ
プdlG で上記第8式の分岐条件にネスティング要
素が付加される。 すなわち、第12図に明らかなように、第5ブロツク■
は、第4ブロツク■を通過しなければ到達しない処理ブ
ロックであり、したがって第5ブロツク■の通過条件は
、第4ブロツク■の通過条件と上記fjrJ8式の条件
との論理積となる。すなわち、 PORT1?=0 かつ、 P ORT 1の少な(とも1つのビット=1・・・(
9) の分岐条件が得られる。この後、ステップd1.3にお
いて、記憶したブロック列はな−1ので、処理はステッ
プd3に戻る。 (6)第6ブロツク■を通る条件 fj%14図の70−チャートにおいて、ステップd3
でj=4のとき、対応するブロック化情報に、柚が、第
3表を参照して存在しないことがt++断される。した
がって、本件実施例のプログラム内容解析装置1は、現
在のfjSaブロックの分岐条件を、以前の直鎖ブロッ
クと同一分岐条件として設定する。すなt)ち現在の第
6ブロツク■の分岐条件は、以前の直鎖ブロックである
第3ブロツク■の分岐条件、すなわち上記rBa式の条
(↑として設定される。この後、処理は前記パラメータ
jを+1インクリメントした後に、ステップd3に戻る
。 (7)第7ブロツク■を通る条件 第7ブロツク■は、上記第2ブロツク■の分岐条件を考
察した段階で、第2ブロツク■とM【合されてループ横
辺を構成するブロックとして把握されている。したがっ
て第7ブロツク■の分岐条1′l:は、上記第3ブロツ
クで挙げたループ処理の離脱条件の否定の形式の条f’
1.である上記第5式の条件として示される。 (8)第8ブロツク■を通る条件第1 0ブロツク■は、第3表および第4表に示す分1岐ブロ
ック情報対(8,11)brで示される。したがって第
1表第8命令の分岐条件より、第8ブロツク■を処理が
通る条件は、第4ブロツク■を通る条f↑の否定、すな
わち、 1)ORT 1 7 = 1
・(10)となる。 (9)第9ブロツク■を通る条件 第9ブロツク■も、第3表および第4人から51岐ブロ
ツク情報(9、11)brによって規定されるブロック
であり、したがって+f’l l?t!’55ブロツク
■を通る条件を考察した際に検討した第1表第9命介の
分岐条件(第8式)の否定の条1′1−と、第4ブロツ
ク■を通る条件(第7式)との論理積となる。すなわち
、 PORTIの 全ピット二〇 かっ PORTIの第7ビツト=0 ・・・(11)
の条件が得られる。 (10)第10ブロツク[相]を通る条件第10ブロツ
クQΦは、第6ブロツク(fDと分岐命令を介在するこ
となく線形に続くブロワつて゛あり、したがって第10
ブロツク[相]を処理が通る条件は、第6ブロツク■を
通る条件、すなわち第3ブロツク■を通る条件(上記第
6式)と同一になる。 (11)PpJl 1ブロツク■を通る条件ff1l&
のプラグラムリストから明がなよ)に、第13命介〜第
21命介け、第1命介〜第12命なのメインルーチンに
対する割込み処理ルーチンである。その内容から、上記
第2表の欄外に付しtこ人力/出力の定義において、P
ORT 2の第0ビツトに立ち上がりニックまたは立ち
ドがリエツノの信号が入力された状態を表わす割込みベ
クトルの条f生、 I RQ 2 = 0 ・・・
〈12)が得られる。 (12)第12ブロツクQを通る条件 上記第4ブロツク■を通る条件が導出された処理と同様
な処理を経て、第18命介rBNEJでゼロ7ラグZ=
1となる条rトが求められればよい。 すなわち第18命令からプラグラムリストをさがのぼり
、当該分岐命令を支配するフラグであるゼロ7ラグZを
変化させる最近の命令を検出する。 これは第17命令でストア命令rSTAAJが検出され
、パラメータとしてアキュムレータ八が検出される。ア
キュムレータへの人力命令として、第13命令でロード
命令[LDDJが検出される。したがって第13命令〜
tjS18命令の実行内容をオペランドで記述すれば、 tcAPlN(D) −ZCAPT(D)!ノ上位ハイ
ト二〇・・・(13) が得られる。 (13)第13命令■を通ろ条件 この場合、第1表のプログラムリストにおいて、第13
命介以降の処理の進行において、処理が第12ブロツク
@に進行しない条f’l、すなわち上記第13式の条件
の否定、 +CAr’Tl(D)−ZCAPT(D)lの」三位バ
イト≠0・・・(14) が求めるべき条件となる。 このようにして第5図ステップ階3 において柄出され
るべき分岐条件は、各ブロック■〜0を処理が通る条件
として導出された。これ以降、処理 。 は第5図ステップ鍮4に移る。 ステップ輸4 では、書込み命I#単位の入出力結合処
Fljが行なわれろ、ここにaう書込み命令とは、スト
ア命令と、オペランドの直接毘作命杼(たとえばオペラ
ンドの数値を+1増加させるインクリメント命拾jlN
cJなと)とを指す。このような命介の検出は、第1表
のプログラムリストにおいて、各命令を読取ることによ
って直ちに実現できる。 このような入出力の結会処理は、箔15図の70−チャ
ートに示される。第15図 ステップcl。 C2で1土、第1表で示されるプログラム1こ大寸して
、11η述したブロック化処理と分岐条件の生成処理と
をIFなう。この後、ステップe3 では、!’$1
3に示されるプログラムにおいて、書込命令が検出され
る。このような准込み命令としては、第2命令l’1N
cJ、第6命%「5TAAJ、第11命令[5TAAJ
、第16命令[5TXJ、第17命臂[5TAAJおよ
び第20命令「ST八へ」が、後述するように検出され
る。 (1)第2命令「1NcJについて 第15図ステップe4 では、当該命令に関するパラメ
ータを検出する。上述した残余の書込命令、たとえば第
6命令rSTAAJでは、このようなパラメータとして
たとえば7キユムレータAが検出されるが、t55命令
のようなメモリの直接操作帝なでは、本ステップを行な
うことなく、ステップ(・5 で当該命令がその命令の
所属するブロックの先頭であるがどうかをtq断する。 否定であれば、ステップe6 に移って、命)列の配
列方向と反対方向に一命令を検出する。1′r定であれ
ばステップe7 で、当該ブロックに至るブロック列
のJ’T1.類、すなわち当該ブロックに至る処理の系
暁の種類を記憶する。 第2命令に関しては、第2命介を含む第2ブロツク■に
至るブロックは、上記ブロック化処理から得られた第1
2図および1113図の処理の流れ図に示されるように
、0′S1ブロツク■およびr57ブロツク■である。 ステップe8 では、このような記憶したブロック列
中から−ブロック (たとえば第7ブロツク■)を選択
し、処理はステップe6に移る。 ステップe6 では、選択されたブロックにおいて、
命令列の配列方向と反対ノj向に一命会を検出し、現時
、1.諷では第4命介[BNEJを検出する。これによ
りステップe9.el 1 、 cl 2の判断は、そ
れぞれすべて否定であり、したがって処理はステップe
5 に戻る。このようにして」二連した処理を繰り返し
行ない、ステップe6 で第2命令が読取られたとき
、ステップell でループになったことがtlI断
され、ステップe13 でループ要素が追加される。 すなわち第2命令の実行内容は、CO(I N T 、
−COUN T + 1 ・・・(15)であ
るが、この処理がループ構造にしたがって11回実行さ
れる場訃を想定rると、 COtJ N T ←COU N T + n
−(16)となる。これが第2命令の実行内容の一般
形である。 −のときの実行条件は、上記第7ブロツク■を通る条件
、すなわち上記155式の条r1となる。したがって第
2命令に関しては、 if TIME (n+ C0UNT);a!
+1LI+en C0UNT4−C0UNT4 n
−(17)となる。 (2)第6命令について ステップe311′は、次の書込命令である第6命令を
検出し、ステップe4 で第6命令に関するパラメー
タすなわちアキュムレータ八を検出する。 ステップe5のt’!断は否定となり、ステップe6′
c第5命令[cLRAJを検出する。 ステップe9 では、この第5命介が上記パラメータ
であるアキュレータAを変化させる命令であることがl
’l断され、ステップelOで第5命拾が記憶される。 ステップe11 では、当訊第5命令がループ構造に含
まれないことが11断され、ステップe12 では、
第5命令が7キユムレータAの入力frr介であること
が判断される。このtX、ステップe14 のtl断
で1″r定となり、処理はステップe15に移る。 したがって実行内容は、 COU N T←0 ・・・(18
)となり、実行条件は、処理が第3ブロツクqpを通る
条件、すなわち上記第6式で示される条件と同−になり
、これらを整理すれば、 if TIt4E−(n+ C0UNT)= OL
I+en C0IINT −0−(19)の結果が得
られる。 (3)第11命令について 第11命令については、f515図に示されるステップ
e3 で当該命令が検出された後、ステップC4でパ
ラメータとしてアキュムレータAが検出される。ステッ
プe5 では、上記第3表および第4表を参照して、
第11命令が第6ブロツク■の先頭であることがtl
l!liされ、処理はステップe7に移る。この判断に
上って、第1表のプログラムリストにおいて、第11命
令に到達するには第5ブロツク■、第9ブロツク■およ
V第8ブロック■をそれぞれ通る3つの経路が存在する
ことが認識される。以下、後述する実行内容の検出と′
X什条件の検出とを各経路毎に行ない、それらの結果が
#IF!!和として出力される。 ゛(ア)第5ブロツク■を通る経路の場合ステップe4
でパラメータであるアキュムレータ八を検出し、プ
ログラムをさかのぼると、第10命令でアキュムレータ
Aに関するa−ド命令が検出される。ここで第11命令
は、入出力ボートへの書込み命令であり、論理演算とし
て扱う。したがって第10命令および第11命令による
実行内容は、#%1表のプログラムリスト上の表現では
、PORTI←¥80 ・・・(20)
と表現されるが、論理演算の結果としては、上記第10
式と同等な PORT17←1 ・・・(10)な
る論理式が得られる。 このときの実行条件は、第5ブロツク■を処理が通る条
件(上記Pt59式)と、ttS2ブロック■お上り第
7ブロツク■からなるループを処理が離脱する条件、す
なわち処理が第3ブロツク■を通る条件(上記第6式)
との論理積となる。したがって、if TIME
−(n+ C0UNT)= 0and I’0RT1
7=O ind PORTI≠¥00 tl+en PORT17= 1
・= (21)なる論理式出力が得られる。 (イ)[ブロック■を通る場合 ステップe6 でプログラムをさかのぼると、第6命令
でストア命令[5TAAJが検出される。したがって求
める実行内容は、市述の第6命令の場合と同様にして、
PORTI←¥OOが求められる。 また実行条件は、重連したループの離脱条件すなわち第
3ブロツク■を通る条件(第6式)と、第8ブロツク■
を処理が通る条件Hsio式)との論理積である。した
がってこれらをまとめて、if TIME −(n
+ C0UNT)= 0and PORT17=1 L It e n P ORT 1 ←¥00
−(22)の論理式出力が得られる。 (つ)!jS9ブロック■を通る場合 ステップe4 で検出されるパラメータは、アキュム
レータAであり、fj4つブロック■を通ってプログラ
ムをさかのぼると第6命令を検出する。したがってこの
場合の実行内容は、上記第22式と同一であり、実行条
rトはループの離脱条件すなわち第3ブロツク■を通る
条件(第6式)と、第4ブロツク■を通る条件(第7式
)と、第9ブロツク■を通る条件(第11式)との論理
積である。したがってこれらをまとめて、 if TIME −(n+ C0INT)= 0a
nd PORTIフ=O and (PORT17=Oand r’0RT1=
¥00)しbenPORT1=¥00・(23)の出力
が得られる。 このようにして、第11命令に関する入出力条件の結合
処理が実現された。 (4)第16命令について 第1表のプログラムリスト(こおいて、行番号13〜2
1は割込みルーチンであり、行番号1〜12のメイン処
理ルーチンとは独立の内容となっている。したがって第
15図ステップe4 で第16命令jsTXJが検出
される。第16命令に関して検出されるパラメータは、
インデックスレノスタXであり、ステップe6 でプ
ログラムをさかのぼると第15命令でロード命令が検出
される。したかって第16命令に関する入出力結合結果
は、if IRQ2=1 tben Z CA P T=CA P T 1
・=(24)の論理式出力が得られる。 (5)tjS17命令rsTAAJについて第16命令
と同様にステップe4 で、バフメータとしてアキュム
レータ八を検出する。ステップe6 でプログラムを
さかのぼると、第13命介でロード命令IDDJが検出
される。したがって第17命令でオペラン!’[TIM
EJにストアされるのは、オペランドl’cAPTIJ
およびオペランドrZCAPTJの各上位バイト情報で
ある。また実行条件は第16命令と同一である。したが
ってこれらを整理して、 if IRQ2=1 tben TIHE= (CAPTI(D) −ZC
APT(’D))(ll)・・・(25) 注:第25式の右辺末尾の(1[)は、右辺のオペラン
ドの上位バイトであることを示す。 (6)第20命令「5TAA」についてttS20命令
の場合には、第15女ステップe −1で、当該命令に
関するパラメータすなわち7キユムレータAを検出する
。このパラメータを決定する最新の命令をプログラムを
さがのぽってステップe6 で検索すると、第19命
令で7キユムレータAに関する操作命令1’DEcAJ
が検出される。 したがってf520命令の実↑テ内容は、COU N
T = A I ・・・(26)と
なろ。 ここで第19命令は、第18命令の分岐命令でゼロ7ラ
グZ=1の場合であることを考慮すると、上記第25式
において、 TIME=7キユムレータA=0 ・・・(27)
の場合に相当する。したがって上記第26式において、
アキュムレータA=0であり、 C0UNT←¥FF ・・・(28)
が結論される。 その実行条件は、第11ブロツク■およV第12ブロッ
ク@を処理が通る条件、すなわち上記第12式および第
13式で示される各条件の論理積となる。したがってこ
れらをまとめれば、if IRQ2=1 and (CAPTI (D) ZCAl
’T(D))(H)= Ot I+ e n CO
(I N T ←¥FF −(29)
が得られ、これで第1表のプログラムリストに関して第
5図ステップ曽4 の書込み命令単位の入出力結合処理
が行なわれる。 続いて、第5図ステップ横5 で後述するようなパイル
の結合処理が行なわれる。ここにaうパイルと1土、プ
ログラムリスト中1こおけるオペランドの直#C毘作命
令を含むたとえば上記第29式のような書込み命令が実
行されるためのχ打電1’t−と実行内゛σとの結合表
記を指す。その具体的処理内′αは第16図の70−チ
ャートに示される。 上述したように、第1表のプロゲラ11リストには6個
の寸込み命令があり、第3命令には第17式のパイルD
7、第6命令には第19式のパイルD6、fi4命令に
は第21式〜第23式のパイルD 3 、D 2 、D
1 、第15命令には第24式のパイルD5、第17
命令には第25式のパイルD4、tj%20Rt+には
tjS29式のD8がそれぞれ作成される。 以下、PI%1G自を参照して、パイル結合処理につい
て説明する。ステップf1 では、ボートへの書込み
命令がある外部出力命令パイルD 1 、D 2 。 D3を検出する。 ステップf2 では、たとえばパイルDl中の未決定
パラメータを決定するパイルを検出する。すなわち、パ
イルD1の実行条件に関して、パラメータ1”TIME
J、[COU N T Jが未決定である。 また、残糸の外部出力命令パイルD2. D3について
も、それぞれ実行内容は異なるものの、未決定バフメー
タはパイルD1と同一のものが検出される。 以下、このようなパラメータを決定するパイルを検出す
る。パラ/−夕rTrMEJについてはパイルD4が検
出され、続くステップ「3 では該パイルD4に含まれ
る全てのパラメータが決定されているかどうかを↑1断
する。現時点ではtq断結果は否定であり、処理はステ
ップ「2 に戻り、パラメータrCAPT I J、r
ZcAPTJを決定するパイルを検出する。このとき第
5パイルD5が選ばれる。このときステップ「3 では
、全パラメータが決定されたことがtq断され、処理は
ステップf・tに移り、外部出力命令パイルが終了した
かどうかをtQ断する。現時点では外部出力命令パイル
D1のみを検討しており、判断結果は否定となり、処理
はステップf1 に戻る。 これ以降、パイルD2.D3が外部出力命令パイルとし
て検出され、それぞれについて前述の場合と同様な処理
が行なわれる。パイルD1〜D3では、未決定のパラメ
ータは共通であり、したがってステップ12 では同
一内容の処理が行なわれる。このようにしてパイルD3
に対するパイル結合が終了した後、ステップf4 で
はn断結果が17定となり、ステップf5に移って第1
7図<1−1 )〜(3−3)のパイル結合結果が出力
される。このようにして第5図ステップw5 のパイ
ルの結合処理が終了する。 以上のよ)に本実施例では、第5図ステップ輸3以降の
分岐条件摘出処理などを行なうに先だって、第5図ステ
ップl111 の流れ構造の解析処理を行なうように
した。したがってプログラム中の分岐命令や分岐先命令
が事前に明らかとなり、OCRなどの制御情報は、これ
らの命令に関してのみ記憶すればよい、したがって被解
析プログラムの動作内容を分析するに当り、たとえばC
CRを全命令にわたって記憶する必要がなく、装置に要
求される記憶容量を格段に削減できる。 上述したように第1表に示したプログラム例に関してパ
イル出力がなされると、繰作者に把握容易な形式でプロ
グラム内容が出力されることになる。一方、被解析プロ
グラムのシミュレーションまたはエミュレーションを行
なうことが広く行なわれているが、先行技術の項で述べ
たように、従来ではプログラムから要求される外部入力
データを全て入力しないと、プログラムのシミュレーシ
ョンまたはエミュレーションは行なうことができなかっ
た0本実施例の解析装置1は、プログラムから要求され
る外部入力データを全て入力することなしに、プログラ
ムの動作内容を把握できるようにしている。 ここでff11表のプログラム例において、第1命令〜
r:tS12命令からなるプログラム部分を例にとり、
この部分のエミュレーションについて考察する。このプ
ログラム部分に表われる外部入力が必要なオペランドは
、l’TIMEJ、rcOUNTJおよびrPORTI
Jの3種である。ここで、これらのオペランドに対して
、下記、 T I ME=180 ・(30)
COUNT=¥7F ・・・(31)P
ORT17=0 ・・・(32)の
データを与えた場合を想定する。ここで、第32式のr
PORT17Jは、ボート1のf57ビツトの意味であ
る。 上述したような外部入力データが与えられた状態で、被
解析プログラムのエミュレーションを行なうには、前述
の#15図ステップ161〜WA5の処理と同一内容の
処理を行なえばよい。 上記プログラム部分に関して、第30式〜第32式のデ
ータ入力下における実行内容は、下記第5表に示される
。 ここで記号「↓」は、たとえば第6図に示す70−チャ
ートの判断ステップa4.a8などで分岐しない場合で
あることを示す。また記号「×」は、データの不足など
に起因して、実行内容が不定であることを示す。 すなわち上記第30式〜tjS32式のデータ条件下で
は、前記プログラム部分の第9命令rBEQJの判断を
確定するに必要なデータが不足していることになる。従
来では、このような場合、シミュレーションまたはエミ
ュレーションで得られる出力結果は意味がないものにな
るにもかかわらず、正しいものとして処理してしまう危
険性があった。 一方、本実施例では、前記外部データ入力は基本的に不
必要であり、上述したようにデータが入力された場合で
あっても、そのデータのもとに上述したような第5図ス
テップ曽1〜輸5の処理を行なう、これにより、解析装
r!11のたとえば表示装置5またはプリンタ6(第1
図参照)では、たとえば第18図示のような出力例が表
示される。すなわち上記第30式〜第32式の条件下で
、第5表のPt51命令〜第10命令の範囲でプログラ
ムを実行させた場合、ボート1には、 PORT1=¥00 ・・・(33)の
場合には、0が出力され、 PORT≠¥00 ・・・
(34)の場合には、¥80が出力されることが把握さ
れる。 このようにして、被解析プログラムで要求される外部入
力データを全ては入力しない場合であっても、当該プロ
グラムのシミュレーションおよびエミュレーションを容
易に実行することができる。 効 果 以上のように本発明に従えば、被解析プログラムで要求
される外部入力データを全ては入力しない場合であって
も、当該プログラムを実際に実行することなく、そのエ
ミュレーションおよびシミュレーションを行なうことが
できる。
るマイクロコンピュータに設定される各ボートの状態と
外部状態との関係を、第4図(2)に示すように入力す
る。たとえばPORT17がハイレベルとなれば、スタ
ートスイッチがオン状態に切換わり、PORT16がハ
イレベルになるとサーモスイッチがオン状態に切換わる
。ステップ118 では、前記マイクロコンピュータ
の割込み端子の状態と、外部状態との関係の入力が、表
示装置5上で要求される。またアナログ/アノタル変換
器チャンネル用ボートについては、キー人力装置7によ
って所定の事項を入力し、第4図(3)に示すように所
定のデータ項目を入力して各ボートを定義する。 ステップ119では、ステップn7.n8での各種入力
が正しく実行されたかどうかを判断する。t1断結果が
否定であれば処理はステップロア に戻り、上記人力さ
れたデータを訂正する。判断結果が11定であればステ
ップ−+10 に移り、たとえば磁気テープ装置2に
記憶されている被解析プログラムを内部記憶Vc置4に
転送して読取る。ステップ+111では、後述するよう
な被解析プログラムを解析し、ステップn12 で解
析結果を出力して処理を終了する。 第5図は7fs3図のステップ+111 のプログラ
ムの解析処理の内容を説明する7o−チャートである。 第5図を併せて参照して、解析装置1の毘作について説
明する。上述したように本発明は、rことえばマイクロ
コンピュータ用1こたとえばアセンブラ−3語によって
作成されrこプログラムの内容を解析するvc置に関す
る9被解析プログラムは、解析装置a 1の磁気テープ
装置2に記憶されており、第3図ステップ1110
で説明したように、このようなプログラムは磁気テープ
装置2からたとえば内部記憶vc置4へ転送される。 本実施例では、被解析プログラムを以下の第1表に示す
プログラムと想定して説明する。 (以−F余白) 第 1 表(プログラムリスト) 上記第1表のプログラムの内容は、第6図および第7図
の70−チャートに示される。第6図および第7図のス
テップ番号a1.a2 、・・・、a21は、上記第1
表のプログラムリストの行番号に対応している。また、
11表の全21行の各命令の実行に関する各7ラグの状
態を示すコンディションコードレジスタ (以下、OC
Rと称する)は、下記第2表に示される。ここでは、符
号7ラグN1ゼロ7ラグZ、オーバ70−7ラグ\lお
よびキャリ7ラグCの状態を示す。 (以下余白) 第2表 (注1)第2表中、記号rt J、r・J、[RJ、r
S Jはそれぞれ[結果によってセットまたはリセット
される]、 [変化しない]、[リセット(クリア)さ
れる」および「セットされる」を表わす。 (注2)上記プログラムには、レジスタ名称の定義、割
込み制御レジスタの設定、ボート入出力)f向の設定、
割込みベクトルの設定等は省略されているが、割込みは
CAPTIのみ許可、その割込みアドレス(ラベル)は
CAPTとする。 上記第1表のプログラムリストで、 (1)入カニ PORTIの第6ビツトにスイッチ人力
(スイッチONでハイレベルに変化): PORT2の
第0ビツトに可変周波イシ号入力 および、 (2)出カニ PORTIの第7ビツトから発光グイオ
ード出力 (出力ハイレベルで発光ダイオード点灯)の
入出力繰作が行なわれる、と定義しておく。 これは第3図ステップ117で行なわれる。 上記第1表のプログラムリストが読込まれた解析装置1
では、第5図ステップ噛1 でプログラムの流れ構造の
解析が行なわれる。 上述したように、tpJ1表に示すプログラムリストは
、第6図および17図に示す動作内容を有している。し
かしながら、tr%1表のプログラムリストから第6図
および第7図示の70−チャートを得るには、人手によ
って、3frr令が単なる処理命令か条件文による分岐
命令かを把握する作業と、分岐命令の場合にはその分岐
先の検出作業などが含まれ、これらの作業に基づいて上
記70−チャートが作成される。 本発明の眼目の1つは、任意のプログラムリストから、
該プログラムの分岐命令と、該分岐命令によって定めら
れる分岐先#令とを把握した後、訊プログラムの処理の
流れのvI造の把握を人間の頭脳による作業を介するこ
となく、解析装置によって自動的に行なうことができる
ようにしたことである。またこれによって、後述するよ
うに上記70−チャートと! $1の形態の出力を得る
ことができる。 このような流れのvl造を把握する処理を、第8図の7
0−チャートにおいて示す。第8図ステップ1)1では
、命令行番号を示すパラメータkを「1」に初期化し、
ステップl+2でfpJk命令(第1表における行番号
にの命令)の読取りを行なう、続くステップb3では、
この読取られた第に命令が分岐命令であるかどうかを判
断する。この判断はたとえば、第1表における命令を1
ilIr&する二一モニツクを読取ればよい、すなわち
上述したように、所望のマイクロコンピュータのアーキ
テクチャを呼出した段階で、解析装置1の内部記憶4に
は、当該マイクロコンピュータに用いられるアセンブラ
ff 9のコマンドや、コマンドに関連する7フグなど
のテーブルが別途記憶され、これを参照することによっ
て、第1表の各命令が分岐命令であるか否かを容易に判
断できるからである。 上記ステップb3 の判断結果が否定であれば、ステ
ップb4でパラメータkを+1インクリメントし、処理
をステップb2 に戻し、上述の説明と同様な処理を
行なう。このとき第1表のプログラムリストに従えば、
第4命令を読取ったとき、アーキテクチャが参照され、
この第4命令がゼロフラグZの状?!!HIJまたは「
0」)を条件とする分岐命令であることが把握される。 したがって、第8図の処理において第を命令が読取られ
たときステップl+3の?!断はけ定となり、処理はス
テップI+5に移る。 ステップ1)5 では、第1表の第4命令のオペラン
ドrLOOPJと対応するラベル名を4/j1.′lR
する。 第1表のプログラムリストでは、第2命令に上記オペラ
ンドと同一のラベルが付されており、したがって第4命
令の分岐先は、1MZfff令であることが理解される
。ステップb6 では、一般に分岐命令の行番号にと
、これに対応する分岐先命令行番号噛との討(以下、ブ
ロック化情報と称する)(k、輸)を、内部記憶装置4
に記憶する。この後、処理はステップ1】4 に移り
、竹番号を+1インクリメントして次の行へ処理を進め
る。 このような処理を行なうことによって、fjS1表のプ
ログラムリストにおける分岐命令と分岐先命令との行番
号の対(k、s)に関して、下記第3表のような結果が
得られる6 第3表 この段階で解析装置1は、第1表に示すプログラムリス
トの流れvIaが把握できたことになる。すなわち第3
表として得られた結果を操作者が容易に理解できる形式
に出力する場合、たとえば第1表のプログラムリストの
行番号1〜21を第9図に示すよ)に−列に配列し、上
記第3表に基づいて、行番号kから行番号−へ向かう分
岐矢符をこれに付すことによって、テログラムリストの
流れ構造として第9図示のような出力が得られる。これ
によって操作者も、第1表のプログラムリストの流れ構
造を容易に把握することがCきる。こうして第5図ステ
ップw1 の処理は終了する。 次に第5図ステップ瞳2では、ステップ輸1で得られた
被解析プログラムの流れ構造の認識に店づいて、該プロ
グラムをブロックに区分する処理を行なう。このような
ブロック化処理には、以下のような利1代がある。本発
明のプログラム内容解析処理が行なわれる被解析プログ
ラムは、一般にはたとえば数百ステップのような場合も
あり、このようなプログラムには、各種分岐命令ら大量
に含まれている。したがって、このような分岐命令の条
fl=の成立の是非に関する組合わせの数が膨大な数に
なることは、容易に想定される。このような膨大な組合
わせ数のプログラムの系統を逐次的に考察の対象とし、
各系統ごとに全命令のコンディションコードレノスタ(
CCI?)を記憶するのは、極めて繁雑であるとともに
膨大な記憶容量が要求され耽 したがって本発明のIiL目の1つは、被解析プログラ
ムを後述するような条件の下で、複数のブロックに区分
し、各ブロックに対して第5L2Iステツプ論3 の分
岐条件柄出処理、ステップm4 の書込み命令単位の
入出力結合処理、およびステップ糟5のパイルの結合処
理などから成る同一内容の処理を施すようにしたことで
ある。このようなブロックの区分7αは、プログラムに
おける分岐命各行か分岐先命令性であり、1ブロツクは
分岐命令性または分岐先命令性で始まり、これらのいず
耽かで終了し、かつそのtitにはこれら分山支命令ま
tこは分岐先命令性を含まないように選ぶ。 すなわち全プログラムは、このような複数のブロックの
結合として表現され、同一ブロック内のプログラムの異
なる流れの種類も極めて少数となる。これにより各ブロ
ックごとの内容解析を格段に容易に行なえるようになり
、全プログラムの内容解析は、ブロックごとに得られた
内容解析結果の結合として示される。 このようなブロック分は処理は、第10図の70−チャ
ートに示される。このとさ、前記第8図を参照して説明
した第5図ステップ輸1 の流れ#lq造の解析処理に
よって得られたブロック化情報対(k、m)について、
tlSl&の全プログラムについて行なうことによって
、第3表に示したような結果が得られる。すなわち、こ
のようなブロック化情報対(kl sml L(k
2 +輸2 >t”・t(耽s、−s) (本実
施例ではs;4)が、第1図示の内部記憶装置4に記憶
されている。以下に説明する第10図の処理には、この
ブロックツク報討列を用いる。なお上記ブロック化情報
列の品数ffIkl、に2.・・・、ks;噛1.鍮2
.・・・。 −5について総称する場合には、それぞれ記号ktmを
用いて示す。 第10図ステップc1 では、第1表のプログラムの
行番号を示すパラメータiを「1」に初期化する。ステ
ップc2では上記行番号iに関して、この行番号i l
: ”F Lい上記ブロック化情報kまたはブロックツ
ク報輸が存在するか否かを判断する。このtl断が1〒
定であれば、ステップC3でブロックツクf1に、輪に
よるブロック化処理を打なう。 このブロック化処理は、以下のように行なわれる。まず
ステップc3 において、tq断が1′r定となるブ
ロック化情報に、檜が記憶される。次にステップc4で
イテ番号iが+1インクリメントされ、ステップc5で
は行番号iがこのような行番号の最終値すなわちM A
X (i)を超えたかどうかのtq断を行なう。 ↑1断結果が否定であれば、第10図に示すブロック化
処理は被解析プログラムの最終行まで到達していないこ
とになり、ステップc2 に戻る。以下、同様の処理
が繰り返し行なわれ、ステップC2の1′1断が肯定と
なるブロック化情報に、 mがあった場合、前回ステッ
プc2 の判断を11定としたブロック化情報に、曽
を呼び出し、これらを組み合わせてブロック情報対(a
tβ)として記憶する。以下、このような処理がプログ
ラムの最終作まで繰り返し行なわれる。 上記ステップc1〜c5で行なわれる処理は、たとえば
第1表のプログラムの第1イテがら第21行までを順番
にたどって、その中でブロック化情報(k=陰)として
示される分岐命令性および分岐先命令性に関して、行番
号の増加方向において隣接する命令列の組をブロック情
報(a、β)として記憶する処理である。 上記ステップc5 のtq断が肯定となれば、処理は
ステップc6 に移り1.ヒ記ブロック化情報列(kL
+aj) ・
・・(1)i=1?21・・・、S によるブロック化処理を好なう。 このブロック化処理は、第1表のプログラムリストにお
いて、分岐処理を実現するブロックを決定する処理とな
る。すなわち第3表のブロック化情報(k、 n)にお
いて、たとえばブロック化情報対(4,2)は、第4命
令から第2+fb介へ処理が分岐r71系統を規定して
いる。したがって、これらのブロック化情報対(k、
m)を、前記ブロック情報対(a、β)と)4なる内容
をなす分岐ブロック情報対(a、β)brとして再定義
することにより、第1表のプログラムリストに関して1
分岐を行なう系統を網羅できる。ステップC6による分
岐ブロック化処理が終了すると、第11図に示すブロッ
ク分は結果が得られる。 また上述のように、ブロック情報対(α、β)と、分岐
ブロック情報対(a、β)l)「とを定義することによ
り、第1表のプログラムリストのたとえば第9命令、第
10命令および第11命令からなるブロックと、mQc
rr令と第11命令とからなる分岐ブロックとを明瞭に
区分できる。このようなブロック情報対(atβ)およ
び分岐ブロック情報対、(α。 β)11rを、下記の第4表に示す。 IjS4 表 以下、得られた各ブロックを示すに際して、第11図に
示すように記号■、■、・・・、co をもって示す
、すなわちブロック■は、行番号1.2の命介群を示し
ている。このような記法に従い、第1表のプログラムは
第12図お上りtiS13図で示されるように表現され
る。ここで、第1表のプログラムを第12L4および第
13図の2つの図に区分したのは、第12図は4?一番
号1〜12のメイン処理ルーチンを人わし、第13図は
行番号13〜21の後述rるような割込み処理ルーチン
を表わし、これC)は相互間に亘って分岐関係が存在し
ない独立な内容だからである。このようにして、第5図
ステップ+62 のブロック分は処理が終了する。 第5図ステップ悄3 では、分岐条件摘出処理が行なわ
れる。このような分岐束ff:摘出処理は、第14図の
70−チャートに示される。第14図ステップd1
では、上述したようなブロック化処理を行ない、各ブロ
ック情報対(a、β)t(’tβ)1】rを得る。ステ
ップd2では変敗jを「1」に初期化する。ステップd
3 以降の処理では、分岐条件として第1ブロツク■
、第2ブロツク■、第3ブロツク■、・・・、第13ブ
ロツク0を処理が通過する条件を求めることになる。 (1)第1ブロツク■を1lTlろ条件第1ブロツクの
は第6図に明らかなように、第12命令の無条件ジャン
プ命令によって処理が無条件に通過するブロックである
。 (2)第2ブロツク■を通る条件 第14図ステップd3 では、第3表を参照して第j
番目(現時、αではj=1)のブロック化111報対(
k。 輸)を参照する。ステップd4では、ステップd3にお
けるブロック化情報対(kls+)において、tjtJ
k命介の分岐条件を支配するフラグを検出する。第4表
によれば、j=1のときに=4であり、第1表のプログ
ラムの第k(= 4 )命令[BNEJの分1岐条件を
支配するフラグの検出を行なう、これはアーキテクチャ
に上って、各命令それ自体に規定される条件となる。す
なわち上記第4命令の場合には、ゼロ7?グZである。 ステップd5 では、命介列の配列方向と反対方向に
一命令を読取る。この命令が上記フラグ(ゼロ7ラグZ
)を変化させる命令であるかどうかのステップd6
におけるtl断が否定であれば、ステップd5.d6を
繰り返す。肯定であればステップd7 に移り、フラ
グを変化させる命令を記憶する。 第1表のプログラムリストと第2表のOCRとを参照す
れば、この命令は第3命令[cMPA CO[I N
T Jであり、ゼロ7ラグZを変化させる命令である
ことがtq断される。ステップd8 では、第1表の
プログラムリストを参照して、ゼロ7″7グZに関する
当atitJ3命令中のパラメータを検出する。すなわ
ち第3命令はアキュムレータAに関する命令であり、パ
ラメータとしてアキュムレータAが検出される。 ステップd9 では、該命令が該パラメータを変化させ
る命令か否かを判断する。このf!断は前記アーキテク
チャに含まれる前記CCRを参照して行なわれる。t1
断が1′r定であれば、ステップd10に移り当該命令
が記憶され、ステップdi 1 に移る。第3命令r
cMPAJはアキュムレータAの内容を変化せず、ステ
ップd9 の判断が否定となり、ステップdlOを経
ることなくステップdi 1に移る。 ステップdi 1 では、現在検討中のブロックが第
1/2のプログラムリスト中でループを構成するブロッ
クがどうかを判断する。現時点では、解析装置1は第4
命令および第3命介しが認識しておらず、この判断は否
定となり、処理はステップd12に移り、ステップdl
Oで記憶した命令が、前記パラメータの入力命令である
かどうかをt++断する。このf1断が1〒定であれば
、ステップd15に移る。一方、上記ステップtJ11
のtq断がff定であれば、ステップd14 で
分岐条件に後述するようなループ要素を追加し、処理は
ステップcj15に移る。 ステップd15 では、当該分岐命令が第9図に示す
ような本実施例における被解析プログラムの構造におい
て、ネスティング構造に含まれるものであるかどうかを
f1断する。t!断結果がff定ならば、ステップd1
6 で後述するようなネスティング要素を追加し、ス
テップtl13 で記憶したブロック列の種類がすべ
て終了したかどうかをtq断し、?!断結果が肯定であ
ればステップd17 で分岐討のパラメータjをプラ
ス1インクリメントし、処理はステップd3に戻る。前
記ステップd15の71断が否定であれば、ステップd
lG を経ることなく、処理はステップd13 に
杉る。 第3命+rCMPAJについて、前記ステップJ12の
tq mは否定となり、処理はステップd19に移り、
現在検討中の命令が当該命令を含むブロックの先頭であ
るかどうかを判断する。第3命令について1′!断結果
は否定であり、ステップd20で命令列の配列方向と反
対力向に一命令を読取り、処理はステップd9 に移り
、重連の処理を繰返す。 m記ステップJ19 で1′り断結果が1′!r定な
らば、ステップd21 に移り、当該ブロックに処理
が到達するブロック列の種類を記憶する。すなわち当該
ブロックに至るルートの種類を記憶する。ステップd2
2 では、記憶したブロック列中から−ブロック列を
選択し処理はステップd2(1に戻る。 第1表のプログラムリストにおいて、第4命介から上述
の処理が繰り返される。このとき、第1命令[LDAA
Jを解析する段階で、ステップdlOで記憶されてきた
#介は、オペランドで記述すると、 A=TIME−(COUNT+1) −<2)にな
る。 またステップdi 1 の判断は肯定となり、第2式
の分岐条件にステップd14 でループ要素が付加さ
れ、下記第3式の分岐条件が得られる。すなわちループ
を1回繰返せば上記m2式は、A=TIME (CO
UNT+n) ・−(3)と表される。この実行内
容がループを構成する条件は、第4命令で分岐条件が成
立すること、すなわちゼロ7ラグZに関して、 2=0 ・・・(4)が
成立する場合である。したがって上記ステップdlOで
は最終的に、 T I ME−(COUNT+n)≠O・=(5)の条
件が得られる。これは第2ブロツク■を処理が通過する
条件となる。 (3)第3ブロツク■を通る条件 この場合、第1表のプログラムリストにおいて、処理が
第2ブロツク■に進行しない条件、士なゎち、上記第5
式の条fl=の否定 T I hi E (COU N T +n)= 0
・・・(6)が求めるべき条件となる。 (、i)m・tブロック■を通る条件 ステップd3 では、第・tブロック■の最終行番号
9をブロック化情報にとする対(k 、 u+ )が、
j=2の場合として、第3表より(8−11)として読
出される。この第8命介に対して、上記第2ブロツク■
を通る条件を求めた処理と同様な処理が行なわれる。ス
テップd4 では、第1表のプログラムの第k(=
8 )命令rBMIJの分岐条件を支配するフラグの検
出を行なう。すなわち、上記第O命介の場合には、符号
7ラグNである。 ステップd5.d6では、この符号7ラグNを変化しう
る最近の命令を検索する。上記第1表および第2表を参
照すれば、第7命令[LDAB PORTIJが対応
することが検出される。ステップd8 では、この符
号75グNに関する第7命令中のパラメータを検出する
。すなわち第7命令は7キユムレータBに関する命令で
あり、このアキュムレータBがバフメータとして検出さ
れる。 ステップd12 では、バフメータとしてのアキュム
レータBの入力命令を検出する。第1表のプログラムリ
ストを参照すれば、上記第7命令自身が7キユムレータ
Bの入力命令であることが検出される。したがってステ
ップd12 の↑lI断は1〒定となり、ステップd
15 でのネステイングモ弯造tq断は杏となるため
、第3ブロツク■の実行内容をオペランドに上って表現
すれば、求める分岐条件は、 PORT17=O・・・(7) となる。ここで表記rPORT17=OJは、入出カポ
−)PORTIの第7ビツトが「0」となる状態を表現
する。この後、処理はステップd13 に移り判断が
否定となり、前述のような処理を経て処理はステップd
3に戻る。 (5)第5ブロツク■を通ろ条件 ステップd3では、j=3の場合としてブロックツク報
討(k、曽)=(9tll)が読出され、ステップd4
では第k(= 9 )命令rBEQ NANNOIJ
の分岐条件を支配する7フグすなわちゼロ7ラグZが検
出される。続いてステップd5.d6では、このゼロ7
ラグZを変化しうる最近の命令として、第122および
第2表を参照して、第7命令「LD!〜13」が検出さ
れる。 このロード命令はアキュムレータBに「PORTl」の
内容を読込む内容であり、このアキュムレータBに関す
るゼロ7ラグZの成立の是非が分岐条件となる。したが
って、前述のような処理が繰り返された後、ステップc
llOでは、F OR,T 1の少なくとも1つのビッ
ト=1・・・(8) が得られる。この後、処理はステップdll に移り
、第5ブロツク■がループ構造の一部をなすかどうかが
判断され、これは否定となる。 続くステップtl12 の判断はl’f定となり、ス
テップd15 で第5ブロツク■がネスティング構造
の一部を成すかどうかが判断される。第5ブロツク■1
土2重の冬スティングも1造をh1成しており、ステッ
プdlG で上記第8式の分岐条件にネスティング要
素が付加される。 すなわち、第12図に明らかなように、第5ブロツク■
は、第4ブロツク■を通過しなければ到達しない処理ブ
ロックであり、したがって第5ブロツク■の通過条件は
、第4ブロツク■の通過条件と上記fjrJ8式の条件
との論理積となる。すなわち、 PORT1?=0 かつ、 P ORT 1の少な(とも1つのビット=1・・・(
9) の分岐条件が得られる。この後、ステップd1.3にお
いて、記憶したブロック列はな−1ので、処理はステッ
プd3に戻る。 (6)第6ブロツク■を通る条件 fj%14図の70−チャートにおいて、ステップd3
でj=4のとき、対応するブロック化情報に、柚が、第
3表を参照して存在しないことがt++断される。した
がって、本件実施例のプログラム内容解析装置1は、現
在のfjSaブロックの分岐条件を、以前の直鎖ブロッ
クと同一分岐条件として設定する。すなt)ち現在の第
6ブロツク■の分岐条件は、以前の直鎖ブロックである
第3ブロツク■の分岐条件、すなわち上記rBa式の条
(↑として設定される。この後、処理は前記パラメータ
jを+1インクリメントした後に、ステップd3に戻る
。 (7)第7ブロツク■を通る条件 第7ブロツク■は、上記第2ブロツク■の分岐条件を考
察した段階で、第2ブロツク■とM【合されてループ横
辺を構成するブロックとして把握されている。したがっ
て第7ブロツク■の分岐条1′l:は、上記第3ブロツ
クで挙げたループ処理の離脱条件の否定の形式の条f’
1.である上記第5式の条件として示される。 (8)第8ブロツク■を通る条件第1 0ブロツク■は、第3表および第4表に示す分1岐ブロ
ック情報対(8,11)brで示される。したがって第
1表第8命令の分岐条件より、第8ブロツク■を処理が
通る条件は、第4ブロツク■を通る条f↑の否定、すな
わち、 1)ORT 1 7 = 1
・(10)となる。 (9)第9ブロツク■を通る条件 第9ブロツク■も、第3表および第4人から51岐ブロ
ツク情報(9、11)brによって規定されるブロック
であり、したがって+f’l l?t!’55ブロツク
■を通る条件を考察した際に検討した第1表第9命介の
分岐条件(第8式)の否定の条1′1−と、第4ブロツ
ク■を通る条件(第7式)との論理積となる。すなわち
、 PORTIの 全ピット二〇 かっ PORTIの第7ビツト=0 ・・・(11)
の条件が得られる。 (10)第10ブロツク[相]を通る条件第10ブロツ
クQΦは、第6ブロツク(fDと分岐命令を介在するこ
となく線形に続くブロワつて゛あり、したがって第10
ブロツク[相]を処理が通る条件は、第6ブロツク■を
通る条件、すなわち第3ブロツク■を通る条件(上記第
6式)と同一になる。 (11)PpJl 1ブロツク■を通る条件ff1l&
のプラグラムリストから明がなよ)に、第13命介〜第
21命介け、第1命介〜第12命なのメインルーチンに
対する割込み処理ルーチンである。その内容から、上記
第2表の欄外に付しtこ人力/出力の定義において、P
ORT 2の第0ビツトに立ち上がりニックまたは立ち
ドがリエツノの信号が入力された状態を表わす割込みベ
クトルの条f生、 I RQ 2 = 0 ・・・
〈12)が得られる。 (12)第12ブロツクQを通る条件 上記第4ブロツク■を通る条件が導出された処理と同様
な処理を経て、第18命介rBNEJでゼロ7ラグZ=
1となる条rトが求められればよい。 すなわち第18命令からプラグラムリストをさがのぼり
、当該分岐命令を支配するフラグであるゼロ7ラグZを
変化させる最近の命令を検出する。 これは第17命令でストア命令rSTAAJが検出され
、パラメータとしてアキュムレータ八が検出される。ア
キュムレータへの人力命令として、第13命令でロード
命令[LDDJが検出される。したがって第13命令〜
tjS18命令の実行内容をオペランドで記述すれば、 tcAPlN(D) −ZCAPT(D)!ノ上位ハイ
ト二〇・・・(13) が得られる。 (13)第13命令■を通ろ条件 この場合、第1表のプログラムリストにおいて、第13
命介以降の処理の進行において、処理が第12ブロツク
@に進行しない条f’l、すなわち上記第13式の条件
の否定、 +CAr’Tl(D)−ZCAPT(D)lの」三位バ
イト≠0・・・(14) が求めるべき条件となる。 このようにして第5図ステップ階3 において柄出され
るべき分岐条件は、各ブロック■〜0を処理が通る条件
として導出された。これ以降、処理 。 は第5図ステップ鍮4に移る。 ステップ輸4 では、書込み命I#単位の入出力結合処
Fljが行なわれろ、ここにaう書込み命令とは、スト
ア命令と、オペランドの直接毘作命杼(たとえばオペラ
ンドの数値を+1増加させるインクリメント命拾jlN
cJなと)とを指す。このような命介の検出は、第1表
のプログラムリストにおいて、各命令を読取ることによ
って直ちに実現できる。 このような入出力の結会処理は、箔15図の70−チャ
ートに示される。第15図 ステップcl。 C2で1土、第1表で示されるプログラム1こ大寸して
、11η述したブロック化処理と分岐条件の生成処理と
をIFなう。この後、ステップe3 では、!’$1
3に示されるプログラムにおいて、書込命令が検出され
る。このような准込み命令としては、第2命令l’1N
cJ、第6命%「5TAAJ、第11命令[5TAAJ
、第16命令[5TXJ、第17命臂[5TAAJおよ
び第20命令「ST八へ」が、後述するように検出され
る。 (1)第2命令「1NcJについて 第15図ステップe4 では、当該命令に関するパラメ
ータを検出する。上述した残余の書込命令、たとえば第
6命令rSTAAJでは、このようなパラメータとして
たとえば7キユムレータAが検出されるが、t55命令
のようなメモリの直接操作帝なでは、本ステップを行な
うことなく、ステップ(・5 で当該命令がその命令の
所属するブロックの先頭であるがどうかをtq断する。 否定であれば、ステップe6 に移って、命)列の配
列方向と反対方向に一命令を検出する。1′r定であれ
ばステップe7 で、当該ブロックに至るブロック列
のJ’T1.類、すなわち当該ブロックに至る処理の系
暁の種類を記憶する。 第2命令に関しては、第2命介を含む第2ブロツク■に
至るブロックは、上記ブロック化処理から得られた第1
2図および1113図の処理の流れ図に示されるように
、0′S1ブロツク■およびr57ブロツク■である。 ステップe8 では、このような記憶したブロック列
中から−ブロック (たとえば第7ブロツク■)を選択
し、処理はステップe6に移る。 ステップe6 では、選択されたブロックにおいて、
命令列の配列方向と反対ノj向に一命会を検出し、現時
、1.諷では第4命介[BNEJを検出する。これによ
りステップe9.el 1 、 cl 2の判断は、そ
れぞれすべて否定であり、したがって処理はステップe
5 に戻る。このようにして」二連した処理を繰り返し
行ない、ステップe6 で第2命令が読取られたとき
、ステップell でループになったことがtlI断
され、ステップe13 でループ要素が追加される。 すなわち第2命令の実行内容は、CO(I N T 、
−COUN T + 1 ・・・(15)であ
るが、この処理がループ構造にしたがって11回実行さ
れる場訃を想定rると、 COtJ N T ←COU N T + n
−(16)となる。これが第2命令の実行内容の一般
形である。 −のときの実行条件は、上記第7ブロツク■を通る条件
、すなわち上記155式の条r1となる。したがって第
2命令に関しては、 if TIME (n+ C0UNT);a!
+1LI+en C0UNT4−C0UNT4 n
−(17)となる。 (2)第6命令について ステップe311′は、次の書込命令である第6命令を
検出し、ステップe4 で第6命令に関するパラメー
タすなわちアキュムレータ八を検出する。 ステップe5のt’!断は否定となり、ステップe6′
c第5命令[cLRAJを検出する。 ステップe9 では、この第5命介が上記パラメータ
であるアキュレータAを変化させる命令であることがl
’l断され、ステップelOで第5命拾が記憶される。 ステップe11 では、当訊第5命令がループ構造に含
まれないことが11断され、ステップe12 では、
第5命令が7キユムレータAの入力frr介であること
が判断される。このtX、ステップe14 のtl断
で1″r定となり、処理はステップe15に移る。 したがって実行内容は、 COU N T←0 ・・・(18
)となり、実行条件は、処理が第3ブロツクqpを通る
条件、すなわち上記第6式で示される条件と同−になり
、これらを整理すれば、 if TIt4E−(n+ C0UNT)= OL
I+en C0IINT −0−(19)の結果が得
られる。 (3)第11命令について 第11命令については、f515図に示されるステップ
e3 で当該命令が検出された後、ステップC4でパ
ラメータとしてアキュムレータAが検出される。ステッ
プe5 では、上記第3表および第4表を参照して、
第11命令が第6ブロツク■の先頭であることがtl
l!liされ、処理はステップe7に移る。この判断に
上って、第1表のプログラムリストにおいて、第11命
令に到達するには第5ブロツク■、第9ブロツク■およ
V第8ブロック■をそれぞれ通る3つの経路が存在する
ことが認識される。以下、後述する実行内容の検出と′
X什条件の検出とを各経路毎に行ない、それらの結果が
#IF!!和として出力される。 ゛(ア)第5ブロツク■を通る経路の場合ステップe4
でパラメータであるアキュムレータ八を検出し、プ
ログラムをさかのぼると、第10命令でアキュムレータ
Aに関するa−ド命令が検出される。ここで第11命令
は、入出力ボートへの書込み命令であり、論理演算とし
て扱う。したがって第10命令および第11命令による
実行内容は、#%1表のプログラムリスト上の表現では
、PORTI←¥80 ・・・(20)
と表現されるが、論理演算の結果としては、上記第10
式と同等な PORT17←1 ・・・(10)な
る論理式が得られる。 このときの実行条件は、第5ブロツク■を処理が通る条
件(上記Pt59式)と、ttS2ブロック■お上り第
7ブロツク■からなるループを処理が離脱する条件、す
なわち処理が第3ブロツク■を通る条件(上記第6式)
との論理積となる。したがって、if TIME
−(n+ C0UNT)= 0and I’0RT1
7=O ind PORTI≠¥00 tl+en PORT17= 1
・= (21)なる論理式出力が得られる。 (イ)[ブロック■を通る場合 ステップe6 でプログラムをさかのぼると、第6命令
でストア命令[5TAAJが検出される。したがって求
める実行内容は、市述の第6命令の場合と同様にして、
PORTI←¥OOが求められる。 また実行条件は、重連したループの離脱条件すなわち第
3ブロツク■を通る条件(第6式)と、第8ブロツク■
を処理が通る条件Hsio式)との論理積である。した
がってこれらをまとめて、if TIME −(n
+ C0UNT)= 0and PORT17=1 L It e n P ORT 1 ←¥00
−(22)の論理式出力が得られる。 (つ)!jS9ブロック■を通る場合 ステップe4 で検出されるパラメータは、アキュム
レータAであり、fj4つブロック■を通ってプログラ
ムをさかのぼると第6命令を検出する。したがってこの
場合の実行内容は、上記第22式と同一であり、実行条
rトはループの離脱条件すなわち第3ブロツク■を通る
条件(第6式)と、第4ブロツク■を通る条件(第7式
)と、第9ブロツク■を通る条件(第11式)との論理
積である。したがってこれらをまとめて、 if TIME −(n+ C0INT)= 0a
nd PORTIフ=O and (PORT17=Oand r’0RT1=
¥00)しbenPORT1=¥00・(23)の出力
が得られる。 このようにして、第11命令に関する入出力条件の結合
処理が実現された。 (4)第16命令について 第1表のプログラムリスト(こおいて、行番号13〜2
1は割込みルーチンであり、行番号1〜12のメイン処
理ルーチンとは独立の内容となっている。したがって第
15図ステップe4 で第16命令jsTXJが検出
される。第16命令に関して検出されるパラメータは、
インデックスレノスタXであり、ステップe6 でプ
ログラムをさかのぼると第15命令でロード命令が検出
される。したかって第16命令に関する入出力結合結果
は、if IRQ2=1 tben Z CA P T=CA P T 1
・=(24)の論理式出力が得られる。 (5)tjS17命令rsTAAJについて第16命令
と同様にステップe4 で、バフメータとしてアキュム
レータ八を検出する。ステップe6 でプログラムを
さかのぼると、第13命介でロード命令IDDJが検出
される。したがって第17命令でオペラン!’[TIM
EJにストアされるのは、オペランドl’cAPTIJ
およびオペランドrZCAPTJの各上位バイト情報で
ある。また実行条件は第16命令と同一である。したが
ってこれらを整理して、 if IRQ2=1 tben TIHE= (CAPTI(D) −ZC
APT(’D))(ll)・・・(25) 注:第25式の右辺末尾の(1[)は、右辺のオペラン
ドの上位バイトであることを示す。 (6)第20命令「5TAA」についてttS20命令
の場合には、第15女ステップe −1で、当該命令に
関するパラメータすなわち7キユムレータAを検出する
。このパラメータを決定する最新の命令をプログラムを
さがのぽってステップe6 で検索すると、第19命
令で7キユムレータAに関する操作命令1’DEcAJ
が検出される。 したがってf520命令の実↑テ内容は、COU N
T = A I ・・・(26)と
なろ。 ここで第19命令は、第18命令の分岐命令でゼロ7ラ
グZ=1の場合であることを考慮すると、上記第25式
において、 TIME=7キユムレータA=0 ・・・(27)
の場合に相当する。したがって上記第26式において、
アキュムレータA=0であり、 C0UNT←¥FF ・・・(28)
が結論される。 その実行条件は、第11ブロツク■およV第12ブロッ
ク@を処理が通る条件、すなわち上記第12式および第
13式で示される各条件の論理積となる。したがってこ
れらをまとめれば、if IRQ2=1 and (CAPTI (D) ZCAl
’T(D))(H)= Ot I+ e n CO
(I N T ←¥FF −(29)
が得られ、これで第1表のプログラムリストに関して第
5図ステップ曽4 の書込み命令単位の入出力結合処理
が行なわれる。 続いて、第5図ステップ横5 で後述するようなパイル
の結合処理が行なわれる。ここにaうパイルと1土、プ
ログラムリスト中1こおけるオペランドの直#C毘作命
令を含むたとえば上記第29式のような書込み命令が実
行されるためのχ打電1’t−と実行内゛σとの結合表
記を指す。その具体的処理内′αは第16図の70−チ
ャートに示される。 上述したように、第1表のプロゲラ11リストには6個
の寸込み命令があり、第3命令には第17式のパイルD
7、第6命令には第19式のパイルD6、fi4命令に
は第21式〜第23式のパイルD 3 、D 2 、D
1 、第15命令には第24式のパイルD5、第17
命令には第25式のパイルD4、tj%20Rt+には
tjS29式のD8がそれぞれ作成される。 以下、PI%1G自を参照して、パイル結合処理につい
て説明する。ステップf1 では、ボートへの書込み
命令がある外部出力命令パイルD 1 、D 2 。 D3を検出する。 ステップf2 では、たとえばパイルDl中の未決定
パラメータを決定するパイルを検出する。すなわち、パ
イルD1の実行条件に関して、パラメータ1”TIME
J、[COU N T Jが未決定である。 また、残糸の外部出力命令パイルD2. D3について
も、それぞれ実行内容は異なるものの、未決定バフメー
タはパイルD1と同一のものが検出される。 以下、このようなパラメータを決定するパイルを検出す
る。パラ/−夕rTrMEJについてはパイルD4が検
出され、続くステップ「3 では該パイルD4に含まれ
る全てのパラメータが決定されているかどうかを↑1断
する。現時点ではtq断結果は否定であり、処理はステ
ップ「2 に戻り、パラメータrCAPT I J、r
ZcAPTJを決定するパイルを検出する。このとき第
5パイルD5が選ばれる。このときステップ「3 では
、全パラメータが決定されたことがtq断され、処理は
ステップf・tに移り、外部出力命令パイルが終了した
かどうかをtQ断する。現時点では外部出力命令パイル
D1のみを検討しており、判断結果は否定となり、処理
はステップf1 に戻る。 これ以降、パイルD2.D3が外部出力命令パイルとし
て検出され、それぞれについて前述の場合と同様な処理
が行なわれる。パイルD1〜D3では、未決定のパラメ
ータは共通であり、したがってステップ12 では同
一内容の処理が行なわれる。このようにしてパイルD3
に対するパイル結合が終了した後、ステップf4 で
はn断結果が17定となり、ステップf5に移って第1
7図<1−1 )〜(3−3)のパイル結合結果が出力
される。このようにして第5図ステップw5 のパイ
ルの結合処理が終了する。 以上のよ)に本実施例では、第5図ステップ輸3以降の
分岐条件摘出処理などを行なうに先だって、第5図ステ
ップl111 の流れ構造の解析処理を行なうように
した。したがってプログラム中の分岐命令や分岐先命令
が事前に明らかとなり、OCRなどの制御情報は、これ
らの命令に関してのみ記憶すればよい、したがって被解
析プログラムの動作内容を分析するに当り、たとえばC
CRを全命令にわたって記憶する必要がなく、装置に要
求される記憶容量を格段に削減できる。 上述したように第1表に示したプログラム例に関してパ
イル出力がなされると、繰作者に把握容易な形式でプロ
グラム内容が出力されることになる。一方、被解析プロ
グラムのシミュレーションまたはエミュレーションを行
なうことが広く行なわれているが、先行技術の項で述べ
たように、従来ではプログラムから要求される外部入力
データを全て入力しないと、プログラムのシミュレーシ
ョンまたはエミュレーションは行なうことができなかっ
た0本実施例の解析装置1は、プログラムから要求され
る外部入力データを全て入力することなしに、プログラ
ムの動作内容を把握できるようにしている。 ここでff11表のプログラム例において、第1命令〜
r:tS12命令からなるプログラム部分を例にとり、
この部分のエミュレーションについて考察する。このプ
ログラム部分に表われる外部入力が必要なオペランドは
、l’TIMEJ、rcOUNTJおよびrPORTI
Jの3種である。ここで、これらのオペランドに対して
、下記、 T I ME=180 ・(30)
COUNT=¥7F ・・・(31)P
ORT17=0 ・・・(32)の
データを与えた場合を想定する。ここで、第32式のr
PORT17Jは、ボート1のf57ビツトの意味であ
る。 上述したような外部入力データが与えられた状態で、被
解析プログラムのエミュレーションを行なうには、前述
の#15図ステップ161〜WA5の処理と同一内容の
処理を行なえばよい。 上記プログラム部分に関して、第30式〜第32式のデ
ータ入力下における実行内容は、下記第5表に示される
。 ここで記号「↓」は、たとえば第6図に示す70−チャ
ートの判断ステップa4.a8などで分岐しない場合で
あることを示す。また記号「×」は、データの不足など
に起因して、実行内容が不定であることを示す。 すなわち上記第30式〜tjS32式のデータ条件下で
は、前記プログラム部分の第9命令rBEQJの判断を
確定するに必要なデータが不足していることになる。従
来では、このような場合、シミュレーションまたはエミ
ュレーションで得られる出力結果は意味がないものにな
るにもかかわらず、正しいものとして処理してしまう危
険性があった。 一方、本実施例では、前記外部データ入力は基本的に不
必要であり、上述したようにデータが入力された場合で
あっても、そのデータのもとに上述したような第5図ス
テップ曽1〜輸5の処理を行なう、これにより、解析装
r!11のたとえば表示装置5またはプリンタ6(第1
図参照)では、たとえば第18図示のような出力例が表
示される。すなわち上記第30式〜第32式の条件下で
、第5表のPt51命令〜第10命令の範囲でプログラ
ムを実行させた場合、ボート1には、 PORT1=¥00 ・・・(33)の
場合には、0が出力され、 PORT≠¥00 ・・・
(34)の場合には、¥80が出力されることが把握さ
れる。 このようにして、被解析プログラムで要求される外部入
力データを全ては入力しない場合であっても、当該プロ
グラムのシミュレーションおよびエミュレーションを容
易に実行することができる。 効 果 以上のように本発明に従えば、被解析プログラムで要求
される外部入力データを全ては入力しない場合であって
も、当該プログラムを実際に実行することなく、そのエ
ミュレーションおよびシミュレーションを行なうことが
できる。
第1図は本発明の一実施例のプログラム内容解析vtr
a1の構成を示すブロック図、第2図は解析装置!!1
の記憶領域10のvtr&を示すブロック図、第3図は
プログラム内部解析装e1の基本的動作を示す70−チ
ャート、第4図は表示装fi5の表示例を示す図、第5
図は解析装r!11のプログラム内容解析処理手順を示
す70−チャー)、ft56図および第7図は被解析プ
ログラム例の動作内容を示す70−チャー)、#S8図
は流れ構造の解析処理手順を示す70−チャート、第9
図は流れ構造の解析処理結果を示す系統図、第10図は
ブロック化処理手順を示す70−チャー)、tjS11
図はブロック化処理の中間結果を示す系統図、第12図
および第13図はブロック化処理結果を示す系統図、第
14図は分岐条件摘出処理手順を示す70−チャート、
第15図は入出力結合処理手順を示す70−チャート、
第16図はパイル結合処理手順を示す70−チャート、
第17図はパイル結合処理結果を示す系統図、第18図
は本実施例の出力例を示す図である。 1・・・プログラム内容解析装置、2・・・磁気テープ
装置、3・・・磁気ディスク装置、4・・・内部記憶装
置、5・・・表示装置、8・・・処理装置、10・・・
記憶領域、10a・・・アーキテクチャ記憶領域 代理人 弁理士 画数 圭一部 第3図 第4図 !5 図 イセZのりτLデ萱1 第 6図 メインルーチンへ 第8 図 13−−−− Ill込 第10図 第12図 g 13図 第16図 第17図
a1の構成を示すブロック図、第2図は解析装置!!1
の記憶領域10のvtr&を示すブロック図、第3図は
プログラム内部解析装e1の基本的動作を示す70−チ
ャート、第4図は表示装fi5の表示例を示す図、第5
図は解析装r!11のプログラム内容解析処理手順を示
す70−チャー)、ft56図および第7図は被解析プ
ログラム例の動作内容を示す70−チャー)、#S8図
は流れ構造の解析処理手順を示す70−チャート、第9
図は流れ構造の解析処理結果を示す系統図、第10図は
ブロック化処理手順を示す70−チャー)、tjS11
図はブロック化処理の中間結果を示す系統図、第12図
および第13図はブロック化処理結果を示す系統図、第
14図は分岐条件摘出処理手順を示す70−チャート、
第15図は入出力結合処理手順を示す70−チャート、
第16図はパイル結合処理手順を示す70−チャート、
第17図はパイル結合処理結果を示す系統図、第18図
は本実施例の出力例を示す図である。 1・・・プログラム内容解析装置、2・・・磁気テープ
装置、3・・・磁気ディスク装置、4・・・内部記憶装
置、5・・・表示装置、8・・・処理装置、10・・・
記憶領域、10a・・・アーキテクチャ記憶領域 代理人 弁理士 画数 圭一部 第3図 第4図 !5 図 イセZのりτLデ萱1 第 6図 メインルーチンへ 第8 図 13−−−− Ill込 第10図 第12図 g 13図 第16図 第17図
Claims (1)
- 【特許請求の範囲】 機能語のみまたは機能語とオペランドとの組合せなどか
ら成る命令列を区分し、 各区分毎に命令列の実行条件と実行内容とを検出し、 検出結果を出力するにあたつて、プログラムから要求さ
れる入力項目のデータで、入力されていない場合には、
該データを不定データとして処理するようにしたことを
特徴とするプログラム内容解析装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62154060A JPH0820972B2 (ja) | 1987-06-20 | 1987-06-20 | プログラム内容解析装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62154060A JPH0820972B2 (ja) | 1987-06-20 | 1987-06-20 | プログラム内容解析装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS63317852A true JPS63317852A (ja) | 1988-12-26 |
JPH0820972B2 JPH0820972B2 (ja) | 1996-03-04 |
Family
ID=15576030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62154060A Expired - Fee Related JPH0820972B2 (ja) | 1987-06-20 | 1987-06-20 | プログラム内容解析装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0820972B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0335320A (ja) * | 1989-06-30 | 1991-02-15 | Fujitsu Ten Ltd | フローチヤート表示装置 |
JPH0351926A (ja) * | 1989-07-19 | 1991-03-06 | Fujitsu Ten Ltd | プログラム内容解析方法 |
Citations (4)
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 | ドキユメント自動出力制御方式 |
-
1987
- 1987-06-20 JP JP62154060A patent/JPH0820972B2/ja not_active Expired - Fee Related
Patent Citations (4)
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0335320A (ja) * | 1989-06-30 | 1991-02-15 | Fujitsu Ten Ltd | フローチヤート表示装置 |
JPH0351926A (ja) * | 1989-07-19 | 1991-03-06 | Fujitsu Ten Ltd | プログラム内容解析方法 |
Also Published As
Publication number | Publication date |
---|---|
JPH0820972B2 (ja) | 1996-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5854930A (en) | System, method, and computer program product for script processing | |
Baarir et al. | The GreatSPN tool: recent enhancements | |
DE69129565T2 (de) | Hochleistungsfähiger Emulator mit Pipelining | |
CN110309511B (zh) | 基于共享表示的多任务语言分析系统及方法 | |
CN107391796A (zh) | 一种基于matlab与ansys的联合优化设计方法 | |
CN113343694A (zh) | 一种医疗命名实体识别方法及系统 | |
JPS63317852A (ja) | プログラム内容解析装置 | |
JPH0540616A (ja) | プログラム仕様生成方法 | |
CN110007962A (zh) | 一种基于代码自动生成的指令集模拟方法 | |
CN110489740A (zh) | 语义解析方法及相关产品 | |
JPH0820973B2 (ja) | プログラム内容解析装置 | |
JPS63317844A (ja) | プログラム内容解析装置 | |
JPS63317848A (ja) | プログラム内容解析装置 | |
JP2548197B2 (ja) | プログラム内容解析装置 | |
Carlson | A survey of high-level language computer architecture | |
JPS63317843A (ja) | プログラム内容解析装置 | |
JPS63317851A (ja) | プログラム内容解析装置 | |
JPS63317847A (ja) | プログラム内容解析装置 | |
JPS63317849A (ja) | プログラム内容解析装置 | |
JPS59736A (ja) | 構文解析方式 | |
JPS63317846A (ja) | プログラム内容解析装置 | |
JPS63317845A (ja) | プログラム内容解析装置 | |
JPS6217840A (ja) | 属性フラグによるマイクロプログラム制御方式 | |
JP2653880B2 (ja) | プログラム内容解析装置 | |
CN111176785A (zh) | 一种基于操作链接的机器指令码取词方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |