JP2795332B2 - ループ処理誤り検出装置 - Google Patents

ループ処理誤り検出装置

Info

Publication number
JP2795332B2
JP2795332B2 JP4245978A JP24597892A JP2795332B2 JP 2795332 B2 JP2795332 B2 JP 2795332B2 JP 4245978 A JP4245978 A JP 4245978A JP 24597892 A JP24597892 A JP 24597892A JP 2795332 B2 JP2795332 B2 JP 2795332B2
Authority
JP
Japan
Prior art keywords
loop processing
loop
source program
registration device
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.)
Expired - Lifetime
Application number
JP4245978A
Other languages
English (en)
Other versions
JPH0675816A (ja
Inventor
香織 杉山
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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP4245978A priority Critical patent/JP2795332B2/ja
Publication of JPH0675816A publication Critical patent/JPH0675816A/ja
Application granted granted Critical
Publication of JP2795332B2 publication Critical patent/JP2795332B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は電子計算機を利用したプ
ログラムの検証方法に関し、特にループ処理が正しく終
了するか否かを判断するための装置に関するものであ
る。
【0002】
【従来の技術】プログラム開発の中では終了条件を設定
し、それを満たすまで処理を繰り返すといったようなル
ープ処理を行うことが非常に多く行われている。
【0003】従来このようなループ処理での誤りは、プ
ログラム開発者が机上においてデバッグを行う際に偶然
見つける、検査段階において正しい検査結果が得られな
いのでプログラム内容を追跡して見つける、無限にルー
プ処理を行いプログラムが終了しないのでプログラム内
容を追跡して見つけるなどの形で行われていた。
【0004】
【発明が解決しようとする課題】上述した従来のループ
処理の誤りの検出方法は、体系的に行われないので非常
に手間がかかり、見落としが発生する場合があるという
問題がある。
【0005】本発明は上記問題点の解決を図り、効率良
くループ処理誤りを検出することを目的とする。
【0006】
【課題を解決するための手段】本発明のループ処理誤り
検出装置は、検査を行うべきソースプログラムの指示を
行う入力部と、検査のために読み込まれた前記ソースプ
ログラムのデータ部の内容を登録するデータ部登録装置
と、 言語ごとに決まっているループ処理記述のパターン
が登録され、前記ソースプログラム中のループ処理の有
無を判断するために使用されるループ処理記述登録装置
と、 指示された前記ソースプログラムを読み込み、該ソ
ースプログラムにおけるループ処理の有無を判断し、該
ループの脱出条件を表わす指標について、その初期値よ
りループ内の処理を行い、該指標の桁数の範囲でループ
の脱出条件を満たすか否かを判断する解析部と、 前記解
析部の判断の結果、誤りがあったループ処理の検出結果
を登録する検出結果登録装置と、該結果を通知する出力
部と、を備えたことを特徴としている。
【0007】
【実施例】以下、図面を参照しつつ実施例にしたがって
説明する。 [構成]図1は本発明の一実施例の処理概要を示すブロ
ック図、図2は図1解析部1−2の処理概要を示すフロ
ーチャートである。
【0008】図中1−1は入力部、1−2は解析部、1
−3はデータ部登録装置、1−4はループ処理記述登録
装置、1−5は検出結果登録装置、1−6は出力部を表
す。 [機能]入力部1−1は、検査を行いたいソースプログ
ラムの登録場所及び、プログラム名の指示を行うもの
で、例えばキーボードで入力する。
【0009】解析部1−2は指示されたソースプログラ
ムの読み込み、ソースプログラム中のデータ部の内容の
登録、ソースプログラム中のループ処理の検索、ループ
処理が正常に終了するかの検査、検査結果の登録という
一連の制御を行う。
【0010】データ部登録装置1−3は、検査のために
読み込まれたソースプログラムのデータ部の内容を登録
する装置である。データ部登録装置1−3には(1−3
の中身の図)に示されるように変数名領域、属性領域、
値領域があり、検査のために読み込まれたソースプログ
ラムのデータ部の内容のうち、例えばDATA12など
の変数の名前を変数名領域に、例えば英数字タイプで9
桁などの変数の属性を属性領域に、例えば20などの初
期値を値領域に登録する。また、値領域は手続き部の読
み込み中に変数の更新処理が行われた際更新された値が
新たに登録される。
【0011】ループ処理記述登録装置1−4は、言語ご
とで決まっているループ処理記述のパターンを登録して
おく装置で、手続き部の読み込み中にループ処理の有無
を確認する際に利用する。
【0012】検出結果登録装置1−5は、解析部1−2
で検出したループ処理に誤りがあった場合、そのエラー
内容を登録する装置であり、誤りのあったループ処理の
記述されている位置、例えばソースプログラムの行数と
エラーの内容を登録する。出力部1−6は、検出結果登
録装置1−5に登録された内容を例えば画面やプリンタ
に出力する機能である。 [動作]次に図2に解析部1−2を中心にして本実施例
の動作を示す。
【0013】まず、入力部1−1で検査を行いたいプロ
グラム名を指定する。
【0014】指定されたソースプログラムは、解析部1
−2で順次読み込まれる(ステップ2−1)。
【0015】ステップ2−2により、ソースプログラム
のデータ記述部が終了していないと判断された場合、ソ
ースプログラムのデータ記述に従って、データ部登録装
置1−3中の変数名領域にプログラムで定義されている
変数の名前、属性領域に変数の持つ属性、もし初期値が
定義されていれば値領域にその値を登録する。例えばC
OBOL85言語では、DATADIVISIONに記
述されている内容が登録される(ステップ2−3)。
【0016】データ部の解析が終了すると解析部1−2
では、手続き部の読み込みを開始し変数の更新命令の有
無を判断する(ステップ2−6)。
【0017】変数が更新されている場合は、データ部登
録装置1−3中の変数名領域から更新されている変数名
を検索し、対応する値領域に更新された値を置換する
(ステップ2−7)。
【0018】次にループ処理の有無を判断するが、これ
はループ処理記述登録装置1−4中の言語タイプにおい
て、登録されているループ処理記述と同じ表現があるか
を検索する。例えばCOBOL85言語では、PERF
ORM〜UNTIL等という記述でループ処理は表現さ
れ、この表現が予めループ処理記述登録装置1−4の言
語タイプ、ループ処理記述にそれぞれ登録されておりそ
れを検索する(ステップ2−8)。
【0019】ループ処理記述がなければ、手続き部の読
み込みを順次続ける。ループ処理があった場合そのルー
プ処理が正常に終了するかを判断する。ここではソース
プログラムからループ脱出条件、脱出条件を表す指標、
データ部登録装置1−3から指標名と一致する変数名を
探し、対応する属性領域から桁数を、値領域の値を初期
値として用い判断を行う。例えばCOBOL85言語で
書かれたプログラムをもとに説明すると、 MOVE 0 TO I. PERFORM A UNTIL I=100 ADD 1 TO I END−PERFORM. という処理において、1行目は変数の更新命令であるた
め、データ部登録装置1−3中の変数名領域が“I”に
対応する値領域を“0”に置換する。2行目よりPER
FORM〜UNTILという記述は、ループ処理記述登
録装置1−4で言語タイプがCOBOL85である場合
のループ処理記述に登録されているため、この記述はル
ープ処理記述とみなされループ処理が終了するか否かの
判断を行う。2,3行目はAという処理を1回行った
後、更新命令に従いIに1を加算しIが100より大き
くなるまで、Aの処理を行うということを示している。
データ部登録装置1−3中の属性領域からIの桁数(例
えばIを3桁とする)をとり、その範囲0〜999の間
でIを0から順に1ずつ加算していき、Iが99から1
00に更新された時、I=100の脱出条件を満たすの
でこのループ処理は正しいと判断される。
【0020】また、前述のプログラムにおいて2行目以
降が、例えば PERFORM A UNTIL I<0 ADD 1 TO I END−PERFORM. と記述されていた場合、更新命令をIが0〜999の間
で実行しても脱出条件は満たされないためこのループ処
理は誤りであると判断される(ステップ2−9)。
【0021】判断によりループ処理が正しいとみなされ
た場合は手続き部の読み込みを順次続け、誤りであると
みなされた場合は検出結果登録装置1−5にループ処理
の記述されているソースプログラムの行数とエラー内容
を登録する(ステップ2−10)。
【0022】手続き部の読み込みをすべて終了したら、
出力部1−6により検出結果を出力する。
【0023】
【発明の効果】以上説明したように本発明によれば、ル
ープ処理を利用したプログラムにおいて、ループ処理で
の記述ミス、ロジックミスを効率良く見落としなく検出
することができる。
【図面の簡単な説明】
【図1】本発明の一実施例の処理概要を示すブロック
図。
【図2】図1解析部1−2の処理説明を示すフローチャ
ート。
【符号の説明】
1−1 入力部 1−2 解析部 1−3 データ部登録装置 1−4 ループ処理記述登録装置 1−5 検出結果登録装置 1−6 出力部

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 検査を行うべきソースプログラムの指示
    を行う入力部と、検査のために読み込まれた前記ソースプログラムのデー
    タ部の内容を登録するデータ部登録装置と、 言語ごとに決まっているループ処理記述のパターンが登
    録され、前記ソースプログラム中のループ処理の有無を
    判断するために使用されるループ処理記述登録装置と、 指示された前記ソースプログラムを読み込み、該ソース
    プログラムにおけるループ処理の有無を判断し、該ルー
    プの脱出条件を表わす指標について、その初期値よりル
    ープ内の処理を行い、該指標の桁数の範囲でループの脱
    出条件を満たすか否かを判断する解析部と、 前記解析部の判断の結果、 誤りがあったループ処理の検
    出結果を登録する検出結果登録装置と、該結果を 通知する出力部と、 を備えたことを特徴とするループ処理誤り検出装置。
JP4245978A 1992-08-24 1992-08-24 ループ処理誤り検出装置 Expired - Lifetime JP2795332B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4245978A JP2795332B2 (ja) 1992-08-24 1992-08-24 ループ処理誤り検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4245978A JP2795332B2 (ja) 1992-08-24 1992-08-24 ループ処理誤り検出装置

Publications (2)

Publication Number Publication Date
JPH0675816A JPH0675816A (ja) 1994-03-18
JP2795332B2 true JP2795332B2 (ja) 1998-09-10

Family

ID=17141664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4245978A Expired - Lifetime JP2795332B2 (ja) 1992-08-24 1992-08-24 ループ処理誤り検出装置

Country Status (1)

Country Link
JP (1) JP2795332B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7024421B2 (ja) * 2018-01-12 2022-02-24 カシオ計算機株式会社 電子機器、表示制御方法、およびプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6133547A (ja) * 1984-07-25 1986-02-17 Fujitsu Ltd ベクトル・レジスタのオ−バフロ−情報通知方式

Also Published As

Publication number Publication date
JPH0675816A (ja) 1994-03-18

Similar Documents

Publication Publication Date Title
US8397104B2 (en) Creation of test plans
CN112925524A (zh) 一种检测驱动程序中不安全直接存储器访问的方法及装置
JPH03188535A (ja) プログラム・エラー検出方法
JP2795332B2 (ja) ループ処理誤り検出装置
JPH1173328A (ja) コーディング規約チェックシステム
CN110825650B (zh) 单元测试覆盖精度检测方法及装置
JP2560545B2 (ja) インタフェース検査処理装置
JP2806976B2 (ja) プログラム内容検査装置
JPH036630A (ja) 対話処理プログラム検査方式
JP2894732B2 (ja) 論理回路シミュレーシヨン装置
JP2001060151A (ja) プログラム解析装置及びプログラム解析用プログラム又はプログラム解析用データを記憶した記憶媒体
JPS62224833A (ja) デ−タ形式の適否検査方式
JPH11282722A (ja) プログラム検証方法
JPH03182941A (ja) プログラムテスト方式
JPH1031584A (ja) ソフトウエアの検証自動化装置
CN114879964A (zh) 代码生成方法及装置
CN117312165A (zh) 不规范的Spring注解调用的识别方法、系统及电子设备
US6654879B1 (en) Method and apparatus for analyzing code for out-of-range data involving base and seed tables/lists
JPH0314148A (ja) プログラム破壊検出装置
JPH10289124A (ja) データフロー異常検査装置
JPH1115864A (ja) イベント発生原因解析装置および方法、論理不具合検出装置、ならびにイベント発生原因解析プログラムを記録した媒体
JP2001084162A (ja) プログラム試験方法及び記憶媒体
JPH08249193A (ja) プログラムの言語仕様範囲の検査方式
JPH0431933A (ja) 原始プログラム解析装置
JPH05324756A (ja) 論理シミュレーション結果表示システム