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

プログラム内容解析装置

Info

Publication number
JPS63317848A
JPS63317848A JP62154056A JP15405687A JPS63317848A JP S63317848 A JPS63317848 A JP S63317848A JP 62154056 A JP62154056 A JP 62154056A JP 15405687 A JP15405687 A JP 15405687A JP S63317848 A JPS63317848 A JP S63317848A
Authority
JP
Japan
Prior art keywords
instruction
program
block
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
JP62154056A
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 JP62154056A priority Critical patent/JPS63317848A/ja
Publication of JPS63317848A publication Critical patent/JPS63317848A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、マイクロコンピュータなどを作動するために
用いられるプログラムの内容を解析する装置に関する。
従来技術 マイクロコンピュータ用などに設計されたプログラムの
点検は、以下のように行なわれる。まずシンタックスエ
ラーなどの基本的なバグを取除いた後、プリントアウト
されたプログラムリストに基づいて、人手によって、該
プログラムの61造と、該プログラムに基づく各種入出
力!iffの動作とを把握し、これを仕様書の記載内容
と照合する。さらに該プログラムが用いられるハードウ
ェアに実際に組込み、プログラムの実行によって要求さ
れる各種入力条件を入力して、シミュレーションさせ、
プログラムの動作状態を確認する。
発明が解決しようとする問題点 しかしながら実際のプログラムは膨大なステップ数に及
ぶことがあり、その中にはやはり膨大な分岐命令が含ま
れている。したがってこれらの分岐命令に基づく処理の
流れの数はやはり膨大な数となり、上記人手による内容
把握作業では実現が困難である。したがって前述したよ
うなシミュレーションまたはエミュレーションによるチ
ェックが行なわれがちになり、仕様書の内容の遺漏やバ
グなどを完全に解消するには、むやみに時間を要してい
た。また、前述したようなシミュレーンヨンやエミュレ
ーションを行なうには、実際のプログラム作動時におい
て必要とされる入力要求をすべて充足させねばならず、
繁雑な手間を要していた。
本発明の目的は、上述の問題点を解決し、仕様書など、
プログラム内容のチェックの基準となる物との照合が1
f易な形態にプログラム内容を解析でさるとともに、チ
ェック対象となる該プロゲラ、 ムを実行することなく
、プログラム内容の解析を行なうようにできるプログラ
ム内容nv析装置を提供することである。
問題点を解決するための手段 本発明は、機能語のみ本たは機能語とオペランドとの組
合わせなどの命令列における分岐命令と、分岐先命令と
を検出し、 分岐命令ごとの各分岐先命令によって決定される処理の
経路を順次選択し、 各経路ごとの処理の実行条件と実行内容とを算出するよ
うにしたことを特徴とするプログラム内容解析装置であ
る。
作  用 本発明に従えば、命令列における分岐命令と分岐先命令
とが検出され、分岐命令ごとの各分岐先命令によって決
定される処理の経路を順次選択する。このように選択さ
れた各経路に関して、処理の実行条件と実行内容とを解
析して出力するようにする。これにより解析されるプロ
グラムを実行することなく、その内容を解析でき、しか
も楳作者が容易に把握できる形式で出力できる。
実施例 第1図は本発明の一実施例のプログラム内容解析装置(
以下、解析装置と称する)1の構成を示すブロック図で
ある。第1図を参照して、解析装置1は、従来技術の項
で述べたようなチェックが行なわれる被解析プログラム
が、シーケンシャルな形式で記憶されている磁気テープ
記録/再生装置(以下、磁気テープ装置と称する)2と
、ランダムな記憶が行なわれる磁気ディスク装置i!3
と、たとえばランダムアクセスメモリ(RA M )な
どによって実現される内部記憶装置4と、たとえばCR
T(陰極m’rr>*置や液晶表示装置などに上って実
現される表示i置5と、インパクト形または非インパク
ト形などの印字装置6と、各4!キーやスイッチ類など
によって実現されるキー人力装置7と、これらに上って
入力される情報を処理し、またこのような情報の入力/
出力動作を制御するマイクロプロセッサなどを含んで構
成される処理装置・8とを含む。
仕様書の内容に従って作成されたプログラムは、従来技
術の項で述べたように、まずシンタックスエラーなどの
基本的なバグを取除−1た後1.磁気テープ装置2に記
憶される。磁気テープ装置2の被解析プログラムは、解
析装ff!1の内部記憶装置4へ転送され、後述するよ
うなチェック処理が行なわれる。その結果は再び磁気テ
ープ装置i!2へ記憶され、または磁気ディスク装置3
へ記憶される。
またこのような記憶処理とともに、表示*fi!5へ表
示出力され、また印字装置6によって印字出力される。
第2図は磁気テープv装置2や磁気ディスク装置3など
の記憶装置の記録状態を示す系統図である。
処理装置8にバス9などを介して接続された磁気テープ
装置2の記憶領域10は、前記被解析プログラムの実行
対象となるたとえばマイクロコンピュータに関するアー
キテクチャが記憶されるアーキテクチャ記憶WI域10
mや、この被解析プログラムによる制御の対象となる入
力/出力に用いられるアナログ信号をデジタル信号に変
換する際の比較電圧値など、このようなアナログ/デジ
タル変換器の諸元などを記憶するA/D変換器諸元記憶
領域10bや、本被解析プログラムの実行対象となるマ
イクロコンピュータの有する各端子の信号の出力状態と
、この端子に接続される各人力/出力ii?iの動作状
態との関係の定義(たとえばマイクロコンビエータの成
るビンからハイレベルの信号が導出されると、LED(
発光ダイオード)が点灯する、などの定義)が、記憶さ
れる定義記憶領域10cなどを含んで植成される。
第3図は第1図示の解析装置1の基本的動作を説明する
フローチャートであり、第4図は解析装ralの表示装
ra5の表示例を示す図である。第1図〜第4図を参照
して、解析装置1の基本的動作について説明する。解析
装置1の電源が投入されると第3図ステップ111  
以降の処理が開始され、表示装りLs上に各種入力要求
を表示する。ステップn2  では、このような入力要
求に対応して、解析されるプログラムの実行対象となる
マイクロコンピュータの名称を入力する。この様子は第
4図(1)に示される。
続くステップn3  では、入力された名称のマイクロ
コンピュータのアーキテクチャが、アーキテクチャ領域
10aに存在するかどうかを↑q断する。
存在していればステップn4で当該アーキテクチャを呼
出し、たとえば内部記憶4に転送し、ステップn5 で
アナログ/デジタル変換器の名称を入力する。一方、前
記ステップn3  の平鴫断が否定であれば処理はステ
ップn6  に移り、解析装W11は、入力された名称
に対応するアーキテクチャが記憶されていないことを表
示し、新規登録を要求する。
この後、処理はステップn5  へ移る。
ステップn5  のアナログ/デジタル変換器の名称入
力の様子は、第4図(1)に示される。続くステップn
7  では、解析されるプログラムが動作対象とするマ
イクロコンピュータに設定される各ボートの状態と外部
状態との関係を、第4図(2)に示すように入力する。
たとえばPORT17がハイレベルとなれば、スタート
スイッチがオン状態に切換わり、PORT16がハイレ
ベルになるとサーモスイッチがオン状態に切換わる。ス
テップn8  では、前記マイクロコンピュータの割込
み端子の状態と、外部状態との関係の入力が、表示装(
I!5上で要求される。またアナログ/デフタル変換器
チャンネル用ポートについては、キー人力装置fi7に
よって所定の事項を入力し、第4図(3)に示すように
所定のデータ項目を入力して各ボートを定義する。
ステップn9では、ステップn?、n8での各種入力が
正しく実行されたかどうかを判断する0判断結果が否定
であれば処理はステップn7  に戻り、上記入力され
たデータを訂正する1判断結果が肯定であればステップ
nlOに移り、たとえば磁気テープ装fi2に記憶され
ている被解析プログラムを内部記憶装置4に転送して読
取る。ステップn11では、後述するような被解析プロ
グラムを解析し、ステップn12  で解析結果を出力
して処理を終了する。
tjSS図は第3図のステップnil  のプログラム
の解析処理の内容を説明する70−チャートである。第
5図を併せて参照して、解析装置1の操作について説明
する。上述したように本発明は、たとえばマイクロコン
ピュータ用にたとえば7センプラ言語によって作成され
たプログラムの内容を解析する装置に関する。被解析プ
ログラムは、解析装r111の磁気テープ装置?!2に
記憶されており、第3図ステップnlOで説明したよう
に、このようなプログラムは磁気テープ装(ii2から
たとえば内部記憶装置4へ転送さ紅る。
本実施例では、被解析プログラムを以下の第1表に示す
プログラムと想定して説明する。
第 1 表(プログラムリスト) 上記第1表のプログラムの内容は、第6図および第7図
の70−チャートに示される。第6図および第7図のス
テップ番号al、a2.・・・、a21は、上記第1表
のプログラムリストの行番号に対応している。また、第
1−&の全21行の各命令の実行に関する各7ラグの状
態を示すコンディションコードレノスタ (以下、CC
Rと称する)は、下記第2表に示される。ここでは、符
号7ラグN1ゼロ7ラグZ、オーバ70−7ラグ■およ
びキャリ7ラグCの状態を示す。
(以下余白) 第   2   表 (注1)第2表中、記号rtJ汀・JJRJ、rS J
はそれぞれ[結果によってセットまたはリセットされる
」、「変化しない」、[リセット(クリア)される」お
よび「セットされる」を表わす。
(注2)上記プログラムには、レノスタ名称の定義、割
込み制御レノスタの設定、ボート入出力方向の設定、割
込みベクトルの設定等は省略されているが、市込みはC
APT 1のみ許可、その割込みアドレス(ラベル)は
CAPTとする。
上記第1表のプログラムリストで、 (1)入カニPORT1の第6ビツトにスイッチ入力(
スイッチONでハイレベルに変化): PORT2の第
0ビツトに可変周波信号入力 および、 (2)出カニPORT1の第7ビツトから発光ダイオー
ド出力 (出力ハイレベルで発光ダイオード点灯)の入
出力操作が行なわれる、と定義しておく。
5 これは第3図ステップn7で行なわれる。
上記第1表のプログラムリストが読込まれた角イ析装置
!!1では、第5図ステップ輪1 でプログラムの流れ
構造の解析が行なわれる。
上述したように、第1表に示すプログラムリストは、第
6図および第7図に示す動作内容を有している。しかし
ながら、第1表のプログラムリストから第6図および第
7図示の70−チャートを得るには、人手によって、各
命令が単なる処理命令か条件文による分岐命令かを把握
する作業と、分岐命令の場合にはその分岐先の検出作業
などが含まれ、これらの作業に基づいて上記70−チャ
ートが作成される。
本発明の臥0の1つは、任意のプログラムリストから、
該プログラムの分岐命令と、該分岐命令によって定めら
れる分岐先命令とを把握した後、該プログラムの処理の
流れの構造の把握を人間の頭脳による作業を介すること
なく、解析装置によって自動的に行なうことができるよ
うにしたことである。またこれによって、後述するよう
に上記70−チャートとm似の形態の出力を得ることが
できる。
このような流れの構造を把握する処理を、第8図の70
−チャートにおいて示す、第8図ステップb 1では、
命令行番号を示すパラメータkを「1」に初期化し、ス
テップb2でfik命令(第1表における行番号にの命
令)の読取りを行なう。続くステップb3では、この読
取られた第に命令が分岐命令であるかどうかを判断する
。この判断はたとえば、第1表における命令を構成する
二一モニツクを読取ればよい、すなわち上述したように
、所望のマイクロコンピュータのアーキテクチャを呼出
した段階で、解析装置1の内部記憶4には、当該マイク
ロコンピュータに用いられるアセンブラ言語のコマンド
や、コマンドに関連するフラグなどのテーブルが別途記
憶され、これを参照することによって、第1表の各命令
が分岐命令であるか否かを容易に判断できるからである
上記ステップb3  の判断結果が否定であれば、ステ
ップh4でパラメータkを+1インクリメントし、処理
をステップb2  に戻し、上述の説明と同様な処理を
行なう。このとき第1表のプログラムリストに従えば、
第4命令を読取ったとき、アーキテクチャが参照され、
この14命令がゼロ7ラグZの状?l!HIJまたは「
0」)を条件とする分岐命令であることが把握される。
したがって、第8図の処理において第4命令が読取られ
たときステップh3の判断は11定となり、処理はステ
ップl+5に移る。
ステップb5  では、第1表の第4命令のオペランP
[LOOPJと対応するラベル名を検索する。
第1表のプログラムリストでは、第2命令に上記オペラ
ンドと同一のラベルが付されており、したがって第4命
令の分岐先は、第2frI令であることが理解される。
ステップb6  では、一般に分岐命令の行番号にと、
これに対応する分岐先命令行番号−との対(以下、ブロ
ック化情報と称する)(k、論)を、内部記憶装置4に
記憶する。この後、処理はステップb4  に移り、行
番号を+1インクリノントして次の行へ処理を進める。
このような処理を行なうことによって、第1表のプログ
ラムリストにおける分岐命令と分岐先命令との行番号の
対(k、s)に関して、下記第3表のような結果が得ら
れる。
第3表 この段階で解析vc置1は、第1表に示すプログラムリ
ストの流れvImが把握できたことになる。すなわち第
3表として得られた結果を捏作者力C容易に理解できる
形式に出力する場合、たとえば第1表のプログラムリス
トの行番号1〜21を第9図に示すように一列に配列し
、上記第3表に基づ11%で、行番号kから行番号輪へ
向かう分岐矢符をこれに付すことによって、プログラム
リストの流れ構造として第9図示のような出力が得られ
る。これによって操作者も、第1表のプログラムリスト
の流れ構造を容易に把握することができる。こうして第
5図ステップ−1の処理は終了する。
次に第5図ステップ協2では、ステップmlで得られた
被解析プログラムの流れ構造の認3に基づいて、該プロ
グラムをブロックに区分する処理を行なう、このような
ブロック化処理には、以下のような利点がある0本発明
のプログラム内容解析処理が行なわれる被解析プログラ
ムは、一般にはたとえば致方ステップのような場合もあ
り、このようなプログラムには、各種分岐命令も大量に
含まれている。したがって、このよろな分岐命令の条件
の成立の是非に関する組合わせの数が膨大な数になるこ
とは、容易に想定される。このような膨大な組合わせ数
のプログラムの系統を逐次的に考察の対象とし、各系統
ごとに全命令のコンディションコードレジスタ(OCR
)を記憶するのは、極めて繁雑であるとともに膨大な記
憶容量が要求される。
したがって本発明の眼目の1つは、被解析プログラムを
後述するような条件の下で、複数のブロックに区分し、
各ブロックに対して第5図ステップ膳3 の分岐条件摘
出処理、ステップ鋤4 の書込み命令単位の入出力結合
処理、およびステップ謡5のパイルの結合処理などから
成る同一内容の処埋を施すようにしたことである。この
ようなブロックの区分点は、プログラムにおける分岐命
令行か分岐先命令性であり、1ブロツクは分岐命令行ま
たは分゛岐先命令行で始まり、これらのいずれかで終了
し、かつその間にはこれら分岐命令または分岐先命令性
を含まないように選」ζ。
すなわち全プログラムは、このような複数のブロックの
結合としで表現され、同一ブロック内のプログラムの異
なる流れの種類も極めて少数となる。これにより各ブロ
ックごとの内容解析をsPiに容易に行なえるようにな
り、全プログラムの内容解析は、ブロックごとに得られ
た内容解析結果の結合として示される。
このようなブロック分は処理は、第10図の70−チャ
ートに示される。このとき、前記第8図を参照して説明
した第5図ステップ−1の流れ構造の解析処理によって
得られたブロック化49報対(k、m)について、第1
表の全プログラムについて行なうことによって、第3表
に示したような結果が得られる。すなわち、このような
ブロック化情報対(kl 、ml )、(k2 、第2
 )、−、(ks、ms) (本実施例では5=4)が
、第1図示の内部記憶装置4に記憶されている。以下に
説明するf:tS10図の処理には、このブロック化情
報対列を用いる。なお上記ブロック化情報列の各数イ直
kl 、に2 、・・・+ks;纏1.論2.・・・。
IIsについて総称する場合には、それぞれ記号k +
 16を用いて示す。
第5図ステップc1  では、第1表のプログラムのイ
テ番号を示すパラメータiを「1」に初期化する。ステ
ップC2では上記行番号iに関して、この行番号iに等
しい上記ブロック化情報kまたはブロック化情報偽が存
在するか否かを111断する。この判断が17定であれ
ば、ステップc3  でブロック化情!Ik、mによる
ブロック化処理を行なう。
このブロック化処理は、以下のように??なわれる。ま
ずステップc3  において、判断が肯定となるブロッ
ク化情報に、−が記憶される。次にステップc4で行番
号iが+1インクリメントされ、ステップC5では行番
号;がこの上うな行番号の最終値すなわちM A X 
(i)を超えたがどうかの判断を行なう。
判断結果が否定であれば、第10図に示すブロック化処
理は被解析プログラムの最終行まで到達していないこと
になり、ステップc2  に戻る。以下、同様の処理が
繰り返し行なわれ、ステップC2の判断がl’f定とな
るブロック化情報に、麺があった場合、萌回ステップc
2  のtq断を肯定としたブロック化情報に、 +−
を呼び出し、これらを組み合わせてブロック情報対(α
、β)として記憶する。以下、このような処理がプログ
ラムの最終行まで繰り返し行なわれる。
上記ステップc1〜C5で行なわれる処理は、たとえば
第1.&のプログラムの第1行から!521行までを順
番にたどって、その中でブロック化情報(k、m)とし
て示される分岐命令行および分岐先命令性に関して、行
番号の増加方向において隣接す・  る命令列の組をブ
ロック情報(’tβ)として記憶する処理である。
上記ステップC5の判断が肯定となれば、処理はステッ
プc6  に移り、」二足ブロック化情報列(kj、m
j)                       
 ・・・(1)J=1w2*・・・、S によるブロック化処理を行なう。
このブロック化処理は、第1表のプログラムリストにお
いて、分岐処理を実現するブロックを決定する処理とな
る。すなわち第3表のブロック化情報(k、 +a)に
おいて、たとえばブロック化情tit対(4,2)は、
第4命令から第2命令へ処理が分岐する系統を規定して
いる。したがって、これらのブロック化情報対(k、鴎
)を、前記ブロック情報対<a、β)と異なる内容をな
す分岐ブロック情報対(”t β)brとして再定義す
ることにより、第1表のプログラムリストに閃して、分
岐を行なう系統を網羅できる。ステップCG  による
分岐ブロック化処理が終了すると、第11図に示すブロ
ック分は結果が得られる。
また上述のように、ブロック情報対(α、β)と、分岐
ブロック化情報対(”t β)brとを定義することに
より、第1表のプログラムリストのたとえば第9命令、
第10命令および第11命令からなるプロックと、第9
命令と第11命令とからなる分岐ブロックとを明瞭に区
分できる。このようなブロック情報対(a、β)および
分岐ブロック情報対(a。
β)l+rを、下記の第4表に示す。
以下、得られた各ブロックを示すに際して、第11図に
示すように記号■、■、・・・、■ をもって示す、す
なわちブロック■は、行番号1.2の命令群を示してい
る。このような記法に従い、第1表のプログラムは第1
2図および第13図で示されるように表現される。ここ
で、第1表のプログラムを第12図および第13図の2
つの図(二区分したのは、第12図は行番号1〜12の
メイン処理ルーチンを表わし、第13図は行番号13〜
21の後述するような割込み処理ルーチンを表わし、こ
れらは相互問に且つて分岐関係が存在しない独立な内容
だからである。このようにして、第5図ステップ−2の
ブロック分は処理が終了する。
第5図ステップ輸3 では、分岐条件摘出処理が行なわ
れる。このような分岐条件摘出処理は、第□14図の7
0−チャートに示される。f:tS14図ステップd1
  では、上述したようなブロック化処理を行ない、各
ブロック情報対(’tβ)、(α、β)1】rを得る。
ステップd2では変敗jをrlJに初期化する。ステッ
プd3  以降の処理では、分岐条件として第1ブロツ
ク■、第2プaツク■、第3ブロツク■、・・・、第1
3ブロツク■を処理が通過する条件を求めることになる
(1>第1ブロツク■を通る条件 第1ブロツク■は第6図に明らかなように、第121!
’ill令の無条件ジャンプ命令によって処理が無条件
に通過するブロックである。
(2)tpJ2ブロック■を通る条件 第14図ステップd3  では、第3表を参照して第j
@目(現時点ではj=1)のブロック化情報対(k。
I)を参照する。ステップd4では、ステップd3にお
けるブロック化情報対(k、輸)において、第に命令の
分岐条件を支配するフラグを検出する。第4表によれば
、j= 1のとき転=4であり、第1表のプログラムの
第k(= 4 )命令j13NEJの分岐条件を支配す
るフラグの検出を行なう、これはアーキテクチャによっ
て、各命令それ自体に規定される条件となる。すなわち
上記第4命令の場合には、ゼロ7ラグZである。
ステップd5  では、命令列の配列方向と反対方向に
一命令を読取る。この命令が上記フラグ(ゼロ7ラグZ
)を変化させる命令であるかどうかのステップd6  
における↑IIWRが否定であれば、ステップd5.d
6を繰り返す、肯定であればステップd7  に移り、
フラグを変化させる命令を記憶する6第1表のプログラ
ムリストと第2表のCCRとを参照すれば、この命令は
tjtJ3命令jcMPA  C0UNTJであり、ゼ
ロ7ラグZを変化させる命令であることが判断される。
ステップd8  では、第1表のプログラムリストを参
照して、ゼロ7ラグZに関する当該tj%3命令中のパ
ラメータを検出する。すなわち第3命令はアキュムレー
タAに関する命令であり、パ′ラノータとしてアキュム
レータAが検出される。
ステップd9  では、該命令が該パラメータを変化さ
せる命令か否かを判断する。この判断は前記アーキテク
チャに含まれる前記OCRを参照して行なわれる。tl
断が行定であれば、ステップd10に移り当該命令が記
憶され、ステップdi 1  に移る。tJ%3命令[
cMPAJはアキュムレータAの内容を変化せず、ステ
ップd9  のtq断が否定となり、ステップdloを
経ることなくステップdi 1に移る。
ステップdi 1  では、現在検3す中のブロックが
第1表のプログラムリスト中でループを構成するブロッ
クかどうかをtq断する。現時点では、解析装置1は第
4命令および第3命令りか認識しておC)ず、この1q
断は否定となり、処理はステップd12に移り、ステッ
プdlOで記憶した命令が、1肖記パラメータの人力命
令であるかどうかを判断する。このt’!断がl’f定
であれば、ステップd15に移る。一方、上記ステップ
dll  の判断が17定であれば、ステップd14 
 で分岐条件に後述するようなループ要素を追加し、処
理はステップd15に移る。
ステップd15  では、当該分岐命令が第9図に示す
ような本実施例における被解析プログラムのhm造にお
いて、ネスティング情造に含まれるものであるかどうか
をtq断する。判断結果が1’f定ならば、ステップd
1.6  で後述するようなネスティング要素を追加し
、ステップd13  で記憶したブロック列のIIIM
がすべて終了したかどうかをt1断し、t’l ffr
結果が11定であればステップd17  で分岐対のパ
ラメータjをプラス1インクリメントし、処理はステッ
プd3に戻る。前記ステップd15の判断が否定であれ
ば、ステップdi(3を経ることなく、処理はステップ
d13  に移る。
i93命令「cMPAJについて、前記ステップd12
の判断は否定となり、処理はステップd19に移り、現
在検討中の命令が当該命令を含むブロックの先頭である
かどうかを判断する。第3命令について判断結果は否定
であり、ステップd2()で命令列の配列方向と反対方
向に一命令を読取り、処理はステップd9  に移り、
前述の処理を繰返す。
前記ステップd19  で1′萼断結来が11定ならば
、ステップd21  に移り、当該ブロックに処理が到
達するブロック列の種類を記憶する。すなわち当該ブロ
ックに至るルートの種類を記憶する。ステップd22 
 では、記憶したブロック列中から−ブロック列を選択
し処理はステップd20に戻る。
第1表のプログラムリストにおいて、第4命令から上述
の処理が繰り返される。このとき、ptt11命令jL
DAAJを解析する段階で、ステップdlOで記憶され
てきた命令は、オペランドで記述すると、 A=TIME−(COtJNT+1)  ・・・(2)
になる。
またステップdll  の?り断は丘定となり、第2式
の分岐条件にステップd14  でループ要素が付加さ
れ、下記第3式の分岐条件が得られる。すなわちループ
を0回繰返せば上記第2式は、A=TIME−(COU
NT+n)   −(3)と友′!−れる。この実行内
容がループを構成する条件は、第4命令で分岐条件が成
立すること、すなわちゼロ7ラグZに関して、 2=0               ・・・(4)が
成立する場合である。したがって上記ステップdlOで
は最終的に、 T I ME −(COUNT+n)−〇   −(5
)の条件が得られる。これは第2ブロツク■を処理・ 
が通過する条件となる。
(3)第3ブロツク■を通る条f↑ この場合、第1表のプログラムリスtにおいで、処理が
第2ブロツク■7に進行しない条件、すなわち、上記第
5式の条件の否定 TIME−(COUNT+n)=O−(6)が求めるべ
き条件となる。
(4)第4ブロツク■を通る条件 ステップd3  では、第4ブロツク■の最終行番号9
をブロック化情11にとする対(k、!6)が、3=2
の場合として、第3表より(8,11)として読出され
る。この第8命令に対して、上記第2ブロツク■を通る
条件を求めた処理と同様な処理が行なわれる。ステップ
d4 では、第1表のプログラムの第k(= 8 )命
令「I3MIJの分岐条件を支配するフラグの検出を行
なう、すなわち、上記第8命令の場合には、符号7ラグ
Nである。
ステップd5.df3では、この符号7ラグNを変化し
うる最近の、命令を検索する。上記PttJ1表および
第2表を参照すれば、第7命令ILDAB  PORT
IJが対応する二とが検出される。ステップd8  で
は、この符号7ラグNに関する第7命令中のパラメータ
を検出する。すなわち第7命令は7キユムレータBに関
する命令であり、この7キユムレータBがパラメータと
して検出される。
ステップd12  では、パラメータとしての7キ。
ユムレータBの入力命令を検出する。第1表のプログラ
ムリストを参照すれば、上記第7命令自身が7キユムレ
ータBの入力命令であることが検出される。したがって
ステップd12  の判断は肯定となり、ステップd1
5  でのネスティング横道判断は否となるため、第3
ブロツク■の実行内容をオペランドによって表現すれば
、求める分岐条件は、 PORT1?=0          ・・・(7)と
なる、ここで表記jPORT17=OJは、入出カポ−
) PORT 1の第7ビツトが「0」となる状態を表
現する。この後、処理はステップd13  に移り判断
が否定となり、前述のような処理を経て処理はステップ
d3に戻る。
(S )Is 5ブロツク■を通る条件ステップd3で
は、j=3の場合としてブロック化情報対(k、輸)=
(9,11)が読出され、ステップd4では第k(= 
9 )命令rBEQ  NANNOIJの分岐条件を支
配するフラグすなわちゼロ7ラグZが検出される。続い
てステップd5.dGでは、このゼロ7ラグZを変化し
うる最近の命令として、第1表および第2表を参照して
、tjS7命令[LDABJが検出される。
このロード命令はアキュムレータBに[PORTIJの
内容を読込む内容であり、このアキュムレータBに関す
るゼロ7ラグZの成立の是非が分岐条件となる。したが
って、前述のような処理が媒り返された後、ステップd
lo  では、PORTIの少な(とも1つのビット=
1・・・(8) が得られる。この後、処理はステップdll  に移り
、第5ブロツク■がループ構造の一部をなすかどろかが
判断され、これは否定となる。
続くステップd12  の判断は肯定となり、ステップ
d15  で第5ブロツク■がネスティング構造の一部
を成すかどうかが判断される。第5ブロツク■は2重の
ネスティング構造を構成しており、ステップd16  
で上記第8式の分岐条件にネスティング要素が付加され
る。
すなわち、第12図に明らかなように、第5ブロツク■
は、第4ブロツク■を通過しなければ到遠しない処理ブ
ロックであり、したがって第5ブロツク■の通過条件は
、第4ブロツク■の通過条件と上記第8式の条件との論
理積となる。すなわち、 PORT17=0 かつ、 PORT 1の少なくとも1つのビット=1・−(9) の分岐条件が得られる。この後、ステップd13におい
て、記憶したブロック列はないので、処理はステップd
3に戻る。
(6)第6ブロツク■を通る条件 第14図の70−チャートにおいて、ステップd3でj
=4のとき、対応するブロック化情報に、鵠□  が、
f:143表を参照して存在しないことが判断される。
したがって、本件実施例のプログラム内容解析装置1は
、現在の第6ブロツクの分岐条件を、以前の直鎖ブロッ
クと同一分岐条件として設定する。すなわち現在の第6
ブロツク■の分岐条件は、以前の直鎖プリツクである第
3ブロツク■の分岐条件、すなわち上記第6式の条件と
して設定される。この後、処理は前記パラメータjを+
1インクリメントした後に、ステップd3に戻る。
(7)第7ブロツク■を通る条件 第7ブロツク■は、上記第2ブロツク■の分岐条件を考
察した段階で、第2ブロツク■と組合されてループ構造
を構成するブロックとして把握されている。したがって
第7ブロツク■の分岐条件は、上記第3ブロツクで挙げ
たループ処理の離脱条件の否定の形式の条件である上記
第5式の条件として示される。
(8)第8ブロツク■を通る条件 第8ブロツク■は、第3表および第4表に示す分岐ブロ
ック情報対(8,11)brで示される。したがって第
1表第8命令の分岐条件より、第8ブロツク■を処理が
通る条件は、第4ブロツク■を通る条件の否定、すなわ
ち、 PORT17=1               ・・
・(10)となる。
(9)第9ブロツク■を通る条件 第9ブロツク■も、第3表および第4表から分岐ブロッ
ク情報(9,11)brによって規定されるブロックで
あり、したがって曲記15ブロック■を通る条件を考察
した際に検討したtI%1表第9命令の分岐条件(第8
式)の否定の条件と、第4ブロツク■を通る条件(tI
S7式)との論理積となる。すなわち、 PORTIの 全ビット=0 かつ FORTlの第7ビツト=O・・・(11)の条
件が得られる。
(lO)第10ブロツク[相]を通る条rトf:1S1
0ブロック■は、第6ブロツク■と分岐命令を介在する
ことなく線形に続くブロックであり、したがってi@1
0ブロック[相]を処理が通る条件は、第6ブロツク■
を通る条件、すなわち第3ブロツク■を通る条件(上記
第6式)と同一になる。
(11)第11ブロツク■を通る条件 第1表のプラグラムリストから明かなように、第13命
令〜第21命令は、第1命令〜第12命令のメインルー
チンに対する割込み処理ルーチンである。その内容から
、上記第2表の欄外に付した入力/出力の定義において
、P OR’r2の第0ビツトに立ち上が9エツジまた
は立ち下がりエツジの信号が入力された状態を表わす割
込みベクトルの条f牛、 IRQ2=O・・・(12) が得られる。
(12)第12ブロツク@を通る条件 上記第4ブロツク■を通る条件が導出された処理と同様
な処理を経て、第18命令[BNEJでゼロ7ラグZ=
1となる条件が求められればよい。
すなわち第18命令からプラグラムリストをさかのぼり
、当該分岐命令を支配するフラグであるゼロ7ラグZを
変化させる最近の命令を検出する。
これは第17frI令でストア命令「STAΔ」が検出
され、パラメータとしてアキュムレータAが検出される
。アキュムレータAの入力命令として、第13命令でロ
ード命令[LDDJが検出される。したがって第13命
令〜第18命令の実行内容をオペランドで記述すれば、 1CAPT1(D)−ZCAPT(D)lの上位バイト
=0・・・(13) が得ζ)れる。
(13)第13命令■を通る条件 この場合、第1表のプログラムリストにおいて、第13
命令以降の処理の進行において、処理が第12ブロツク
■に進行しない条件、すなわち上記第13式の条件の否
定、 1CAI’T1(D)−ZC^IIT(D)lの上位バ
イト≠0・・・(14) が求めるべき条件となる。
このようにして第5図ステップ143  において摘出
されるべき分岐条件は、各ブロック■〜0を処理が通る
条件として導出された。これ以降、処理は第5図ステッ
プ14に移る。
ステップI4 では、書込み命令単位の入出力結合処理
が行なわれる。ここにaう書込み命令とは、ストア命令
と、オペランドの直接繰作命令(たとえばオペランドの
数値を+1増加させるインクリノント命令rINCJな
と)とを指す、このような命令の検出は、第1表のプロ
グラムリストにおいて、各命令を読取ることによって直
ちに実現できる。
このような入出力の結合処理は、第15図の70−チャ
ートに示される。第15図 ステップel。
e2  では、第1表で示されるプログラムに対して、
前述したブロック化処理と分岐条件の生成処理とを行な
う、この後、ステップe3  では、第1表に示される
プログラムにおいて、書込命令が検出される。このよう
な書込み命令としては、ptS2命令[INcJ、第6
命令[5TAAJ、第11命令[5TAAJ、第16命
令「STX」、第17命令rSTAAJおよび120命
令「5TAAJが、後述するように検出される。
(1)m2命令rINCJについて 第5図ステップ14 では、当該命令に関するパラメー
タを検出する。上述した残余の書込命令、たとえば第6
命令[5TAAJでは、このようなパラメータとしてた
とえばアキュムレータAが検出されるが、第5命令の上
うなノモリの直接繰作命令では、本ステップを行なうこ
となく、ステップe5  で当該命令がその命令の所属
するブロックの先頭であるかどうかを判断する。否定で
あれば、ステップe6  に移って、命令列の配列方向
と反対方向に一命令を検出する。肯定であればステップ
e7  で、当該ブロックに至るブロック列のam、す
なわち当該ブロックに至る処理の系統の種類を記憶する
第2命令に関しては、第2命令を含む第2ブロツク■に
至るブロックは、上記ブロック化処理から得られた第1
2図および第13図の処理の流れ図に示されるように、
第1ブロツク■お上り第7ブロツク■である。ステップ
e8  では、このような記憶したブロック列中から−
ブロック (たとえば第7ブロツク■)を選択し、処理
はステップe6に移る。
ステップe6  では、選択されたブロックにおいて、
命令列の配列方向と反対方向に一命令を検出し、現時点
では第4命令「BNEJを検出する。これによりステッ
プe9.el 1 、 el 2の判断は、それぞれす
べて否定であり、したがって処理はステップe5 に戻
る。このようにして上述した処理を繰り返し行ない、ス
テップe6  で第2命令が読取られたとき、ステップ
ell  でループになったことが判断され、ステップ
e13  でループ要素が追加される。すなわち第2命
令の実行内容は、C0UNT←C0UNT+1    
 ・・・(15)であるが、この処理がループ構造にし
たがって11回実行される場合を想定すると、 C0UNT=COUNT+n     ・・・(16)
となる、これが第2命令の実行内容の一般形である。
このときの実行条件は、上記第7ブロツク■を通る条件
、すなわち上記第5式の条件となる。したがってtj%
2命令に関しては、 if   TIME −(n+ C0LIHT)≠Ot
l+en  C0UNT= C0UNT= n    
   ・= (17)となる。
(2)第6命令について ステップe3  では、次の書込命令である第6命令を
検出し、ステップe4  で第6命令に関するパラメー
タすなわち7キユムレータAを検出する。
ステップe5の判断は否定となり、ステップe6でPt
55命令[cLRAJを検出する。
ステップe9  では、この第5命令が上記パラメータ
であるアキュレータAを変化させる命令であることが判
断され、ステップelOで第5命令が記憶される。ステ
ップell  では、当該第5命令がループ構造に含ま
れないことが判断され、ステップe12  では、第5
命令が7キユムレータAの入力命令であることが判断さ
れる。この後、ステップe14  の判断で肯定となり
、処理はステップe15に移る。
したがって実行内容は、 C0UNT←0          ・・・(18)と
なり、実行条件は、処理が第3ブロツク■を通る条件、
すなわち上記第6式で示される条件と同一になり、これ
らを1!!埋すれば、 if   TIME−−(n+ C0UNT)= Ot
l+en  C0UNT”、O−(19)の結果が得ら
れる。
(3)第11命令について 第11命令については、第15図に示されるステップe
3  で当該命令が検出された後、ステップe4  で
パラメータとしてアキュムレータA M検出される。ス
テップe5  では、上記m3&および第4表を参照し
て、第11命令が第6ブロツク■の先頭であることが↑
1断され、処理はステップe7に移る。この判断によっ
て、ptS1表のプログラムリストにおいて、第11命
令に到達するにはrjS5ブロックO1第9ブロック■
お上り第8ブロツク■をそれぞれ通る3つの経路が存在
することが認識される。以下、後述する実行内容の検出
と実行条件の検出とを各経路毎に行ない、それらの結果
が論理和として出力される。
(ア)第5ブロツク■を通る経路の場合ステップe4 
 でパラメータであるアキュムレ−夕Aを検出し、プロ
グラムをさかのぼると、fjS10命令で7キユムレー
タ八に閃するロード命令が検出される。ここで第11命
令は、入出力ボートへの再込み47令であり、論理演算
として扱う。したがって第1()命令および第11命令
による実行内容は、第1表のプログラムリスト上の表現
では、P OI<T 1←¥80        ・・
・(20)と表現されるが、論理演算の結果としては、
上記第10式と同等な PORT17←1         ・・・(10)な
る論理式が得られる。
このときの実行条件は、第5ブロツク■を処理が通る条
PF (上記第9式)と、第2ブロツク■おより第7ブ
ロツク■からなるループを処理が離脱する条件、すなわ
ち処理がf53ブロック■を通る条件(上記第6式)と
の論理積となる。したがって、if   TIME−(
n+ C0UNT)= 0and  PORT17=O and  PORTI≠¥0O tl+en  PORT17−1         −
 (21)なる論理式出力が得られる。
(イ)第8ブロツク■を通る場合 ステップe6  でプログラムをさかのぼると、第6命
令でストア命令[5TAAJが検出される。したがって
求める実行内容は、前述の第6命令の場合と同様にして
、PORTI←¥OOが求められる。
また実行条件は、前述したループの離脱条1′(rなわ
ち第3ブロツク■を通る条件(第6式)と、第8ブロツ
ク■を処理が通る条件(第10式)との論理積である。
したがってこれらをまとめて、if   TIME −
(n+C0UNT)= 0and  PORT17= 
1 Lhen  PORT14−¥00        −
(22)の論理式出力が得られる。
(つ)第9ブロツク■を通る場合 ステップe4 で検出されるパラメータは、アキュムレ
ータAであり、第9ブロツク■を通ってプログラムをさ
かのぼると第6命令を検出する。したがってこの場合の
実行内容は、上記第22式と同一であり、実行条件はル
ープの離脱条件すなわち第3ブロツク■を通る条件(第
6式)と、第4ブロツク■を通る条件(第7式)と、第
9ブロツク■を通る条件(第11式)との論理積である
。したがってこれらを虫とめて、 if   TIME−(n+ C0IJNT)= 0a
nd  PORT17= 0 and  (PORT17=Oand PORT1=¥
00)L l+ e n  P 011 T 1 ←¥
00         ・(23)の出力が得られる。
このようにして、第11命令に関する入出力条件の結合
処理が実現された。
(4)第16命令について tjSl&のプログラムリストにおいて、行番号13〜
21は割込みルーチンであり、行番号1〜12のメイン
処理ルーチンとは独立の内容となっている。したがって
第15図ステップe4  で第16命令「STX」が検
出される。第16命令に関して検出されるパラメータは
、インデックスレノスタXであり、ステップe6  で
プログラムをさかのぼると第15命令でロード命令が検
出される。したかってPt51G命令に関する入出力結
合結果は、if   IRQ2=1 tben  Z CA P T”CA P T 1  
 −(24)の論理式出力が得られる。
(5)第17命令[5TAAJについて第16命令と同
様にステップe4 で、パラメータとしてアキュムレー
タ八を検出する。ステップe6  でプログラムをさか
のぼると、第13命令でロード命令1”LDDJが検出
される。したがって第17命令でオペランllrTIM
EJにストアされるのは、オペランド「cAPTIJお
よびオペランドrZCAPTJの各上位バイト情報であ
る。また実行条件は第16命令と同一である。したがっ
てこれらを整理して、 if   II?Q2=1 tl+en   TIME−(CAPTI(D)   
ZCAPT(ロ))(旧・・・(25) 注:第25式の右辺末尾の(1−1>は、右辺のオペラ
ンドの上位バイトであることを示す。
(6)第20命令1”S T A八」について第20Q
令の場合には、第15図ステップe4で、当該命令に関
するパラメータすなわちアキュムレータ八を検出する。
このパラメータを決定する最新の命令をプログラムをさ
かのぼってステップe6  で検索すると、第19命令
で7キユムレータAに関する毘作命令[DEcAJが検
出される。
したがってtjS20命令の実行内容は、COt、l 
N T 4−A −1・・・(26)となろ。
ここで第19命令は、i@18命令の分岐命令でゼロ7
ラグZ=1の場合であることを考慮すると、上記第25
式において、 T I ME=7キユムレータA=0   ・・・(2
7)の場合に相当する。したがって上記第26式におい
て、7斗ユムレータA=0であり、 C0tJNT←¥FF         ・・・(28
)が結論される。
その実行条件は、第11ブロツク■および第12ブロツ
ク@を処理が通る条件、すなわち上記第12式および第
13式で示される各条件の論理積となる。したがってこ
れらをまとめれば、if   IRQ2 =1 a++d  (CAl’T I (D)−ZCAPT(
D))(II)= Otl+en  C0UNT4−¥
FF         −(29)が得られ、これでP
t51表のプログラムリストに関して第5図ステップ−
4の;1込み命令単位の入出力結合処理が行なわれる。
続いて、第5図ステップ曽5 で後述するようなパイル
の結合処理が行なわれる。ここに言うパイルとは、プロ
グラムリスト中におけるオペランドの直接操作命令を含
むたとえば上記第29式のような書込み命令が実行され
るための実行条件と実行内容との結合表記を指す、その
具体的路・埋内容は第16図の70−チャートに示され
る。
上述したように、Pt41表のプログラムリストには6
個の書込み命令があり、第3命令には第17式のパイル
D7、第6命令には第19式のパイルD6、第4命令に
は第21式〜第23式のパイルD 3 、D 2 、D
 I、第15命令には第24式のパイルD5、#117
命令には第25式のパイルD4、第20命令には第29
式のD8がそれぞれ作成される。
以下、第16図を参照して、パイル結合処理に・ついて
説明する。ステップr1  では、ボートへの書込み命
令がある外部出力命令パイルD 1 會D 2 tD3
を検出する。
ステップr2  では、たとえばパイルD1中の未決定
パラメータを決定するパイルを検出する。すなわち、パ
イルD1の実行条件に関して、パラメータ[TIMEJ
、rcOUNTJが未決定である。
また、残余の外部出力命令パイルD2.D3についても
、それぞれ実行内容は異なるものの、未決定パラメータ
はパイルD1と同一のものが検出される。
以下、このようなパラメータを決定するパイルを検出す
る。パラメータ[TIMEJにつ−1では)(イルD4
が検出され、続くステップr3  では該パイルD4に
含まれる全てのパラメータが決定されているかどうかを
fII断する。現時点では判断結果は否定であり、処理
はステップr2  に戻り、パラメータrcAPT I
 J、rZcAPTJを決定するパイルを検出する。こ
のとき第5パイルD5が選ばれる。このときステップf
3  では、全パラメータが決定されたことが判断され
、処理はステップf4に移り、外部出力命令パイルが終
了したかどうかを判断する。現時点では外部出力命令パ
イルD1のみを検討しており、判断結果は否定となり、
処理はステップf1  に戻る。
これ以降、パイルD2.D3が外部出力命令パイルとし
て検出され、それぞれについて前述の場合と同様な処理
が行なわれる。パイルD1〜D3では、未決定のパラメ
ータは共通であり、したがってステップf2  では同
一内容の処理が行なわれる。このようにしてパイルD3
に対するパイル結合が終了した後、ステップf4  で
は判断結果が11定となり、ステップf5に移って第1
7図(1−1)〜(3−3)のパイル結合結果が出力さ
れる。このようにして第5図ステップ論5 のパイルの
結合処理が終了する。
以上のように本実施例では、第5図ステップ噛3以降の
分岐条件摘出処理などを行なうに先だって・第5図ステ
ップ111  の流れ構造の解析処理を行なうようにし
た。したがってプログラム中の分岐命令や分岐先命令が
事前に明らかとなり、OCRなどの制御情報は、これら
の命令に関してのみ記憶すればよい。したがって被解析
プログラムの動作内容を分析するに当り、たとえばCC
Rを全命令にわたって記憶する必要がなく、装置に要求
される記憶容量を格段に削減できる。
上述の実施例では、tjSS図の70−チャートに示す
ステップ輸l〜曽5を説明した。以下に、ステップ16
を経由しないステップ輪7の動作について説明する。す
なわち前述の実施例では、被解析プログラムを、該解析
プログラムに含まれる分岐命令ごとに分岐条件を摘出し
て(t55図ステップs3)、以下の解析処理を行なっ
た。すなわち一般にプログラムは、分岐命令が存在する
ごとに、処理が連灯する経路の数が増大することになる
。すなわち分岐命令がn個あれば、処理の経路は最大2
個存在する場合が想定される。このような各経路ごどの
分析を行なうことなく々解析処J111を実行するのが
前述の実施例であった。
本実施例では、プログラム内容解析装置1に装備される
記憶容量の多真や処理量の多真よりも、前記したような
分岐命令の存在による処)t!経路の全11Mに閃して
、遺漏なくその内el!析をイ〒なうことを眼目とする
なお本実施例では、被解析プログラムの全ての処理経路
を列挙する必要があるため、被解析プログラム例を下記
第5表に示すプログラムに沿って説明する。またその実
行内容は18図に示される。
第5表 本実施例では、この被解析プログラムをfjS19図の
70−チャートに従う処理手順に基づ(1て解説する。
以下、第19図を併せて参照して、本実施例のプログラ
ム解析動作について説明する。第19図ステップ11 
 では、第52!に示される被解析プログラムにおいて
、分岐命令を検出する。本実施例では、第5表第2命令
および第5命令が検出される。
ステップ12  では、上記分岐命令に関する情報、す
なわち、行番号などが記憶される。ステップ;3では、
このような分岐命令検出処理が被解析プログラムの最終
行まで到達したかどうかを判断し、到達するまで前記ス
テップ11〜i3の処理を繰返す。
ステップi3  の判断が1!f′定になると、ステッ
プi5  で被解析プログラムの処理経路のM類を検出
する。すなわち第5表に示したプログラム例では、第2
命令およびPJJ5命令が分岐命令として検出された。
ここで第2命令およびPt%5命令をそれぞれα、βと
し、分岐する場合を論理[1]で、分岐しない場合を論
理和「0」で示すと、α、βの組合わせは、 (α、β)=(0,0)+(OtIL(1,0)、(1
,1)につくされる。これにより、第5表に示した被解
析プログラムの処理の経路に関して、Pt520図に示
されるような3種類の経路a、13. eが存在するこ
とが認識される。このような経路a、l+、eIe−実
現する前記分岐状態(α、β)の組合わせは上記第6&
に示される。
第6表 この後、処理はステップi6  において上記処理経路
a、b、cのいずれか1つを選択する。ここで処理経路
aを選択した場合、続くステップ17において上述した
ような入出力結合処理が行なわれる。
この処理ステップにおいて得られる結果は、下記第30
式のような論理式として得られる。
if     RAMI<’i’80 and    RAMI  ≧ 40 Ll+en  RAM2 ←RAM1+1   =43
0)続くステップ18では、前記ステップi5で検出さ
れた処Fl!経路のすべての種類がノもくされたかどう
かを10断する。判断が否定であれば処理は再びステッ
プ;6 に戻り、残余の経路からいずれか1つを検出す
る。このようにして処理経路1)、Cが選択され、下記
第31式および第32式の実行内容および実行条件が得
ら枕る。
if   RAMI<¥80 and  RAM1<¥40 tl+en  RAM2=RAM1     −(31
)if   RAMI≧¥80 tben  RA M 2 =RA M 1     
 ・=(32)ここで第31式とtIS32式の実行内
容が同じであるから、実行条件をまとめることに上り、
R^旧≧¥80もしくはRAMI<¥40のときRΔM
2←RAM 1        ・・・(33)が得ら
れる。
このようにして本実施例のプログラム解析処理は終了し
、上記第30式、第33式が上述の実施例で述べたよう
なパイル結合として表示出力される。
本実施例において、上記第30式〜第32式のような論
理式を出力する際に、上述の実施例で述べたような実行
条件および実行内容を求める必要がある1本実施例では
この動作をtjS19図ステッジステップ1フ出力結合
処理ステップでまとめて行なわれるようにした。−力、
他の実施例として第19図ステップil、i2で、分岐
命令を被解析プログラムから検出して記憶する動作を行
なうにあたって、たとえば下記PIS7表に示すような
記憶項目を、各命令毎にすべて記憶するようにしてもよ
い。
ナなわへ前記ステップif、i2は非解析プログラムの
全命令を読取るのであり、したがってこのときに下記第
7表のような記録項目を求めて記憶することにより、ス
テップ17  における入出力結合処理ではこのときに
記憶した記憶内容を呼出して使用するだけでよい。
第  7  表 15表の被解析プログラムの第1命令jL D AA 
 RAMIJについて、第7表に示される記憶項目を例
示すれば第8表のようになる。
(以下余白) 第  8  R なお以降の各表において、記号[NEVERJは記憶内
容がリセットされることを示し、記号「ALWAYSJ
は記憶内容がセットされることを示す、また記号「・」
は記憶内容はこの命令では変化しないことを示す。
すなわちこのような記憶項目を第19図ステツブil、
i2の段階で、被解析プログラムの全命令にわたって記
憶することにより、以下の処理を高速に行なうことがで
きる。
効  果 以上のように本発明に従えば、被解析プログラムにおい
て分岐命令毎の各分岐先命令によって決定される処理の
経路を順次選択し、選択された各経路に関して処理の実
行条件と実行内容とを算出して表示出力するようにした
。これにより解析されるプログラムを実行することな(
その内容を解析でき、しかも実行内容を毘作者が容易に
把握できる形式で表示出力できる。
【図面の簡単な説明】
第1図は本発明の一実施例のプログラム内容解析装置1
の構成を示すブロック図、第2図は解析装Wi1の記憶
領域10の構成を示すブロック図、第3図はプログラム
内容解析装置1の基本的動作を示す70−チャート、第
4図は表示装置5の表示例を示す図、第5図は解析装置
?!1のプログラム内容解析処理手順を示す70−チャ
ート、第6図および第7図は被解析プログラム例の動作
内容を示す7ey−チャート、第8図は流れ補遺の解析
処理手順を示す70−チャート、第9図は流れ(1η造
の解析処理結果を示す系統図、第1()図はブロック化
処理手順を示すフローチャート、第11図はブロック化
処理の中間結果を示す系統図、第12図および第13図
はブロック化処理結果を示す系統図、第14図は分岐条
件摘出処理手順を示すフローチャート、第15図は入出
力結合処理手順を示す70−チャート、第16図はパイ
ル結合処理手順を示す70−チャート、第17図はパイ
ル結合処理結果を示す系統図、第18図は池のプログラ
ム例を示す70−チャー)、ml 9図は本発明の他の
実施例のプログラム内容解析手順を示す70−チャート
、第20図は第19図の処理手法によって得られる被解
析プログラムの経路を表す図である。 1・・・プログラム内容解析装置、2・・・磁気テープ
ii!!、3・・・磁気ディスク装置、4・・・内部記
憶装置、5・・・表示装置、8・・・処理装置、10・
・・記憶領域、10a・・・アーキテクチャ記憶笛域 代理人  弁理士 画数 圭一部 第 3 図 第4図 第 5 図 1M 6図 メインルーチンへ 第8 図 13−−−−i」込 第10図 第11図 第12図     第13図 第16図 第17図 !18図 第19図 第20図 bc 行′4号 一−−−4 一−−−− 5 一−−−− 7

Claims (1)

  1. 【特許請求の範囲】 機能語のみまたは機能語とオペランドとの組合わせなど
    の命令列における分岐命令と、分岐先命令とを検出し、 分岐命令ごとの各分岐先命令によって決定される処理の
    経路を順次選択し、 各経路ごとの処理の実行条件と実行内容とを算出するよ
    うにしたことを特徴とするプログラム内容解析装置。
JP62154056A 1987-06-20 1987-06-20 プログラム内容解析装置 Pending JPS63317848A (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=15575946

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPS63317848A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03177941A (ja) * 1989-12-07 1991-08-01 Fujitsu Ten Ltd プログラム内容解析装置
JPH03177942A (ja) * 1989-12-07 1991-08-01 Fujitsu Ten Ltd プログラム内容解析装置
JPH03177940A (ja) * 1989-12-07 1991-08-01 Fujitsu Ten Ltd プログラム内容解析装置
JPH03179536A (ja) * 1989-12-07 1991-08-05 Fujitsu Ten Ltd プログラム内容解析装置
JPH03179537A (ja) * 1989-12-07 1991-08-05 Fujitsu Ten Ltd プログラム内容解析装置

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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03177941A (ja) * 1989-12-07 1991-08-01 Fujitsu Ten Ltd プログラム内容解析装置
JPH03177942A (ja) * 1989-12-07 1991-08-01 Fujitsu Ten Ltd プログラム内容解析装置
JPH03177940A (ja) * 1989-12-07 1991-08-01 Fujitsu Ten Ltd プログラム内容解析装置
JPH03179536A (ja) * 1989-12-07 1991-08-05 Fujitsu Ten Ltd プログラム内容解析装置
JPH03179537A (ja) * 1989-12-07 1991-08-05 Fujitsu Ten Ltd プログラム内容解析装置

Similar Documents

Publication Publication Date Title
Hopcroft et al. Formal languages and their relation to automata
JPS63115245A (ja) ソフトウエアモニタにおけるブレ−クポイントを供給し且つ取り扱うための方法及び装置
JPS63317848A (ja) プログラム内容解析装置
JPS63317844A (ja) プログラム内容解析装置
Okhotin Input-driven languages are linear conjunctive
CN111968624A (zh) 数据构建方法、装置、电子设备及存储介质
JPH0820973B2 (ja) プログラム内容解析装置
JP2548197B2 (ja) プログラム内容解析装置
CN109002723A (zh) 一种分段式符号执行方法
JPS63317849A (ja) プログラム内容解析装置
JPH0820972B2 (ja) プログラム内容解析装置
Pettorossi Elements of computability, decidability, and complexity
JPS63317851A (ja) プログラム内容解析装置
JPH0820970B2 (ja) プログラム内容解析装置
Vogler Iterated linear control and iterated one-turn pushdowns
JPS63317846A (ja) プログラム内容解析装置
JPS63317845A (ja) プログラム内容解析装置
JPH0820968B2 (ja) プログラム内容解析装置
JPH02128240A (ja) コンピユータプログラムの検査方法
Jurdziński et al. Restricting the use of auxiliary symbols for restarting automata
US20230119443A1 (en) Card solver compiler parsing
JPH0793144A (ja) プログラム解析装置
JPH03179537A (ja) プログラム内容解析装置
Cooper et al. ALP: An autocode list-processing language
JP2653880B2 (ja) プログラム内容解析装置