JPH02309421A - 構造記述子結線方式 - Google Patents
構造記述子結線方式Info
- Publication number
- JPH02309421A JPH02309421A JP13239889A JP13239889A JPH02309421A JP H02309421 A JPH02309421 A JP H02309421A JP 13239889 A JP13239889 A JP 13239889A JP 13239889 A JP13239889 A JP 13239889A JP H02309421 A JPH02309421 A JP H02309421A
- Authority
- JP
- Japan
- Prior art keywords
- depth
- row
- program
- connections
- connection
- 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
Links
- 238000004458 analytical method Methods 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、構造化プログラミングで記述されたプログラ
ムにおいて、対応する構造記述子間に結線を引く構造記
述子結線方式に関する。
ムにおいて、対応する構造記述子間に結線を引く構造記
述子結線方式に関する。
構造化プログラミングで記述されたプログラムを人間が
読み、理解するためには、プログラムの構造を理解する
必要がある。これを容易にするなめに、対応する構造記
述子を線で結んだものを見ることが行なわれてきた。こ
のなめ従来から、翻訳結果リスト上に結線を付加して印
字するコンパイラや原始プログラムに結線を付加して印
字するアプリケーションプログラム等が作・られてきた
。
読み、理解するためには、プログラムの構造を理解する
必要がある。これを容易にするなめに、対応する構造記
述子を線で結んだものを見ることが行なわれてきた。こ
のなめ従来から、翻訳結果リスト上に結線を付加して印
字するコンパイラや原始プログラムに結線を付加して印
字するアプリケーションプログラム等が作・られてきた
。
従来の結線方式は1.プログラムの全行を入力しながら
構造記述子が存在する行を検索し、現れた構造記述子に
対応する構造記述子が存在する行を求め、両方の行の番
号を結線の始点・終点位置として記憶していき、プログ
ラム中の全ての構造記述子について対応付けが終了した
後、記憶してある結線位置を基にプログラムに対し結線
を付加して出力していた。
構造記述子が存在する行を検索し、現れた構造記述子に
対応する構造記述子が存在する行を求め、両方の行の番
号を結線の始点・終点位置として記憶していき、プログ
ラム中の全ての構造記述子について対応付けが終了した
後、記憶してある結線位置を基にプログラムに対し結線
を付加して出力していた。
上述した従来の構造記述子結線方式は、対応付けられた
2つ以上の構造記述子の行番号を記憶しておくために、
構造記述子の数に比例する量のメモリを必要とする欠点
と、プログラムの全行を入力して付加すべき結線の位置
を求めた後にプログラムに結線を付加して出力するため
には再度プログラムの全行を入力しなければならないと
いう欠点がある。
2つ以上の構造記述子の行番号を記憶しておくために、
構造記述子の数に比例する量のメモリを必要とする欠点
と、プログラムの全行を入力して付加すべき結線の位置
を求めた後にプログラムに結線を付加して出力するため
には再度プログラムの全行を入力しなければならないと
いう欠点がある。
本発明の構造記述子結線方式は、構造化プログラミング
で記述されたプログラムを1行ずつ入力する入力手段と
、前記入力手段によって入力された1行を記憶する記憶
手段と、前記記憶手段によって記憶された行の構造の深
さを求める解析手段と、前記解析手段によって求めた構
造の深さ分の本数の結線を記憶してある行に付加する処
理手段と、前記処理手段によって結線を付加された1行
を出力する出力手段とを備えて構成される。
で記述されたプログラムを1行ずつ入力する入力手段と
、前記入力手段によって入力された1行を記憶する記憶
手段と、前記記憶手段によって記憶された行の構造の深
さを求める解析手段と、前記解析手段によって求めた構
造の深さ分の本数の結線を記憶してある行に付加する処
理手段と、前記処理手段によって結線を付加された1行
を出力する出力手段とを備えて構成される。
次に、本発明について図面を参照しながら説明する。
第1図に示すように、構造記述子結線方式は、結線前の
プログラムを入力する入力手段に1と一入力したプログ
ラムを記憶しておく記憶手段1−2と、構造の深さを求
める解析手段1−3と、記憶している行に結線を付加す
る処理手段1−4と、結線を付加した行を出力する出力
手段1−5とから構成される。
プログラムを入力する入力手段に1と一入力したプログ
ラムを記憶しておく記憶手段1−2と、構造の深さを求
める解析手段1−3と、記憶している行に結線を付加す
る処理手段1−4と、結線を付加した行を出力する出力
手段1−5とから構成される。
入力手段1−1は、入力装置から結線を必要とするプロ
グラムを入力する。入力装置は、例えばカード読み取り
装置、磁気テープ装置、磁気ディスク装置等が接続され
る。
グラムを入力する。入力装置は、例えばカード読み取り
装置、磁気テープ装置、磁気ディスク装置等が接続され
る。
記憶手段1−2は、入力手段1−1によって入力された
プログラムを一時的に記憶し、行単位に解析手段1−3
へ渡す。
プログラムを一時的に記憶し、行単位に解析手段1−3
へ渡す。
解析手段1−3は、記憶手段1−2から受は取った行中
に構造記述子が存在するかを調べてその行の構造の深さ
を求め、処理手段1−4へ渡す。
に構造記述子が存在するかを調べてその行の構造の深さ
を求め、処理手段1−4へ渡す。
次に、構造の深さについて述べる。
構造化プログラミングは、第2図(a)のフロー図で示
す4つの構造の組み合せによって構成される。そして、
それらを構造記述子を用いて記述すると、第2図(b)
となる、ここで用いた構造記述子は、説明のため便宜上
作った記述子で、実際のプログラミング言語ではないが
、第3図に示すように実際の構造化プログラミング言語
の構造記述子は全てこの4つの構造のうちに含まれる。
す4つの構造の組み合せによって構成される。そして、
それらを構造記述子を用いて記述すると、第2図(b)
となる、ここで用いた構造記述子は、説明のため便宜上
作った記述子で、実際のプログラミング言語ではないが
、第3図に示すように実際の構造化プログラミング言語
の構造記述子は全てこの4つの構造のうちに含まれる。
以下、この記述子を用いて説明する。各構造は、それ自
体を1つの処理とみなし、他の構造の一部として組み込
むことができる。この時処理の分岐を含む構造(すなわ
ちIF型構造、CASE型構造、DO型構造)に組み込
むことを構造が深くなるという。そして、プログラムの
開始点をOとしてそこから何回構造が深くなったかを構
造の深さという。
体を1つの処理とみなし、他の構造の一部として組み込
むことができる。この時処理の分岐を含む構造(すなわ
ちIF型構造、CASE型構造、DO型構造)に組み込
むことを構造が深くなるという。そして、プログラムの
開始点をOとしてそこから何回構造が深くなったかを構
造の深さという。
次に、構造の深さの求め方について述べる。第4図の例
に示すように構造記述子の中には、構造の深さを増すも
の、滅するもの、変化しないものの3種類がある。これ
で全記述子を分類すると、(1)構造の深さを増すもの
IF、CASE、DO(2)構造の深さを減するも
の ENDIF、ENDCASE。
に示すように構造記述子の中には、構造の深さを増すも
の、滅するもの、変化しないものの3種類がある。これ
で全記述子を分類すると、(1)構造の深さを増すもの
IF、CASE、DO(2)構造の深さを減するも
の ENDIF、ENDCASE。
ENDDO
(3)構造の深さを変えないもの ELSE 、 WH
ENとなる。これ°を利用することにより、プログラム
の各行の構造の深さを求めることができる。まず、構造
の深さを表わすデータ項目を用意してプログラムの開始
時で、0″をセットしておく。
ENとなる。これ°を利用することにより、プログラム
の各行の構造の深さを求めることができる。まず、構造
の深さを表わすデータ項目を用意してプログラムの開始
時で、0″をセットしておく。
次に、記憶手段1−2から1行ずつプログラムを受は取
り、その行中に構造記述子が存在するかを調べる。構造
の深さを□増す構造記述子(すなわちIF、CASE、
Do)が存在する場合、構造の深さを表わすデータ項目
の値に1を加える。構造の深さを減する構造記述子(す
なわちENDIF、ENDCASE。
り、その行中に構造記述子が存在するかを調べる。構造
の深さを□増す構造記述子(すなわちIF、CASE、
Do)が存在する場合、構造の深さを表わすデータ項目
の値に1を加える。構造の深さを減する構造記述子(す
なわちENDIF、ENDCASE。
ENDDO)が存在する場合、構造の深さを表わすデー
タ項目の値から1を減する。構造の深さを変えない構造
記述子が存在する場合と、構造記述子が存在しない場合
構造の深さを表わすデータ項目の値は変化させない。こ
れらの処理を行うことにより、このデータ項目の値が、
各行の構造の深さを表わすことになる。
タ項目の値から1を減する。構造の深さを変えない構造
記述子が存在する場合と、構造記述子が存在しない場合
構造の深さを表わすデータ項目の値は変化させない。こ
れらの処理を行うことにより、このデータ項目の値が、
各行の構造の深さを表わすことになる。
処理手段1−4は、解析手段1−3から受は取った構造
の深さ分の本数の結線を、記憶手段1−2から受は取っ
た行に付加し、出力手段1−5へ渡す。
の深さ分の本数の結線を、記憶手段1−2から受は取っ
た行に付加し、出力手段1−5へ渡す。
出力手段1−5は、処理手段1−4から受は取った行を
、ブロック化して出力装置へ出力する。出力装置は、例
えば、リスト印字装置、磁気テープ装置、磁気ディスク
装置等が接続される。
、ブロック化して出力装置へ出力する。出力装置は、例
えば、リスト印字装置、磁気テープ装置、磁気ディスク
装置等が接続される。
構造化プログラムの結線例を第5図を用いて述べる。
ステップ5−1ニブログラムの開始で構造の深さを表わ
すデータ項目(以降、単に構造の深さと記す)を0にす
る。
すデータ項目(以降、単に構造の深さと記す)を0にす
る。
ステップ5−2二行中にIFがあるので、横線■と結合
記号■を付加して出力した後、構造の深さに1を加える
。
記号■を付加して出力した後、構造の深さに1を加える
。
ステップ5−3:行中に構造記述子が存在しないので、
構造の深さ分の本数の結線■を付加して出力する。
構造の深さ分の本数の結線■を付加して出力する。
ステップ5−4=行中にIFがあるので、構造の深さ分
の本数の結線■を付加し、横線■と、結合記号■を付加
し出力した後、構造の深さに1を加える。
の本数の結線■を付加し、横線■と、結合記号■を付加
し出力した後、構造の深さに1を加える。
ステップ5−5二行中に構造記述子が存在しないので、
構造の深さ分の本数の結線■、■を付加して出力する。
構造の深さ分の本数の結線■、■を付加して出力する。
ステップ5−6=行中にELSEがあるので構造の深さ
分の本数の結線■、[相]を付加し、横線■を付加して
出力する。構造の深さは変えない。
分の本数の結線■、[相]を付加し、横線■を付加して
出力する。構造の深さは変えない。
ステップ5−7:行中に構造記述子が存在しないので、
構造の深さ分の本数の結線@、■を付加して出力する。
構造の深さ分の本数の結線@、■を付加して出力する。
ステップ5−8二行中にEND−I Fがあるので、構
造の深さから1を減じた後、構造の深さ分の本数の結線
[相]を付加し、横線■と結合記号[株]を付加して出
力する。
造の深さから1を減じた後、構造の深さ分の本数の結線
[相]を付加し、横線■と結合記号[株]を付加して出
力する。
ステップ5−9二行中にEND−IFがあるので、構造
の深さから1を減じた後、構造の深さ分の本数の結、!
i(Oなので結線はない)を付加し、横線Oと結合記号
[相]を付加して出力する。
の深さから1を減じた後、構造の深さ分の本数の結、!
i(Oなので結線はない)を付加し、横線Oと結合記号
[相]を付加して出力する。
ステップ5−10ニブログラムの終わりなので、処理を
終了する。
終了する。
以上説明したように本発明は、構造記述千間に結線を付
加する場合、各行について構造の深さ分の本数の結線を
記憶している行に付加することで、各行ごとに入力と結
線の付加と出力を繰り返すことにより、結線の始点・終
点位置を記憶しておくためのメモリが不要となり、結線
を付加して出力するためのプログラム再入力が不要とな
る。
加する場合、各行について構造の深さ分の本数の結線を
記憶している行に付加することで、各行ごとに入力と結
線の付加と出力を繰り返すことにより、結線の始点・終
点位置を記憶しておくためのメモリが不要となり、結線
を付加して出力するためのプログラム再入力が不要とな
る。
図面の簡単な説明
第1図は本発明の構成を示すブロック図、第2図(a>
および(b)は構造化プログラミングでの基本構造のフ
ローおよび構造記述子による記述を示す図、第3図は代
表的な構造化プログラミング言語での基本構造のプログ
ラミングの一例を示す図表、第4図は構造記述子を用い
たプログラミング例と、構造の深さとの対応を示す説明
図、第5図は構造の深さを基に結線を付加する手順を示
す説明図である。
および(b)は構造化プログラミングでの基本構造のフ
ローおよび構造記述子による記述を示す図、第3図は代
表的な構造化プログラミング言語での基本構造のプログ
ラミングの一例を示す図表、第4図は構造記述子を用い
たプログラミング例と、構造の深さとの対応を示す説明
図、第5図は構造の深さを基に結線を付加する手順を示
す説明図である。
Claims (1)
- 構造化プログラミングで記述されたプログラムを1行ず
つ入力する入力手段と、前記入力手段によって入力され
た1行を記憶する記憶手段と、前記記憶手段によって記
憶された行の構造の深さを求める解析手段と、前記解析
手段によって求めた構造の深さ分の本数の結線を記憶し
てある行に付加する処理手段と、前記処理手段によって
結線を付加された1行を出力する出力手段とを備えて成
ることを特徴とする構造記述子結線方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13239889A JPH02309421A (ja) | 1989-05-24 | 1989-05-24 | 構造記述子結線方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13239889A JPH02309421A (ja) | 1989-05-24 | 1989-05-24 | 構造記述子結線方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02309421A true JPH02309421A (ja) | 1990-12-25 |
Family
ID=15080461
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13239889A Pending JPH02309421A (ja) | 1989-05-24 | 1989-05-24 | 構造記述子結線方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02309421A (ja) |
-
1989
- 1989-05-24 JP JP13239889A patent/JPH02309421A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5379407A (en) | Error handling in a state-free system | |
| JPH02309421A (ja) | 構造記述子結線方式 | |
| US4929938A (en) | Area searching system | |
| JP2714015B2 (ja) | 論理回路合成装置 | |
| JPS60178795A (ja) | 状態遷移図作成処理方式 | |
| JP2895892B2 (ja) | データ処理装置 | |
| JP2507676B2 (ja) | 索引入出力文実行処理方式 | |
| JP2586155B2 (ja) | 論理シミュレータ | |
| JP3152769B2 (ja) | プログラム解析装置 | |
| JPH05134879A (ja) | プリコンパイル方式 | |
| JPH03263136A (ja) | パイプラインのトレース方式 | |
| JPS6258375A (ja) | ネットワ−クデ−タ自動変換方式 | |
| JPH02219162A (ja) | 電子計算機 | |
| JPS63257038A (ja) | 原始プログラム変換における対応識別情報付加方式 | |
| JPH0546401A (ja) | 境界条件変更方式 | |
| JPS6370341A (ja) | タスクモジユ−ル比較装置 | |
| JPH02216527A (ja) | ソースプログラムリスト出力方式 | |
| JPH04270422A (ja) | プリコンパイル処理方式 | |
| JPH03266162A (ja) | コマンド実行方式 | |
| JPS61250731A (ja) | デ−タマ−ジ命令制御方式 | |
| JPH04289915A (ja) | 言語処理プロセッサのリスト出力方式 | |
| JPH05204647A (ja) | 有向グラフの単一化装置 | |
| JPH0660144A (ja) | ハードウェア記述自動生成方法とその装置 | |
| JPS61236456A (ja) | 数値制御装置 | |
| JPS6247743A (ja) | デ−タ構成図生成処理方式 |