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

プログラム内容解析装置

Info

Publication number
JPS63317844A
JPS63317844A JP62154052A JP15405287A JPS63317844A JP S63317844 A JPS63317844 A JP S63317844A JP 62154052 A JP62154052 A JP 62154052A JP 15405287 A JP15405287 A JP 15405287A JP S63317844 A JPS63317844 A JP S63317844A
Authority
JP
Japan
Prior art keywords
instruction
block
program
branch
condition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP62154052A
Other languages
English (en)
Other versions
JPH0820969B2 (ja
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 JP62154052A priority Critical patent/JPH0820969B2/ja
Publication of JPS63317844A publication Critical patent/JPS63317844A/ja
Publication of JPH0820969B2 publication Critical patent/JPH0820969B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、マイクロコンピュータなどを作動するために
月いられるプログラムの内容を解析する装置に関する。
従来技術 マイクロコンビエータ用などに設計されたプログラムの
点検は、以下のように行なわれる。まずシンタックスエ
ラーなどの基本的なバグを取除いた後、プリントアウト
されたプログラムリスト1こ基づいて、人手によって、
該プログラムの構造と、該プログラムに基づく各種入出
力装置の動作とを把握し、これを仕様書の記載内容と照
合する。さらに該プログラムが用いられるハードウェア
に実際に組込み、プログラムの実行によって要求される
各種入力条件を入力して、シミュレーションさせ、プロ
グラムの動作状態を確認する。
発明が解決しようとする問題点 しかしながら実際のプログラムは膨大なステップ数にE
Lフことがあり、その中にはやはり膨大な分岐命令が含
まれている。したがってこれらの分岐命令に基づく処理
の流れの数はやはり膨大な数となり、上記人手による内
容把握作業では実現が困難である。したがって前述した
ようなシミュレーションまたはエミュレーションによる
チェックが行なわれがちになり、仕様書の内容の遺漏や
バグなどを完全に解消するには、むやみに時間を要して
いた。また、前述したようなシミュレーションやエミュ
レーションを行なうには、実際のプログラム作動時にお
いて必要とされる入力要求をすべて充足させねばならず
、繁雑な手間を要していた。
本発明の目的は、上述の問題点を解決し、仕様書など、
プログラム内容のチェックの基準となる物との照合が容
易な形態にプログラム内容を解析できるとともに、チェ
ック対象となる該プログラムを実行することなく、プロ
グラム内容の解析を行なうようにできるプログラム内容
解析装置を提供することである。
問題点を解決するための手段 本発明は、機能語のみまたは機能語とオペランドとの組
合わせなどの命令列から成るプログラムから分岐命令を
検出し、 命令列の配列方向と反対方向に沿って、分岐命令で規定
されるパラメータの入力命令を検出し、該入力命令以降
分岐命令までの天性内容と分岐命令の各分岐条件とをオ
ペランドを用いて表わすようにしたことを特徴とするプ
ログラム内容解析装置である。
作  用 本発明に従えば、機能語のみまたは機能語とオペランド
との組合わせなどの命令列からなるプログラムの内容を
解析するにあたって、命令列の配列方向に沿って分岐命
令もしくは出力命令を検出する。検出された分岐命令も
しくは出力命令に関して、前記命令列の配列方向と反対
方向に沿って、規定されるパラメータの入力命令を検出
する。該入力命令以降分岐命令もしくは出力命令までの
実行内容をオペランドを用いて表わし、分岐命令の分岐
条件もしくは出力命令の出力内容を操作者の理解に容易
な形態で出力できる。
実施例 第1図は本発明の一実施例のプログラム内容解析装置(
以下、解析装置と称する)1のv1戊を示すブロック図
である。第1図を参照して、解析装置1は、従来技術の
項で述べたようなチェックが行なわれる被解析プログラ
ムが、シーケンシャルな形式で記憶されでいる磁気テー
プ記録/再生装置(以下、磁気テープ装置と称する)2
と、ランダムな記憶が行なわれる磁気ディスク装置3と
、たとえばランダムアクセスメモリ(RA M )など
によって実現される内部記憶装置4と、たとえばCRT
(陰極線管)装置や液晶表示装置などによって実現され
る表示装置5と、インパクト形または非インパクト形な
どの印字装置Gと、各種キーやスイッチ類などによって
実現されるキー人力装(i!7と、これらによって入力
される情報を処理し、またこのような情報の入力/出力
動作を制御するマイクロプロセッサなどを含んで構成さ
れる処理装置8とを含む。
仕様書の内容に従って作成されたプログラムは、従来技
術の項で述べたように、まずシンタックスエラーなどの
基本的なバグを取除いた後、磁気テープ装置2に記憶さ
れる。磁気テープv装置2の被解析プログラムは、解析
装ra1の内部記憶装置4へ転送され、後述するような
チェック処理が行なわれる。その結果は再び磁気テープ
装@2へ記憶され、または磁気ディスク装a3へ記憶さ
れる。
またこのような記憶処理とともに、表示装置5へ表示出
力され、また印字波W16によって印字出力される。
12図は磁気テープ装置2や磁気ディスク装置3などの
記憶装置の記録状態を示す系統図である。
処理装置8にバス9などを介して接続された磁気テープ
装置ii2の記憶領域10は、前記被解析プログラムの
実行対象となるたとえばマイクロコンピュータに関する
アーキテクチャが記憶されるアーキテクチャ記憶領域1
0aや、この被解析プログラムによる制御の対象となる
入力/出力に用いられるアナログ信号をデジタル信号に
変換する際の比較電圧値など、このようなアナログ/デ
ジタル変換器の諸元などを記憶するA/D変換器諸元記
憶領域10bや、本被解析プログラムの実行対象となる
マイクロコンピュータの有する各端子の信号の出力状態
と、この端子に接続される各人力/出力v装置の動作状
態との関係の定義(たとえばマイクロコンビエータの成
るビンからハイレベルの信号が導出されると、LED(
発光ダイオード)が点灯する、などの定義)が、記憶さ
れる定義記憶領域10cなどを含んで構成される。
第3図は第1図示の解析装ra1の基本的動作を説明す
るフローチャートであり、第4図は解析装置1の表示装
置5の表示例を示す図である。11図〜第4図を参照し
て、解析装置1の基本的動作について説明する。解析装
置1の電源が投入されると第3図ステップn1  以降
の処理が開始され、表示装置5上に各種入力要求を表示
する。ステップn2  では、このような入力要求に対
応して、解析されるプログラムの実行対象となるマイク
ロコンピュータの名称を入力する。この様子は第4図(
1)に示される。
続くステップn3  では、入力された名称のマイクロ
コンピュータのアーキテクチャが、アーキテクチャ領域
10aに存在するかどうかを判断する。
存在していればステップn4で当該アーキテクチャを呼
出し、たとえば内部記憶4に転送し、ステップn5  
でアナログ/デジタル変換器の名称を入力する。一方、
前記ステップo3  の判断が否定であれば処理はステ
ップn6 に移り、解析装置1は、入力された名称に対
応するアーキテクチャが記憶されていないことを表示し
、新規登録を要求する。
この後、処理はステップn5  へ移る。
ステップn5  のアナログ/デジタル変換器の名称入
力の様子は、第4図(1)に示される。続くステップn
7  では、解析されるプログラムが動作対象とするマ
イクロコンピュータに設定される各ボートの状態と外部
状態との関係を、第4図(2)に示すように入力する。
たとえばPORT17がハイレベルとなれば、スタート
スイッチがオン状態に切換わり、PORT16がハイレ
ベルになるとサーモスイッチがオン状態に切換わる。ス
テップn8  では、前記マイクロコンピュータの割込
み端子の状態と、外部状態との関係の入力が、表示装置
5上で要求される。またアナログ/デジタル変換器チャ
ンネル用ボートについては、キー人力波@1によって所
定の事項を入力し、第4図(3)に示すように所゛定の
データ項目を入力して各ボートを定義する。
ステップn9では、ステップn7.n8での各種入力が
正しく実行されたがどうかを判断する6M断結果が否定
であれば処理はステップn7  に戻り、上記入力され
たデータを訂正する。判断結果が肯定であればステップ
nlo  に移り、たとえば磁気テープ装r!t2に記
mされている被解析プログラムを内部記憶装置4に転送
して読取る。ステップ111では、後述するような被解
析プログラムを解析し、ステップn12  で解析結果
を出力して処理を終了する6 第5図は第3図のステップnil  のプログラムの解
析処理の内容を説明する70−チャートである。第5図
を併せで参照して、解析装置1の操作について説明する
。上述したように本発明は、たとえばマイクロコンピュ
ータ用1こたとえばアセンブラ言語によって作成された
プログラムの内容を解析する装置に関する。被解析プロ
グラムは、解析装置1の磁気テープ装fi2に記憶され
ており、第3図ステップn1o  で説明したように、
この上うなプログラムは磁気テープ装e2からたとえば
内部記憶装置4へ転送される。
本実施例では、被解析プログラムを以下の第1表に示す
プログラムと想定して説明する。
(以下余白) 第 1 表(プログラムリスト) 上記第1表のプログラムの内容は、第6図およびf57
図の70−チャートに示される。第6図および第7図の
ステップ番号al、a2+・・・、a21は、上記第1
表のプログラムリストの行番号に対応している。また、
第1表の全21行の各命令の実行に関する各7ラグの状
態を示すコンディションフードレジスタ (以下、CC
Rと称する)は、下記第2表に示される。ここでは、符
号7ラグN、ゼロ7ラグZ、オーバ70−7ラグ■およ
びキャリ7ラグCの状態を示す。
(以下余白) 第2表 (庄1)FA2表中、記号「↓」汀・J、rRJ汀S」
はそれぞれ[結果によってセットまたはリセットされる
]、「変化しない」、[リセット(クリア)される」お
上り「セットされる」を表わす。
(注2)上記プログラムには、レジスタ名称の定義、割
込み制御レジスタの設定、ポート入出力方向の設定、割
込みベクトルの設定等は省略されているが、割込みはC
APT 1のみ許可、その割込みアドレス(ラベル)は
CAPTとする。
上記第1表のプログラムリストで、 (1)入カニPORT1の第6ビツトにスイッチ入力(
スイッチONでハイレベルに変化): PORT2のf
iSOビットに可変周波信号入力 および、 (2)出カニPORT1の第7ビツトから発光ダイオー
ド出力 (出力ハイレベルで発光ダイオード点灯)の入
出力操作が行なわれる、と定義してお(。
これは第3図ステップn 7で行なわれる。
上記第1表のプログラムリストが読込まれた解析装置1
では、第5図ステップ伯1 でプログラムの流れ構造の
解析が行なわれる。
上述したように、第1表に示すプログラムリストは、第
6図および第7図に示す動作内容を有している。しかし
ながら、第1表のプログラムリストから第6図および第
7図示の70−チャートを得るには、人手によって、各
命令が単なる処理命令か条件文による分岐命令かを把握
する作業と、分岐命令の場合にはその分岐先の検出作業
などが含まれ、これらの作業に基づいて上記フローチャ
ートが作成される。
本発明の眼目の1つは、任意のプログラムリストから、
該プログラムの分岐命令と、該分岐命令によって定めら
れる分岐先命令とを把握した後、該プログラムの処理の
流れの構造の把握を人間の頭脳による作業を介すること
なく、解析装置によって自動的にイ〒なうことがでさる
ようにしたことである。またこれによって、後述するよ
うに上記フローチャートとUUの形態の出力を得ること
ができる。
このような流れの構造を把握する処理を、tIS8図の
70−チャートにおいて示す、第8図ステップb1では
、命令行番号を示すパラメータkを「1」に初期化し、
ステップb2で第に命令(第1表における行番号kf)
命令)の読取りを行なう。続くステップb3では、この
読取られた第に命令が分岐命令であるかどうかを判断す
る。この判断はたとえば、第1表における命令を溝成す
る二−モニツクを読取ればよい。すなわち上述したよう
に、所望のマイクロコンピュータのアーキテクチャを呼
出した段階で、解析装置1の内部記憶4には、当該マイ
クロコンピュータに用いられるアセンブラ言語のコマン
ドや、コマンドに関連するフラグなどのテーブルが別途
記憶され、これを参照することによって、第1表の各命
令が分岐命令であるか否かを容易に判断できるからであ
る。
上記ステップb3  の判断結果が否定であれば、ステ
ップb4でパラメータkを+1インクリメントし、処理
をステップb2  に戻し、上述の説明と同様な処理を
行なう。このとき第1表のプログラムリストに従えば、
第4命令を読取ったとき、アーキテクチャが参照され、
この第4命令がゼロ7ラグZの状態(「1」または「0
」)を条件とする分岐命令であることが把握される。し
たがって、第8図の処理において第4命令が読取られた
ときステップb3のtq断は肯定となり、処理はステッ
プb5に移る。
ステップb5  では、第1表の第4命令のオペランド
「LOOPJと対応するラベル名を検索する。
第1表のプログラムリストでは、第2命令に上記オペラ
ンドと同一のラベルが付されており、したがってPIS
4命令の分岐先は、第2命令であることが理解される。
ステップb6  では、一般に分岐命令の行番号にと、
これに対応する分岐先命令行番号mとの討(以下、ブロ
ック化情報と称する>(k、m)を、内部記憶装置4に
記憶する。この後、処理はステップb4  に移り、行
番号を+1インクリメントして次の行へ処理を進める。
このような処理を行なうことによって、第1表のプログ
ラムリストにおける分岐命令と分岐先命令との行番号の
対(k、m)に関して、下記第3表のような結果が得ら
れる。
第3表 この段階で解析装置1は、tjtJ1表に示すプログラ
ムリストの流れ構造が把握できたことになる。すなわち
$3表として得られた結果を操作者が容易に理解できる
形式に出力する場合、たとえば第1表のプログラムリス
トの行番号1〜21を第9図に示すように一列に配列し
、上記tIS3表に基づいて、行番号kから行番号論へ
向かう分岐矢符をこれに付すことによって、プログラム
リストの流れ構造として第9図示のような出力が得られ
る。これl二よって操作者も、第1表のプログラムリス
トの流れ構造を容易に把握することがでさる。こうして
第5図ステップ+11  の処理は終了する。
次に第5図ステップ論2では、ステップ−1で得られた
被解析プログラムの流れ構造の認識に基づいて、該プロ
グラムをブロックに区分する処理を行なう。このような
ブロック化処理には、以下のような利点がある。本発明
のプログラム内容解析処理が行なわれる被解析プログラ
ムは、一般にはたとえば致方ステップのような場合もあ
り、このようなプログラムには、各種分岐命令も大量に
含まれている。したがって、このような分岐命令の条件
の成立の是非に関する組合わせの数が膨大な数になるこ
とは、容易に想定される。このような膨大な組合わせ数
のプログラムの系統を逐次的に考察の対象とし、各系統
ごとに全命令のコンディションコードレジスタ(OCR
)を記憶するのは、極めて繁雑であるとともに膨大な記
憶容量が要求される。
したがって本発明の眼目の1つは、被解析プログラムを
後述するような条件の下で、複数のブロックに区分し、
各ブロックに対して第5図ステップta3  の分岐条
件摘出処理、ステップ−4の書込み命令単位の入出力結
合処理、およびステップm5のパイルの結合処理などか
ら成る同一内容の処理を施すようにしたことである。こ
のようなブロックの区分、αは、プログラムにおける分
岐命令性か分岐先命令性であり、1ブロツクは分岐命令
性または分岐先命令性で始まり、これらのいずれかで終
了し、かつその間にはこれら分岐命令または分岐先命令
性を含まないように選ぶ。
すなわち全プログラムは、このような複数のブロックの
結合として表現され、同一ブロック内のプログラムの異
なる流れの種類も極めて少数となる。これにより各ブロ
ックごとの内容解析を格段に容易に行なえるようになり
、全プログラムの内容解析は、ブロックごとに得られた
内容解析結果の結合として示される。
このようなブロック分は処理は、@io図の70−チヤ
ーFに示される。このとさ、前記第8図を参照して説明
した第5図ステップ艶1 の流れ構造の解析処理によっ
て得られたブロック化情報対(k、m)について、第1
表の全プログラムについて行なうことによって、第3表
に示したような結果が得られる。すなわち、このような
ブロック化情報対(kl、鴫1 )、(k2 、論2)
、・・・、(ks−Iths) (本実施例では5=4
)が、第1図示の内部記憶表j14に記憶されている。
以下に説明するgto図の処理には、このブロック化情
報対列を用いる。なお上記ブロック化情報列の各数値k
l、に2.・・・tks;ml 11m2 H・・・。
msについて総称する場合には、それぞれ記号Lmを用
いて示す。
第10図ステップC1では、第1表のプログラムの行番
号を示すパラメータiを「1」に初期化する。ステップ
c2では上記行番号iに関して、この行番号:に等しい
上記ブロック化情報kまたはブロック化情報論が存在す
るか否かを判断する。この判断が肯定であれば、ステッ
プC3でブロック化情報に、 raによるブロック化処
理を行なう。
このブロック化処理は、以下のように行なわれる。まず
ステップC3において、判断が肯定となるブロック化情
報ktlIlが記憶される。次にステップc4で行番号
iが+1インクリメントされ、ステップc5では行番号
iがこのような行番号の最終値すなわちM A X (
i)を超えたかどうかのfq断を行なう。
判断結果が否定であれば、第10図に示すブロック化処
理は被解析プログラムの最終行まで到達していないこと
になり、入テップc2  に戻る。以下、同様の処理が
繰り返し行なわれ、ステップC2のf’q断が肯定とな
るブロック化情報に、 mがあった場合、前回ステップ
c2 の判断を肯定としたブロック化情lk、−を呼び
出し、これらを組み合わせてブロック情報対(a+β)
として記憶する。以下、このような処理がプログラムの
最終行まで繰り返し行なわれる。
上記ステップ01〜05で行なわれる処理は、たとえば
第1表のプログラムの第1行から第21行までを順番に
たどって、その中でブロック化情報(k、s)として示
される分岐命令性および分岐先命令性に関して、行番号
の増加方向において隣接する命令列の組をブロック情報
(α、β)として記憶する処理である。
上記ステップc5  のf1断が肯定となれば、処理は
ステップc6 に移り、上記ブロック化情報列(kj+
1aj)                     
  ・・・(1)j”1y2+・・・、S によるブロック化処理を行なう。
このブロック化処理は、第1表のプログラムリストにお
いて、分岐処理を実現するブロックを決定する処理とな
る。すなわち第3表のブロック化情報(k、 m)にお
いて、たとえばブロック化情報対(4,2)は、第4命
令から第2命令へ処理が分岐する系統を規定している。
したがって、これらのブロック化情報対(k、 IO)
を、前記ブロック情報対(α、β)と異なる内容をなす
分岐ブロック情報対(α、β)brとして再定義するこ
とにより、第1表のプログラムリストに関して、分岐を
行なう系統を網羅できる。ステップc6  による分岐
ブロック化処理が終了すると、第11図に示すブロック
分は結果が得られる。
また上述のように、ブロック情報対(at β)と、分
岐ブロック情報対(α、β)brとを定義することによ
り、第1表のプログラムリストのたとえば第9命令、f
510命令および第11命令からなるブロックと、Pt
59命令と第11命令とからなる分岐ブロックとを明瞭
に区分できる。このようなブロック情報対(α、β)お
よび分岐ブロック情報対(α。
β)brを、下記のfjS4表に示す。
以下、得られた各ブロックを示すに際して、第11図に
示すように記号■、■、・・・、■ をもって示す、す
なわちブロック■は、行番号1,2の命令群を示してい
る。このような記法に従い、第1表のプログラムは第1
2図および第13図、で示されるように表現される。こ
こで、tlS1表のプログラムを第12図および第13
図の2つの図に区分したのは、Pt512図は行番号1
〜12のメイン処理ルーチンを表わし、rjS13図は
行番号13〜21の後述するような割込み処理ルーチン
を表わし、これらは相互間に亘って分岐関係が存在しな
い独立な内容だからである。このようにして、!R5図
ステップ+a2  のブロック分は処理が終了する。
第5図ステップ翔3 では、分岐条件摘出処理が行なわ
れる。このような分岐条件摘出処理は、第14図の70
−チャートに示される。第14図ステップd1  では
、上述したようなブロック化処理を行ない、各ブロック
情報対(α、β)、(a、β)brを得る。ステップd
2では変数jを「1」に初期化する。ステップd3  
以降の処理では、分岐条件として第1ブロツク■、第2
ブロツク■、第3ブロツク■、・・・、第13ブロツク
■を処理が通過する条件を求めることになる。
(1)第1ブロツク■を通る条件 第1ブロツク■は第6図に明らかなように、第12命令
の無条件ノヤンプ命令によって処理が無条件に通過する
ブロックである。
(2)第2ブロツク■を通る条件 PtfJ14図ステップd3  では、第3表を参照し
て第j番目(現時点ではj=1)のブロック化情報対(
k。
m)を参照する。ステップd4では、ステップd3にお
けるブロック化情報対(k、Ia)において、第に命令
の分岐条件を支配するフラグを検出する。ff14表に
よれば、j=1のときに=4であり、第1表のプログラ
ムの第k(= 4 )*令「BNEJの分岐条件を支配
するフラグの検出を行なう、これはアーキテクチャによ
って、各命令それ自体に規定される条件となる。すなわ
ち上記ttS4命令の場合には、ゼロ7ラグZである。
ステップd5  では、命令列の配列方向と反対方向に
一命令を読取る。この命令が上記フラグ(ゼロ7ラグZ
)を変化させる命令であるがどうかのステップd6  
における判断が否定であれば、ステップd5.d6を繰
り返す、11r定であればステップd7  に移り、フ
ラグを変化させる命令を記憶する。
第1表のプログラムリストと第2表のCCRとを参照す
れば、この命令は0′s3命令rCMPA  C0UN
TJであり、ゼロ7ラグZを変化させる命令であること
が判断される。ステップd8  では、第1表のプログ
ラムリストを参照して、ゼロ7ラグZに関する当該第3
命令中のパラメータを検出する。すなわち第3命令はア
キュムレータAに関する命令であり、パラメータとして
アキュムレータAが検出される。
ステップd9  では、該命令が該パラメータを変化さ
せる命令か否かを判断する。この判断は前記アーキテク
チャに含まれる前記CCRを参照して行なわれる。判断
が肯定であれば、ステップd10に移り当該命令が記憶
され、ステップdll  に移る。第3命令[cMPA
JはアキュムレータAの内容を変化せず、ステップd9
 の判断が否定となり、ステップdloを経ることなく
ステップd11に移る。
ステップd11 では、現在検討中のブロックが第1表
のプログラムリスト中でループをN11成するブロック
かどうかを?l+断する。現時点では、解析装置1は第
4命令および13命令しか認n12ておらず、この?l
+断は否定となり、処理はステップd12に移り、ステ
ップdlOで記憶した命令が、前記パラメータの入力命
令であるかどうかを判断する。この判断が11f定であ
れば、ステップd15に移る。一方、上記ステップdl
l  の判断が肯定であれば、ステップdi4  で分
岐条件に後述するようなループ要素を追加し、処理はス
テップd15に移る。
ステップd15 では、当該分岐命令が第9図に示すよ
うな本実施例における被解析プログラムの構造において
、ネスティング構造に含まれるものであるかどうかをt
す断する。判断結果が肯定ならば、ステップd16  
で後述するようなネスティング要素を追加し、ステップ
d13  で記憶したブロック列の種類がすべて終了し
たかどうかを判断し、判断結果が肯定であればステップ
d17  で分岐対のパラメータjをプラス1インクリ
メントし、処理はステップd3に戻る。前記ステップd
15の判断が否定であれば、ステップd16  を経る
ことな(、処理はステップd13  に移る。
第3命令rcMPAJについて、前記ステップd12の
判断は否定となり、処理はステップcl19に移り、現
在検討中の命令が当該命令を含むブロックの先頭である
かどうかをfq断する。第3命令についてtII断結果
は否定であり、ステップd20で命令列の配列方向と反
対方向に一命令を読取り、処理はステップd9  に移
り、前述の処理を繰返す。
前記ステップd19  で判断結果が肯定ならば、ステ
ップd21  に移り、当該ブロックに処理が到達する
ブロック列の種類を記憶する。すなわち当該ブロックに
至るルートの種類を記憶する。ステップd22  では
、記憶したブロック列中から−ブロック列を選択し処理
はステップd20に戻る。
第1表のプログラムリストにおいで、第4命令から上述
の処理が繰り返される。このとさ、第1命令「LDAA
Jを解析する段階で、ステップdl。
で記憶されてきた命令は、オペランドで記述すると、 A =T I M E −(COU N T + 1 
)   ・・・(2)になる。
またステップdll  の判断は肯定となり、ff12
式の分岐条件にステップd14  でループ要素が付加
され、下記第3式の分岐条件が得られる。すなわちルー
プを1回繰返せば上記第2式は、A=T I ME−(
COUNT+n)   ・・・(3)と表される。この
実行内容がループを構成する条件は、第4命令で分岐条
件が成立すること、すなわちゼロ7ラグZl:関して、 2=0               ・・・(4)が
成立する場合である。したがって上記ステップdlo 
 では最終的に、 TIME  (COUNT+n)≠O・(5)の条件が
得られる。これは第2ブロツク■を処理が通過する条件
となる。
(3)第3ブロツク■を通る条件 この場合、第1表のプログラムリストにおいて、処理が
?tS2ブロック■に進行しない条件、すなわち、上記
第5式の条件の否定 TIME−(COUNT+n)=O・=(6)が求める
べき条件となる。
(4)第4ブロツク■を通る条件 ステップd3  では、第4ブロツク■の最終行番号9
をブロック化情報にとするN (k++s)が、j=2
の場合として、m3表より(8,11)として読出され
る。この第8命令に対して、上記第2ブロツク■を通る
条件を求めた処理と同様な処理が行なわれる。ステップ
d4  では、第1表のプログラムの第k(= 8 )
命令[BMIJの分岐条件を支配するフラグの検出をイ
〒なう。すなわち、上記第8命令の場合には、符号7ラ
グNである。
ステップd5.d6では、この符号7ラグNを変化しう
る最近の命令を検索する。上記第1表および第2表を参
照すれば、第7命令1’LDAB  PORTIJが対
応することが検出される。ステップd8  では、この
符号7ラグNl:関する第7命令中のパラメータを検出
する。すなわち第7命令はアキュムレータBに関する命
令であり、このアキュムレータBがパラメータとして検
出される。
ステップd12  では、パラメータとしての7キユム
レータBの入力命令を検出する。ff51表のプログラ
ムリストを参照すれば、上記第7命令自身が7キユムレ
ータBの入力命令であることが検出される。したがって
ステップd12  の判断は肯定となり、ステップd1
5  でのネスティング構造判断は否となるため、第3
ブロツク■の実行内容をオペランドによって表現すれば
、求める分岐条件は、 PORT17=O−(7) となる。ここで表記rPORT17=OJは、入出カポ
−)PORTIの第7ビツトがrOJとなる状態を表現
する。この後、処理はステップd13  に移り判断が
否定となり、前述のような処理を経て処理はステップd
3に戻る。
(5)第5ブロツク■を通る条件 ステップd3では、j=3の場合としてブロック化情報
対(k、m)= (9、11>が読出され、ステップd
4では第k(= 9 )命令rBEQ  NANNOI
Jの分岐条件を支配するフラグすなわちゼF7ラグZが
検出される。続いてステップd5.d6では、このゼロ
7ラグZを変化しうる最近の命令として、第1表および
第2表を参照して、第7命令f’LDABJが検出され
る。
このロード命令はアキュムレータBにrP ORTIJ
の内容を読込む内容であり、このアキュムレータBに関
するゼロ7ラグZの成立の是非が分岐条件となる。した
がって、前述のような処理が繰り返された後、ステップ
dlo  では、PORTIの少なくとも1つのビット
=1・・・(8) が得られる。この後、処理はステップdi 1  に移
り、第5ブロツク■がループ構造の一部をなすがどうか
が判断され、これは否定となる。
続くステップd12  の判断は肯定となり、ステップ
c11.5  で第5ブロツク■がネスティングvt造
の一部を成すかどうかが判断される。第5ブロツク■は
2mのネスティングvI?Lを構成しており、ステップ
d16  で上記m8式の分岐条件にネスティング要素
が付加される。
すなわち、第12図に明らかなように、第5ブロツク■
は、第4ブロツク■を通過しなければ到達しない処理ブ
ロックであり、したがって第5ブロツク■の通過条件は
、ff14ブロツク■の通過条件と上記第8式の条件と
の論理積となる。すなわち、 PORT17=0 かつ、 PORTIの少なくとも1つのビット=1・・・(9) の分岐条件が得られる。この後、ステップd13におい
て、記憶したブロック列はないので、処理はステップd
3に戻る。
(6)m Gブロック■を通る条件 第14図の70−チャートにおいて、ステップd3t’
j=4のとさ、対応するブロック化情報に、 mが、第
3表を参照して存在しないことが判断される。したがっ
て、本件実施例のプログラム内容解析装置1は、現在の
第6ブロツクの分岐条件を、以前の直鎖ブロックと同一
分岐条件として設定する。すなわち現在の第6ブロツク
■の分岐条件は、以前の直鎖ブロックである第3ブロツ
ク■の分岐条件、すなわち上記第6式の条件として設定
される。この後、処理は前記パラメータjを+1インク
リメントした後に、ステップd3に戻る。
(7)!¥k 7ブロツク■を通る条件第7ブロツク■
は、上記第2ブロツク■の分岐条件を考察した段階で、
第2ブロツク■と組合されてループ構造を構成するブロ
ックとして把握されている。したがって第7ブロツク■
の分岐条件は、上記plS3ブロックで挙げたループ処
理の離脱条件の否定の形式の条件である上記第5式の条
件として示される。
(8)m 8ブロツク■を通る条件 第8ブロツク■は、第3表および第4表に示す分岐ブロ
ック情報対(8,11)brで示される。したがって第
1表第8命令の分岐条件より、第8ブロツク■を処理が
通る条件は、第4ブロツク■を通る条件の否定、すなわ
ち、 PORTI  7=1              ・
 (10)となる。
(9)f:tS9ブロック■を通る条件第9ブロツク■
も、第3表およびPtrJ4表から分岐ブロック情報(
9,11)brによって規定されるブロックであり、し
たがって前記f55ブロック■を通る条件を考察した際
に検討した第1表fiS9命令の分岐条件(第8式)の
否定の条件と、第4ブロツク■を通る条件(PttJ7
式)との論J!!!積となる。すなわち、 PORTIの 全ビット=0 かつ PORTlの第7ビツト二〇  ・・・(11)
の条件が得られる。
(to)l 10ブロツク■を通る条件第10ブロツク
[相]は、第6ブロツク■と分岐命令を介在することな
く線形に続くブロックであり、したがって第10ブロツ
ク[相]を処理が通る条件は、第6ブロツク■を通る条
件、すなわちff13ブロツク■を通る条件(上記第6
式)と同一になる。
(11)!!n 11ブロツク■を通る条件第1表のプ
ラグラムリストがら明がなように、第13命令〜第21
命令は、第1命令〜第12命令のメインルーチンに対す
る割込み処理ルーチンである。その内容から、上記第2
表の欄外に付した入力/出力の定義において、PORT
2の第0ビツトに立ち上がりエツジまたは立ち下がりエ
ツジの信号が入力された状態を表わす割込みベクトルの
条件、 IRQ2=O・・・(12) が得られる。
(12)第12ブロツク■を通る条件 上記第4ブロツク■を通る条件が導出された処理と同様
な処理を経て、f:1S18命令[BNEJでゼロ7ラ
グZ=1となる条件が求められればよい。
すなわち第18命令からプラグラムリストをさがのぼり
、当該分岐命令を支配するフラグであるゼロ7ラグZを
変化させる最近の命令を検出する。
これは第17命令でストア命令「5TAAJが検出され
、パラメータとしてアキュムレータAが検出される。ア
キュムレータへの入力命令として、第13命令でロード
命令「LDD」が検出される。したがって第13命令〜
fjS18命令の実行内容をオペランドで記述すれば、 +CAPT1(D)−ZCAPT(D)lの上位バイト
=0・・・(13) が得られる。
(13)第13命令■を通る条件 この場合、pIS1表のプログラムリストにおいて、第
13命令以降の処理の進行において、処理が第12ブロ
ツク@に進行しない条件、すなわち上記#S13式の条
件の否定、 +CAPT1(D)−ZCAPT(D)lの上位バイト
≠0・・・(14) が求めるべき条件となる。
このようにして第5図ステップII3  において摘出
されるべき分岐条件は、各ブロック■〜■を処理が通る
条件として導出された。これ以降、処理は第5図ステッ
プ鴎4に移る。
ステップ鶴4 では、書込み命令単位の入出力結合処理
が行なわれる。ここに言う書込み命令とは、ストア命令
と、オペランドの直接操作命令(たとえばオペランドの
数値を+1増加させるインクリメント命令1−INCJ
なと)とを指す。このような命令の検出は、第1表のプ
ログラムリストにおいて、各命令を読取ることによって
直ちに実現できる。
このような入出力の結合処理は、第15図の70−チャ
ートに示される。第15図 ステップel+e2  で
は、第1表で示されるプログラムに対して、前述したブ
ロック化処理と分岐条件の生成処理とを行なう。この後
、ステップe3  では、第1表に示されるプログラム
において、書込命令が検出される。このような書込み命
令としては、第2命令(INCJ、第6命令「s T 
AΔ」、第11命令「5TAAJ、IjSl 6 fa
r令rsTXJ、第17命令rSTAAJおよび第20
命令[5TAAJが、後述するように検出される。
(1)第2命令[INcJについて 第15図ステップe4  では、当該命令に関するパラ
メータを検出する。上述した残余の書込命令、たとえば
第6命令「ST)〜A」では、このようなパラメータと
してたとえばアキュムレータAが検出されるが、第5命
令のようなメモリの直接繰作命令では、本ステップを行
なうことなく、ステップe5  で当該命令がその命令
の所属するブロックの先頭であるかどうかを判断する。
否定であれば、ステップe6  に移って、命令列の配
列方向と反対方向に一命令を検出する。肯定であればス
テップe7  で、当該ブロックに至るブロック列の種
類、すなわち当該ブロックに至る処理の系統の種類を記
憶する。
第2命令に関しては、第2命令を含む第2ブロツク■に
至るブロックは、上記ブロック化処理から得られた第1
2図および第13図の処理の流れ図に示されるように、
第1ブロツク■およびf57ブロツク■である。ステッ
プe8  では、このような記憶したブロック列中から
−ブロック (たとえばpA7ブロツク■)を選択し、
処理はステップe6に移る。
ステップe6  では、選択されたブロックにおいて、
命令列の配列方向と反対方向に一命令を検出し、現時点
ではPt54命令1’BNEJを検出する。これにより
ステップe9.el 1 、 el 2の判断は、それ
ぞれすべて否定であり、したがって処理はステップc5
 に戻る。このようにして上述した処理を繰り返し行な
い、ステップe6  で第2命令が読取られたとさ、ス
テップell  でループになったことが1゛り断され
、ステップe13  でループ要素が追加される。すな
わち第2命令の実行内容は、C0UNT 4−C0UN
T+ 1     ・・・(15)であるが、この処理
がループ構造にしたがってn回実行される場合を想定す
ると、 C0UNT、−COUNT  + ロ        
   ・・・ (16)となる。これが第2命令の実行
内容の一般形である。
このときの実行条件は、上記第7ブロツク■を通る条件
、すなわち上記fjS5式の条件となる。したがって第
2命令に関しては、 if   TIME−(n+ C0UNT)≠0Lbe
n   C0UNT4− C0UNT+ n     
         −(17)となる。
(2)第6命令について ステップC3では、次の書込命令である第6命令を検出
し、ステップe4  で第6命令に関するパラメータす
なわちアキュムレータAを検出する。
ステップe5の判断は否定となり、ステップe6で第5
命令[CLRAJを検出する。
ステップe9 では、この第5命令が上記パラメータで
あるアキュレータAを変化させる命令であることが判断
され、ステップelo  で第5命令が記憶される。ス
テップall  では、当該Pt55命令がループ構造
に含まれないことが判断され、ステップe12  では
、第5命令が7キユムレータAの入力命令であることが
判断される。この後、ステップe14  の判断で肯定
となり、処理はステップe15に移る。
したがって実行内容は、 C0UNT←0          ・・・(18)と
なり、実行条件は、処理が第3ブロツク■を通る条件、
すなわち上記第6式で示される条件と同−になり、これ
らを整理すれば、 ’+f   TIME −(n+C0UNT)= 0t
hen  C0UNT−0−(19)の結果が得られる
。
(3)第11命令について 第11命令については、115図に示されるステップe
3  で当該命令が検出された後、ステップe4、でパ
ラメータとして7キユムレータAが検出される。ステッ
プe5  では、上記第3表および第4表を参照して、
fJSll命令が第6ブロツク■の先頭であることが判
断され、処理はステップe7に移る。この判断によって
、第1表のプログラムリストにおいて、f:tS11命
令に到達するにはPt55ブロツク■、第9ブロツク■
および第8ブロツク■をそれぞれ通る3つの経路が存在
することが認識される。以下、後述する実行内容の検出
と実行条件の検出とを各経路毎に行ない、それらの結果
が論理和として出力される。
(ア)第5ブロツク■を通る経路の場合ステップe4 
 でパラメータであるアキュムレータAを検出し、プロ
グラムをさかのぼると、第10命令で7キユムレータA
に関するロード命令が検出される。ここでf511命令
は、入出力ボートへの書込み命令であり、論理演算とし
て扱う。したがって第10命令および第11命令による
実行内容は、第1表のプログラムリスト上の表現では、
PORTI←¥80        ・・・(20)と
表現されるが、論理演算の結果としては、上記fjS1
0式と同等な PORT17←1         ・・・(10)な
る論理式が得られる。
このときの実行条件は、第5ブロツク■を処理が通る条
件(上記第9式)と、第2ブロツク■およびrjrJ7
ブロツク■からなるループを処理が離脱する条件、すな
わち処理がtIS3ブロック■を通る条件(上記@6式
)との論理積となる。したがって、if   TIME
−(n+ C0UNT)= 0and  PORT17
”0 and  FORTI≠¥00 then  PO,RT174−1         
−(21)なる論理式出力が得られる。
(イ)第8ブロツク■を通る場合 ステップe6 でプログラムをさかのぼると、第6命令
でストア命令rSTAAJが検出される。したがって求
める実行内容は、前述の第6命令の場合と同様にして、
PORTI←¥OOが求められる。
また実行条件は、前述したループの離脱条件すなわち第
3ブロツク■を通る条件(第6式)と、第8ブロツク■
を処理が通る条件(第10式)との論理積である。した
がってこれらをまとめて、if   TIME −(n
+ C0UNT)= 0and  PORT17−1 then   PORT1← ¥ 00       
           ・ (22)の論理式出力が得
られる。
(つ)第9ブロツク■を通る場合 ステップe4  で検出されるパラメータは、アキュム
レータAであり、第9ブロツク■を通ってプログラムを
さかのぼると第6命令を検出する。したがってこの場合
の実行内容は、上記第22式と同一であり、実行条件は
ループの離脱条件すなわち第3ブロツク■を通る条件(
[6式)と、第4ブロツク■を通る条件(第7式)と、
第9ブロツク■を通る条件(第11式)との論理積であ
る。したがってこれらをまとめて、 if   TIME−i++ C0UNT)= 0an
d  PORT17= 0 ancl   (I’0RT17=Oand  POR
T1=¥00)tben  PORT14−¥00  
          ・ (23)の出力が得られる。
このようにして、第11命令に関する入出力条件の結合
処理が実現された。
(4)第16命令について 第1表のプログラムリストにおいて、行番号13〜21
は割込みルーチンであり、行番号1〜12のメイン処理
ルーチンとは独立の内容となっている。したがって第1
5図ステップe4  で第16命令rsTXJが検出さ
れる。第16命令に関して検出されるパラメータは、イ
ンデックスレノスタXであり、ステップe6  でプロ
グラムをさがのばると第15命令でロード命令が検出さ
れる。したかって第16命令に関する入出力結合結果は
、if   IRQ2=1 then  Z CA P T”CA P T 1  
 −(24)の論理式出力が得られる。
(5)第17命令[5TAAJについて第16命令と同
様にステップc4  で、パラメータとしてアキュムレ
ータAを検出する。ステップe6  でプログラムをさ
かのぼると、第13命令でロード命令「LDr)Jが検
出される。したがって第17命令でオペランドl”TI
MEJにストアされるのは、オペランド[cAPTIJ
およびオペランドrZCAPTJの各上位バイト情報で
ある。また実行条件は第16命令と同一である。したが
ってこれらを整理して、 if   IRQ2=1 then  TIME” (CAPTI(D) −ZC
APTCD))(H)・・・(25) 注:第25式の右辺末尾の(■()は、右辺のオペラン
ドの上位バイトであることを示す。
(6)第20命令rSTAAJについて第20命令の場
合には、第5図ステップe4で、当該命令に関するパラ
メータすなわちアキュムレータAを検出する。このパラ
メータを決定する最新の命令をプログラムをさかのぼっ
てステップc6  で検索すると、第19命令で7キユ
ムレータAに関する操作命令[DEcAJが検出される
。
したがって@20命令の実イテ内容は、C0UNT←A
−1・・・(26) となる。
ここで第19命令は、第18命令の分岐命令でゼロ7ラ
グZ=1の場合であることを考慮すると、上記fjS2
5式において、 TIME=7キユムレータA=0  ・・・(27)の
場合に相当する。したがって上記15526式において
、アキュムレータA=Oであり、 C0UNT←¥FF         ・・・(28)
が結論される。
その実行条件は、第11ブロツク0および第12ブロツ
ク@を処理が通る条件、すなわち上記第12式および第
13式で示される各条件の論理積となる。したがってこ
れらをまとめれば、if   IRQ2 = 1 alld    (CへPT 1  (D)−ZCAI
’T(D))(Iり=  Ot l+ e n  CO
U N T ←¥FF         −(29)が
得られ、これで第1表のプログラムリストに関して第5
図ステップ1114  の書込み命令単位の入出力結合
処理が行なわれる。
続いて、第5図ステップm 5  で後述するようなパ
イルの結合処理が行なわれる。ここに言うパイルとは、
プログラムリスト中におけるオペランドの直接繰作命令
を含むたとえば上記f529式のような書込み命令が実
行されるための実行条件と実行内容との結合表記を指す
。その具体的処理内容は1iIG図の70−チャートに
示される。
上述したように、第1表のプログラムリストには6個の
書込み命令があり、第3命令には第17式のパイルD7
、第6命令にはPt519式のパイルD6、第4frI
令には第21式〜第23式のパイルD 3 、D 2 
、D 1、第15 命令1:Jim 24 式ノ、1ル
D5、第17命令には第25式のパイルD4、第20命
令には第29式のD8がそれぞれ作成される。
以下、@16図を参照して、パイル結合処理について説
明する。ステップf1  では、ポートへの訂込み命令
がある外部出力命令パイルD 1 、D 2 。
D3を検出する。
ステップ「2 では、たとえばパイルD1中の未決定パ
ラメータを決定するパイルを検出する。すなわち、パイ
ルD1の実行条件に関して、パラメータrTIMEJ、
[C0UNTJが未決定である。
また、残余の外部出力命令パイルD2.D3についても
、それぞれ実行内容は異なるものの、未決定パラメータ
はパイルD1と同一のものが検出される。
以下、このようなパラメータを決定するパイルを検出す
る。パラメータ[TIMEJについてはパイルD4が検
出され、続くステップr3  では該パイルD4に含ま
れる全てのパラメータが決定されているかどうかを判断
する。現時点では判断結果は否定であり、処理はステッ
プr2  に戻り、パラメータrcAPTIJ、rZC
APTJを決定スルパイルを検出する。このとき第5パ
イルD5が選ばれる。このときステップf3  では、
全パラメータが決定されたことが↑り断され、処理はス
テップf4に移り、外部出力命令パイルが終了したがど
うかをtq断する。現時点では外部出力命令パイルD1
のみを検討しており、1′り断結果は否定となり、処理
はステップf1  に戻る。
これ以降、パイルD2.D3が外部出力命令パイルとし
て検出され、それぞれについて前述の場合と同様な処理
が行なわれる。パイルD1〜D3では、未決定のパラメ
ータは共通であり、したがってステップ「2 では同一
内容の処理が行なわれる。このようにしてパイルD3に
対するパイル結合が終了した後、ステップf4  では
判断結果が肯定となり、ステップf5に移って第17図
(1−1)〜(3−3)のパイル結合結果が出力される
。このようにして第5図ステップa+5  のパイルの
結合処理が終了する。
以上のように本実施例では、fIS5図ステップ論3以
降の分岐条件摘出処理などを行なうに先だって、rjS
5図ステップ+n 1  の流れ構造の解析処理を行な
うようにした。したがってプログラム中の分岐命令や分
岐先命令が$曲に明らかとなり、OCRなどの制御情報
は、これらの命令に関してのみ記憶すればよい。したが
って彼解析プログラムの動作内容を分析するに当り、た
とえばCCRを全命令にわたって記憶する必要がなく、
装置に要求される記憶容量を格段に削減できる。
上述したようにプログラム内容を解析するにあたって、
第5図ステップm3  で行なわれた分岐条件摘出処理
(詳細は第14図の70−チャートを参照)では、たと
えば第1表のプログラムリストの各命令の意味を読取っ
ていた。このような場合、たとえばシフト命令(たとえ
ば算術的左シフト命令rASLJや論理的左シフト命令
「LsLJなど)など同−範嗜に属する命令であっても
、論理操作と算術繰作との2つの異なる意味を持つ場合
がある。したがってこのような命令を読取った場合、当
該命令が論理操作をイテなう命令であるがまたは算術操
作を行なう命令であるかは、当職命令に関する処理の流
れを追跡することによって初めて理解されていた。
しかしながらこのような命令の把握方法では、命令の意
味が該命令の読取り時には直ちには明らかにならず、速
やかな処理の進行が妨げられていた。一方、本発明では
、前記シフト命令のような同−範嗜であって、かつ2つ
の異なる意味を持ち得る命令(以下、二意性命令と称す
る)の意味を直ちに明らかにするようにした。
このような処理手順は、第18図に示される。
以下、tIS1表のプログラムリストの第1命令〜第1
21fi7令を一例として説明する。第18図ステップ
g1  では、プログラムの第1命令から命令を読取る
。ステップg2  では、読取られた命令のオペランド
が[PORTJであるがどうかを判断する。
すなわち、当該命令が入出力ボートに関する入出力命令
であるがどうかを判断する。第1表のプログラムリスト
では、ml命令〜第6命令に閃してはこの判断は否定と
なり、処理はステップg3  に移り、算術処理が行な
われる。
すなわち、第7命令の実行内容は、 7キユムレータB←PoRT1   ・・・(3o)で
あり、したがって第8命令の分岐条件は算術繰作の場合
、 :f   PORTI<O tl+en  NANN○1          −(
31)となり、論理操作では if   PORT1?=1 then  N A N N O1−(32)となる。
すなわち算術繰作の場合には第31式から明らかなよう
に、オペランドrPORTIJが負であるかどうかのt
q断となり、論理操作の場合にはオペランド「PORT
l」の第7ビツトが1であるかどうかのtit断となる
。すなわちt51表ffi?命令の意味によっては、第
8命令の分岐条件の意味、したがってこれ以降の処理の
実行内容も全く異なるものとなる。
前記ステップg3の後、処理はステップg1に戻り、引
続(命令の読取り処理を行なわれる。前記ステップg2
  で判断結果が11゛定であれば、処理はステップg
4  に移り、ft58命令で上記第32式の論理処理
が行なわれることになる。この後、処理はステップビ1
 に戻る。
このようにして、J5−えられたプログラムの各命令を
読むごとに、その−ペランドが「PORTJであるかど
うかを検出して、これによって当該命令を算術処理また
は論理処理のいずれかに直ちに決定するようにしp、、
、これによってプログラム中の一命令の意味を直ちに確
定することがでさ、処理効率を格段に向上rることがで
きる。
効  果 以上のように本発明に従えば、プログラムの内容を解析
するにあたって、命令列から分岐命令もしくは出力命令
を検出し、命令列の配列方向と反対方向に沿って、分岐
命令もしくは出力命令で規定されるパラメータの入力命
令を検出するようにした。また該入力命令以降分岐命令
もしくは出力命令までの実行内室をオペランドを用いて
表わすようにした。したがってプログラムの動作内容が
掻作名に認識容易な形態で出力されることができ、プロ
グラムの内容の解析が格段に容易となる。
【図面の簡単な説明】
第1図は本発明の一実施例のプログラム内容解析装r1
1の構成を示すブロック図、第2図は解析装置1の記憶
領域10の構成を示すブロック図、tjfJ3図はプロ
グラム内容解析装置1の基本的動作を示す70−チャー
ト、第4図は表示装置5の表示例を示す図、第5図は解
析装rI11のプログラム内容解析処理手順を示す70
−チャー)、ff56図および第7図は被解析プログラ
ム例の動作内容を示す70−チャート、第8図は流れ構
造の解析処理手順を示す70−チャート、第9図は流れ
構造の解析処理結果を示す系統図、fjSio図はブロ
ック化処理手順を示す70−チャー)、 Pt511図
はブロック化処理の中間結果を示す系統図、第12図お
よ[77!l’$13図はブロック化処理結果を示す系
統図、第14図は分岐条件摘出処理手順を示すフローチ
ャート、第15図は入出力結合処理手順を示す70−チ
ャー)、!ml 6図はパイル結合処理手順を示すフロ
ーチャート、第17図は、パイル結合処理結果を示す系
統図、第18図は本発明の分岐条件摘出処理の池の実施
例を示すフローチャートである。 1・・・プログラム内容解析装置、2・・・磁気テープ
装置、3・・・磁気ディスク装置、4・・・内部記憶装
置、5・・・表示装置、8・・・処理装置、10・・・
記憶領域、10a・・・アーキテクチャ記憶領域 代理人  弁理士 画数 圭一部 第3図 第4図 第5図 第 6図 メインルーチンへ 第8図 13−−−− it込 第10図 第11図 第12図     第13図 第16図 第17図

Claims (1)

  1. 【特許請求の範囲】 機能語のみまたは機能語とオペランドとの組合わせなど
    の命令列から成るプログラムから分岐命令を検出し、 命令列の配列方向と反対方向に沿つて、分岐命令で規定
    されるパラメータの入力命令を検出し、該入力命令以降
    分岐命令までの実行内容と分岐命令の各分岐条件とをオ
    ペランドを用いて表わすようにしたことを特徴とするプ
    ログラム内容解析装置。
JP62154052A 1987-06-20 1987-06-20 プログラム内容解析装置 Expired - Fee Related JPH0820969B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPS63317844A true JPS63317844A (ja) 1988-12-26
JPH0820969B2 JPH0820969B2 (ja) 1996-03-04

Family

ID=15575861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62154052A Expired - Fee Related JPH0820969B2 (ja) 1987-06-20 1987-06-20 プログラム内容解析装置

Country Status (1)

Country Link
JP (1) JPH0820969B2 (ja)

Cited By (5)

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

Also Published As

Publication number Publication date
JPH0820969B2 (ja) 1996-03-04

Similar Documents

Publication Publication Date Title
US5367468A (en) Design aid method and design aid apparatus for integrated circuits
Aberth Precise numerical methods using C++
Korver et al. A computer-checked verification of Milner's scheduler
JPH0820973B2 (ja) プログラム内容解析装置
JPS63317848A (ja) プログラム内容解析装置
JPH0820969B2 (ja) プログラム内容解析装置
JP2548197B2 (ja) プログラム内容解析装置
JPH0820972B2 (ja) プログラム内容解析装置
JPS63317849A (ja) プログラム内容解析装置
JPH0820968B2 (ja) プログラム内容解析装置
Vogler Iterated linear control and iterated one-turn pushdowns
JPS63317847A (ja) プログラム内容解析装置
JPS63317846A (ja) プログラム内容解析装置
JPS63317845A (ja) プログラム内容解析装置
JPS63317851A (ja) プログラム内容解析装置
JP3594106B2 (ja) 自動プログラミング装置、自動プログラミング方法および記録媒体
JPH02128240A (ja) コンピユータプログラムの検査方法
JP2653880B2 (ja) プログラム内容解析装置
JPH0769856B2 (ja) プログラム内容解析装置
Wiedmann Efficiency in the APL environment—a full arsenal for attacking CPU hogs
JP2555011B2 (ja) ベクトルデ−タ処理方式
JPH03179537A (ja) プログラム内容解析装置
Gallacher Software for hardware engineers
Steier et al. Schorr-Waite Graph Marking
JPH01125655A (ja) 情報処理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees