JPH0210429A - プログラム構造化処理方式 - Google Patents
プログラム構造化処理方式Info
- Publication number
- JPH0210429A JPH0210429A JP63161812A JP16181288A JPH0210429A JP H0210429 A JPH0210429 A JP H0210429A JP 63161812 A JP63161812 A JP 63161812A JP 16181288 A JP16181288 A JP 16181288A JP H0210429 A JPH0210429 A JP H0210429A
- Authority
- JP
- Japan
- Prior art keywords
- structuring
- structure table
- structured
- source program
- program
- 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
- 238000006243 chemical reaction Methods 0.000 claims abstract description 9
- 239000000284 extract Substances 0.000 claims abstract description 5
- 238000003672 processing method Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000000034 method Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 101100311260 Caenorhabditis elegans sti-1 gene Proteins 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012916 structural analysis Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、ソースプログラム中に存在するGOTo
、JUMP命令を除去し、ソースプログラムを構造化さ
れたプログラムに変換するプログラム構造化処理方式に
関するものである。
、JUMP命令を除去し、ソースプログラムを構造化さ
れたプログラムに変換するプログラム構造化処理方式に
関するものである。
一般にプログラム構造の単純化や読解の容易さなどを向
上するために構造化プログフミング技法が導入されるよ
うになった。第5図は、構造化プログラムの一例を示し
たもので、第5図(a)は構造化される前のソースプロ
グラムを示スモのでGOTO命令を含んでいるが、第5
図(ロ)は構造化された後のソースプログラムを示すも
のでGOTO文が除去されている。第5図(り及び(b
)のソースプログラムは全く同じ内容である。
上するために構造化プログフミング技法が導入されるよ
うになった。第5図は、構造化プログラムの一例を示し
たもので、第5図(a)は構造化される前のソースプロ
グラムを示スモのでGOTO命令を含んでいるが、第5
図(ロ)は構造化された後のソースプログラムを示すも
のでGOTO文が除去されている。第5図(り及び(b
)のソースプログラムは全く同じ内容である。
従来このような構造化処理は、例えば第6図(@)〜(
C)に夫々示すような決まったパターンだけを自動的に
構造化しており、パターンに当てはまらなければ構造化
が行なわれず、人の手でソースプログラムを修正する等
の処理を必要としていた。なお、第6図において、Sl
、Sl はプログラムの構造上1つにまとめることの
できる行の集まりを表わす。
C)に夫々示すような決まったパターンだけを自動的に
構造化しており、パターンに当てはまらなければ構造化
が行なわれず、人の手でソースプログラムを修正する等
の処理を必要としていた。なお、第6図において、Sl
、Sl はプログラムの構造上1つにまとめることの
できる行の集まりを表わす。
従来のプログラミング構造化処理方式では、特定のパタ
ーンのGOTO、j ump命令だけの構造化が可能で
、プログラムを全て自動的に構造化することができず、
ソースプログラムの構造化に時間がかかるという11に
題があった。
ーンのGOTO、j ump命令だけの構造化が可能で
、プログラムを全て自動的に構造化することができず、
ソースプログラムの構造化に時間がかかるという11に
題があった。
この発明は、上記のような課題を解消するためになされ
たもので、ソースプログラム中に存在する全てのGOT
O、Jump 命令を自動的に除去し、構造化されたプ
ログツムに変換するプログラム構造化処理方式を得るこ
とを目的とする。
たもので、ソースプログラム中に存在する全てのGOT
O、Jump 命令を自動的に除去し、構造化されたプ
ログツムに変換するプログラム構造化処理方式を得るこ
とを目的とする。
CI!!!題を解決するための手段〕
この発明に係るプログラム構造化処理方式は。
構造化のためCζソースプログツ為Iζは存在しない変
数を新たに生成し、その変数により、構造化を行なうよ
うにしたものである。
数を新たに生成し、その変数により、構造化を行なうよ
うにしたものである。
この発明におけるプログラム構造化処理方式は、新たに
生成した変数をIF文、WHLLE文の条件式に使用し
、また、ENDIF文、生成した変数への代入文、EN
DWHILE文等を付加することによりGo To
、 j u m p命令を全て除去し、プログラムの構
造化を行うようにしたものである。
生成した変数をIF文、WHLLE文の条件式に使用し
、また、ENDIF文、生成した変数への代入文、EN
DWHILE文等を付加することによりGo To
、 j u m p命令を全て除去し、プログラムの構
造化を行うようにしたものである。
以下、この発明の一実施例を図について説明する。第1
図において、(21Jは入力対象のソースプログラム、
@はソースプログラムを入力として構造、つまり、00
文・IF文・GOTO文等が何行目にあり、プログラム
がどのような顆序で実行されるのかを表わすプログラム
の流れの構造を抽出し構造テーブルを作成する構造テー
ブル作成部、(社)はこの構造テーブル作成部によって
作成された構造テーブル%(財)はこの構造テーブルを
入力とし、検索することにより、構造テーブル(至)か
ら構造化lζ必要な情報、例えば、GOTO文の個数や
構造化の必要なブロックの制御構造等を抽出する構造解
析部、器はこの構造解析部より抽出された構造化情報で
あり、たとえば、何行目から何行目は1つのブロックと
して扱えるといった情報やGOTO命令の場所等、構造
化処理に必要な情報である。
図において、(21Jは入力対象のソースプログラム、
@はソースプログラムを入力として構造、つまり、00
文・IF文・GOTO文等が何行目にあり、プログラム
がどのような顆序で実行されるのかを表わすプログラム
の流れの構造を抽出し構造テーブルを作成する構造テー
ブル作成部、(社)はこの構造テーブル作成部によって
作成された構造テーブル%(財)はこの構造テーブルを
入力とし、検索することにより、構造テーブル(至)か
ら構造化lζ必要な情報、例えば、GOTO文の個数や
構造化の必要なブロックの制御構造等を抽出する構造解
析部、器はこの構造解析部より抽出された構造化情報で
あり、たとえば、何行目から何行目は1つのブロックと
して扱えるといった情報やGOTO命令の場所等、構造
化処理に必要な情報である。
凶は構造テーブル@と構造化情報−を入力とし。
新たに変数を生成し、GOTO、j ump命令を繰返
し命令、IF命令等に変換する構造化変換部。
し命令、IF命令等に変換する構造化変換部。
(5)はこの構造化変換部により作成された構造化され
た構造テーブル、(支)はこの構造テーブルをソースプ
ログラムに再生するソースプログラム変換部、四は構造
化されたソースプログラムである。
た構造テーブル、(支)はこの構造テーブルをソースプ
ログラムに再生するソースプログラム変換部、四は構造
化されたソースプログラムである。
各部の動作は前述したとおりだが、構造化変換部固の動
作を第2図のフローチャートと第3図の構造化の実際の
例に従って説明する。まず、構造テーブル作成部(支)
によって作成された構造テーブル@と構造解析部(財)
によって作成された構造化情報□□□を読み込む(ステ
ップ1.以下ステップをSTと略す。)、この構造化処
理方式ではGOTO文(命令)の飛び先きのラベルの数
だけ変数が必要になるので、構造化情報(ハ)によりラ
ベルの数と同じ数の変数を生成する( ST2 )。第
3図(b)の■に変数が4個生成されている。ソースプ
ログラムの構造を独立して取り扱えるい(っかのブロッ
クに分け、構造化が必要なブロックを選択する(ST3
L 構造化が必要なブロックの構造テーブルを1つず
つ処理する( s”r4 )e処理中に構造化が必要な
GOTO文が出てきたかどうかを判定する( ST5
)。GOTO文が出現した場合、その時の構造化情報l
ζ従ってIF文1代入文、ENDIF文、ENDDO文
等に変換する(ST6)、第3図の■にその例を示して
いる。処理中にGOTOの飛び先きのラベルが出てきた
かどうかを判定する( s’r7 )。GOTO飛び先
きラベルが出現した場合、その時の構造化情報に従って
無変換。
作を第2図のフローチャートと第3図の構造化の実際の
例に従って説明する。まず、構造テーブル作成部(支)
によって作成された構造テーブル@と構造解析部(財)
によって作成された構造化情報□□□を読み込む(ステ
ップ1.以下ステップをSTと略す。)、この構造化処
理方式ではGOTO文(命令)の飛び先きのラベルの数
だけ変数が必要になるので、構造化情報(ハ)によりラ
ベルの数と同じ数の変数を生成する( ST2 )。第
3図(b)の■に変数が4個生成されている。ソースプ
ログラムの構造を独立して取り扱えるい(っかのブロッ
クに分け、構造化が必要なブロックを選択する(ST3
L 構造化が必要なブロックの構造テーブルを1つず
つ処理する( s”r4 )e処理中に構造化が必要な
GOTO文が出てきたかどうかを判定する( ST5
)。GOTO文が出現した場合、その時の構造化情報l
ζ従ってIF文1代入文、ENDIF文、ENDDO文
等に変換する(ST6)、第3図の■にその例を示して
いる。処理中にGOTOの飛び先きのラベルが出てきた
かどうかを判定する( s’r7 )。GOTO飛び先
きラベルが出現した場合、その時の構造化情報に従って
無変換。
WHILE文代人文、ENDIF文等に変換する(ST
9 )。第3図の■にその列を示している。この処理を
1ブロツクの全ての構造テーブルについて行なわれたか
判定し、まだ1ブロツクの処理が終了していなければ元
に戻り、終了していれば、欠のブロックの処理を行う(
ST9 )。つぎにこの処理が全ブロックについて行な
われたか判定し、まだブロックが残っているなら繰り返
し処理し、残っていなければ最後の処理に進む(sr1
oL最後に、前記処理で新しく構造化された構造テーブ
ルを出力する(STI 1 )e なお、上記実施例では新たに変数を生成しGOTO。
9 )。第3図の■にその列を示している。この処理を
1ブロツクの全ての構造テーブルについて行なわれたか
判定し、まだ1ブロツクの処理が終了していなければ元
に戻り、終了していれば、欠のブロックの処理を行う(
ST9 )。つぎにこの処理が全ブロックについて行な
われたか判定し、まだブロックが残っているなら繰り返
し処理し、残っていなければ最後の処理に進む(sr1
oL最後に、前記処理で新しく構造化された構造テーブ
ルを出力する(STI 1 )e なお、上記実施例では新たに変数を生成しGOTO。
jump命令を除去する方法を示したが、この処理を行
う前に従来から使われてきた決まったパターンのGOT
O文をブロックIF文等に変換する処理を行ってもよく
、その後に本発明の処理を行うと生成ラベル数が減るな
どの効果が得られる。
う前に従来から使われてきた決まったパターンのGOT
O文をブロックIF文等に変換する処理を行ってもよく
、その後に本発明の処理を行うと生成ラベル数が減るな
どの効果が得られる。
また、生成ラベル個数を1個として、条件式の内容等を
変えることによりソースプログラムを構造化することが
できる。その実際の例を第4図に示す。なお、第4図に
は変換上WHILE()〜ENDDO文ではな(、DO
,WHIEL()文を使用している。
変えることによりソースプログラムを構造化することが
できる。その実際の例を第4図に示す。なお、第4図に
は変換上WHILE()〜ENDDO文ではな(、DO
,WHIEL()文を使用している。
以上のように、この発明によnば全てのGOTO。
j u m p命令等を新たな変数を生成することによ
り除去できるので構造化処理が全て自動に行えるという
効果がある。
り除去できるので構造化処理が全て自動に行えるという
効果がある。
第1図はこの発明の一実#4列によるブロック図。
第2図はこの発明の動作を示す流れ図、第3図はこの発
明における構造化の実際の例、第4図は生成ラベル個数
を1個とした場合の構造化の実施例。 第5図は構造化プログラミングの例、第6図は決まった
パターンの構造化の例である。 図において、@はソースプログラム、■は構造テーブル
作成部、(財)は構造解析部、(至)は構造化変換部、
(ハ)はソースプログラム変換部である。 なお、各図中、同一符号は同一あるいは相当部分を示す
ものとする。
明における構造化の実際の例、第4図は生成ラベル個数
を1個とした場合の構造化の実施例。 第5図は構造化プログラミングの例、第6図は決まった
パターンの構造化の例である。 図において、@はソースプログラム、■は構造テーブル
作成部、(財)は構造解析部、(至)は構造化変換部、
(ハ)はソースプログラム変換部である。 なお、各図中、同一符号は同一あるいは相当部分を示す
ものとする。
Claims (1)
- ソースプログラム中に含まれるGOTO及びJUMP
命令を除去するプログラム構造化処理方式において、ソ
ースプログラムを入力し、その構造テーブルを作成する
構造テーブル作成部、この構造テーブル作成部で作成さ
れた構造テーブルを構造解析し、構造化に必要な情報を
抽出する構造解析部、この構造解析部で抽出した情報及
び上記構造テーブル作成部で作成した構造テーブルによ
り、上記GOTO及びJUMP命令を繰返し命令あるい
はIF命令に変換した構造化された構造テーブルを作成
する構造化変換部、及びこの構造化変換部により作成さ
れた構造テーブルを構造化されたソースプログラムに変
換するソースプログラム変換部を備えたことを特徴とす
るプログラム構造化処理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63161812A JPH0210429A (ja) | 1988-06-28 | 1988-06-28 | プログラム構造化処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63161812A JPH0210429A (ja) | 1988-06-28 | 1988-06-28 | プログラム構造化処理方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0210429A true JPH0210429A (ja) | 1990-01-16 |
Family
ID=15742381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63161812A Pending JPH0210429A (ja) | 1988-06-28 | 1988-06-28 | プログラム構造化処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0210429A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001035213A1 (fr) * | 1999-11-11 | 2001-05-17 | Information System Development Institute | Procede et dispositif de reproduction de programme, et support de programme pour enregistrement de reproduction de programme |
EP1465068A1 (en) * | 2002-04-29 | 2004-10-06 | Hewlett-Packard Company | Improvements in structuring program code |
JP2009245250A (ja) * | 2008-03-31 | 2009-10-22 | Nec Corp | 記述処理装置、記述処理方法およびプログラム |
JP6341582B1 (ja) * | 2017-04-05 | 2018-06-13 | 石田 伸一 | ソースコード変換装置、ソースコード変換プログラム及びソースコード変換方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52106506A (en) * | 1976-03-03 | 1977-09-07 | Japanese National Railways<Jnr> | Lock mechanism of railway switch |
JPS59128044A (ja) * | 1983-01-13 | 1984-07-24 | 株式会社京三製作所 | 防水型電気転てつ機 |
JPS60121172A (ja) * | 1983-12-02 | 1985-06-28 | 日本信号株式会社 | 割出し電気転てつ機 |
-
1988
- 1988-06-28 JP JP63161812A patent/JPH0210429A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52106506A (en) * | 1976-03-03 | 1977-09-07 | Japanese National Railways<Jnr> | Lock mechanism of railway switch |
JPS59128044A (ja) * | 1983-01-13 | 1984-07-24 | 株式会社京三製作所 | 防水型電気転てつ機 |
JPS60121172A (ja) * | 1983-12-02 | 1985-06-28 | 日本信号株式会社 | 割出し電気転てつ機 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001035213A1 (fr) * | 1999-11-11 | 2001-05-17 | Information System Development Institute | Procede et dispositif de reproduction de programme, et support de programme pour enregistrement de reproduction de programme |
AU760395B2 (en) * | 1999-11-11 | 2003-05-15 | Information System Development Institute | Program reproducing method and device, and medium on which program for program reproduction recording |
EP1465068A1 (en) * | 2002-04-29 | 2004-10-06 | Hewlett-Packard Company | Improvements in structuring program code |
JP2009245250A (ja) * | 2008-03-31 | 2009-10-22 | Nec Corp | 記述処理装置、記述処理方法およびプログラム |
US8375376B2 (en) | 2008-03-31 | 2013-02-12 | Nec Corporation | Description processing device, description processing method, and recording medium |
JP6341582B1 (ja) * | 2017-04-05 | 2018-06-13 | 石田 伸一 | ソースコード変換装置、ソースコード変換プログラム及びソースコード変換方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0210429A (ja) | プログラム構造化処理方式 | |
JP2001255912A (ja) | モーションプログラムの実行方法 | |
JP3554651B2 (ja) | 高速シーケンス制御方法とその装置、プログラム作成方法 | |
JPS61169936A (ja) | ジヨブ制御言語自動発生方式 | |
JPH03126103A (ja) | ロボット用プログラム作成装置 | |
JPH0250730A (ja) | 共通機械語による言語変換方式 | |
JPS6232557A (ja) | 通信プロトコ−ル変換装置 | |
JPH01194053A (ja) | コマンドプロシジャの処理方式 | |
JPS6361329A (ja) | プログラム作成装置 | |
JPS6115236A (ja) | オブジエクトリストの部分作成方法 | |
JPH04248624A (ja) | プログラム変換処理装置 | |
JPH0272407A (ja) | ラダー・プログラム変換装置 | |
JPH07334399A (ja) | 固定長レコード向けコード変換方式 | |
JPH03144830A (ja) | 並列処理方式 | |
JPS63133230A (ja) | ソ−スプログラムコンパイル方式 | |
JPH05313910A (ja) | 機械語命令生成方式 | |
JPH0580992A (ja) | 手続き・関数関連図出力方式 | |
JPS62239236A (ja) | プログラムのコンパイル装置 | |
JPS6057437A (ja) | コンパイラ装置 | |
JPH05158706A (ja) | 中間言語の最適化処理方式 | |
JPS61161514A (ja) | 数値制御方式 | |
JPS63104139A (ja) | Cobolソ−スリスト編集方式 | |
JPH05233241A (ja) | プログラム作成装置 | |
JPH0311428A (ja) | 入力画面依存型対話処理プログラム生成方式 | |
JPH0371229A (ja) | プログラム制御装置 |