JP2731047B2 - プログラムのオペランドチェック方式 - Google Patents

プログラムのオペランドチェック方式

Info

Publication number
JP2731047B2
JP2731047B2 JP3114453A JP11445391A JP2731047B2 JP 2731047 B2 JP2731047 B2 JP 2731047B2 JP 3114453 A JP3114453 A JP 3114453A JP 11445391 A JP11445391 A JP 11445391A JP 2731047 B2 JP2731047 B2 JP 2731047B2
Authority
JP
Japan
Prior art keywords
instruction
file
program
operand
size
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 - Fee Related
Application number
JP3114453A
Other languages
English (en)
Other versions
JPH04342037A (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.)
Fuji Electric Co Ltd
Fuji Facom Corp
Original Assignee
Fuji Electric Co Ltd
Fuji Facom Corp
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 Fuji Electric Co Ltd, Fuji Facom Corp filed Critical Fuji Electric Co Ltd
Priority to JP3114453A priority Critical patent/JP2731047B2/ja
Publication of JPH04342037A publication Critical patent/JPH04342037A/ja
Application granted granted Critical
Publication of JP2731047B2 publication Critical patent/JP2731047B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理装置、制御
演算装置等により実行されるプログラムに記述されてい
る命令の誤りをチェックするプログラムの誤りチェック
方式に係わり、特に命令のオペランドの記述誤りをチェ
ックするプログラムのオペランドチェック方式に関す
る。
【0002】
【従来の技術】ある種のデータ処理装置、制御演算装置
等においては、それらの装置のCPU(中央処理装置)
が実行するプログラムの中に、データ領域の大きさを定
義する命令(データ領域サイズ定義命令)と、そのデー
タ領域内の任意アドレスをオペランドとする命令を記述
できるものがある。このようなプログラムのエラーチェ
ック(デバッグ)においては、まずユーザプログラム
(ソースプログラム)の段階で、各命令のオペランドの
示すアドレスが、上記データ領域サイズ定義命令により
定義されるデータ領域内にあるか否かをチェックする必
要がある。
【0003】上記チェックは、従来、以下に示す2つの
方式により行われていた。 まず、ユーザプログラム
の全ての命令をチェックして、データ領域サイズ定義命
令を検出し、その検出されたデータ領域サイズ定義命令
により定義されているサイズをメモリやレジスタ等に保
持する。次に、再びユーザプログラムの全ての命令をチ
ェックし、上記保持されているデータ領域の定義サイズ
を越えたオペランドの記述があれば、そのオペランドを
含む命令を異常と判定し、その命令がエラーであること
を示すエラーメッセージ等の出力を行う。 ユーザプ
ログラムの作成において、データ領域サイズ定義命令を
他の命令よりも先に記述するという制約を設け、ユーザ
プログラムの全ての命令を先頭から順次チェックしてい
く際、データ領域サイズ定義命令を他の命令よりも先に
検出し、そのデータ領域サイズ定義命令により定義され
ているデータ領域のサイズを確認・保持した後、以後の
命令のオペランドのチェックを行い、上記確認したデー
タ領域サイズを越えたオペランドがあれば、異常と判定
し、そのオペランドを含む命令がエラーであることを示
すエラーメッセージ等の出力を行う。
【0004】
【発明が解決しようとする課題】しかしながら、上記
に示す方式では、ユーザプログラムの全ての命令を2回
チェックする必要があるため、ユーザプログラムの容量
が大きい場合、チェックに要する時間が長くなってしま
うという問題があった。
【0005】また、上記に示す方式では、ユーザプロ
グラムの全ての命令のチェックは1回で済むものの、ユ
ーザにプログラミング上の制約を与えてしまうという欠
点があった。
【0006】本発明は、プログラム内の命令でデータ領
域の大きさが定義されると共に、そのデータ領域内のデ
ータをオペランドとする命令が記述されるユーザプログ
ラムにおける各命令のオペランドのチェックを、ユーザ
に対しプログラミング上の制約を与えることなく、かつ
ユーザプログラムの全命令のチェックを1回行うだけで
実施できるプログラムのオペランドチェック方式を実現
することを目的とする。
【0007】
【課題を解決するための手段】図1は、本発明の原理説
明図である。本発明は、データ領域の大きさを定義する
第1の命令と、該第1の命令によってされたデータ領域
内の任意のアドレスをオペランドとする第2の命令を備
えたプログラム言語で記述されたプログラムにおける前
記第2の命令のオペランド記述誤りをチェックするプロ
グラムのオペランドチェック方式を前提とする。
【0008】同図において、第1の記憶手段1は、プロ
グラム内の全ての第1の命令により定義される各データ
領域の大きさを定義する。第2の記憶手段2は、プログ
ラム内の全ての第2の命令のオペランドで指定される前
記各データ領域の最大アドレスを記憶する。
【0009】チェック手段3は、プログラム内の全命令
をチェックして、第1の記憶手段1及び第2の記憶手段
2に当該データ(第1の命令により定義される各データ
領域の大きさ及び第2の命令のオペランドにより指定さ
れる各データ領域の最大アドレス)を書き込み、その書
き込み完了後、第1の記憶手段1に格納されている各デ
ータ領域の大きさと第2の記憶手段2に格納されている
上記各データ領域の最大指定アドレスとに基づいて、前
記プログラムに記述されている前記第2の命令のオペラ
ンド記述誤りを検出する。このオペランド記述誤りとし
ては、例えば、第2の命令のオペランドが、第1の命令
で定義されたデータ領域の範囲を越えるアドレスを指定
している場合が該当する。
【0010】
【作用】本発明では、チェック手段1がプログラムの全
命令を、例えば、先頭から順次読み出し、第1の命令を
読み出す毎に、その第1の命令で定義されている各デー
タ領域の大きさ(範囲)を第1の記憶手段1に書き込
む。また、チェック手段1は、上記プログラムの全命令
を読み出す際、第2の命令を読み出す毎に、その命令の
オペランドで指定されている任意のデータ領域のアドレ
スを検出し、任意の第2の命令のオペランドで指定され
ている各データ領域の最大指定アドレスを、第2の記憶
手段2に書き込む。そして、プログラムの全命令の読み
出しが完了した後、第1の記憶手段1に格納されている
第1の命令により定義された各データ領域の大きさ(範
囲)と第2の記憶手段2に格納されている第2の命令の
オペランドにより指定された上記各データ領域の最大指
定アドレスとを、各データ領域毎に個別に比較し、各デ
ータ領域の最大指定アドレスが、第1の命令により定義
されたデータ領域の大きさ(範囲)を越えていないか否
かを判別し、越えている場合には、オペランドが誤って
記述された第2の命令があるものと判断し、例えば、そ
の旨をエラーメッセージ出力等によりユーザに通知す
る。
【0011】
【実施例】以下、図面を参照しながら本発明の実施例を
説明する。図2は、本発明の一実施例の構成及び動作を
説明する図である。
【0012】まず、メモリ内のユーザプログラム領域1
2にロードされたユーザプログラムの内容を説明する。
上記ユーザプログラムにおいて、〔FILE n,d
max 〕の形式で記述される命令は、「番号nのファイル
として、dmax 個のデータが格納される領域を、データ
領域として確保する。」というファイルサイズ定義命令
である。すなわち、 n :ファイルの識別番号 dmax :ファイルの大きさ(ファイルサイズ)を示すデ
ータ数 となっている。またこの命令においては、nが第1オペ
ランド、dmax が第2オペランドとなっている。
【0013】同図(a)に示す、ユーザプログラムにお
いては、〔FILE 3,5〕及び〔FILE 1,
7〕がこの命令に対応しており、同図(b)に示すデー
タ領域14に、〔FILE 1,7〕の命令の実行によ
りファイル番号が「1」で格納データ数が7個のファイ
ル14─1が、また〔FILE 3,5〕の命令の実行
によりファイル番号が「3」で格納データ数が5個のフ
ァイル14─3が確保される。
【0014】また、〔ZZZ→n:d〕の形式で記述さ
れる命令は、「処理ZZZの結果をファイル番号nのフ
ァイル内のデータ番号dに対応するアドレスに格納す
る」という命令である。またこの命令では、nが第1オ
ペランド、dが第2オペランドとなっている。
【0015】上記処理ZZZには、例えば、2つのレジ
スタもしくは変数間の演算処理等が含まれ、例えば同図
(a)に示すユーザプログラムにおいては、 「X+Y」,「P÷Q」,「A×B」 (X,Y,P,Q,A,Bは任意のレジスタまたは変数
等) の各記述が該当する。
【0016】したがって、例えば、「X+Y→2:3」
という命令は、レジスタ(変数)Xとレジスタ(変数)
Yとの加算値を、データ領域14内に設けられたファイ
ル番号2のファイル内のデータ番号3に対応する領域
(アドレス)に格納するという処理を指定するものであ
る。
【0017】そして、上記ファイルサイズ定義命令によ
り定義される各ファイルのサイズを管理するため、同図
(c)に示すファイルサイズ保管領域20が、メモリ内
の所定領域に設けられる。本実施例のユーザプログラム
においては、ファイル番号として、定義できるのは
「0」〜「4」までとなっており、同図(c)に示すよ
うに、「0」から「4」までの各ファイル番号を有する
各ファイルに対し、それぞれ個別のファイルサイズ格納
域21(21─0〜21─4)が設けられている。
【0018】さらに、同図(d)に示すように、ファイ
ルサイズ定義命令〔FILE n,dmax 〕の第2オペ
ランドdmax で指定される最大データ番号(ファイルサ
イズに該当する)を、ファイル番号n(n=0,1,
2,3,4)の各ファイル毎に個別に記憶する最大オペ
ランド値保管領域30がメモリ内の所定領域に設けられ
る。この最大オペランド値保管領域30も、上記ファイ
ルサイズ保管領域20と同様に、ファイル番号「0」,
「1」,・・・「4」を有する各ファイルに対し、それ
ぞれ個別の最大オペランド値格納域31(31─0〜3
1─4)が割り当てられている。
【0019】次に、上記構成の実施例の動作を、図3の
フローチャートを参照しながら説明する。まず、ファイ
ルサイズ保管領域20及び最大オペランド値保管領域3
0を初期化(0クリア)した後(S1),ユーザプログ
ラム領域の先頭アドレスをチェックアドレスに設定する
(S2)。
【0020】続いて、そのチェックアドレスに格納され
ている命令が、〔FILE n,d max 〕,「XXX→
n:d」,または、その他の命令であるかの判別を行う
(S3)。
【0021】そして、〔FILE n,dmax 〕の形式
のファイルサイズ定義命令であれば、その命令により指
定されているファイル番号「n」のファイルに対応する
ファイルサイズ保管領域20内のファイルサイズ格納域
21─nに、上記命令により指定されているデータ数d
max を書き込み・登録する(S4)。
【0022】一方、〔XXX→n:d〕の形式の命令で
あれば、最大値オペランド値保管領域30内のその命令
により指定されているファイル番号「n」のファイルに
対応する最大値オペランド格納域31─nに、上記命令
により指定されているデータ番号dを書き込み・登録す
る(S5)。また、その他の命令については、何の処理
も行わない。
【0023】上記処理S3〜S5の処理は、前記チェッ
クアドレスを順次「1」づつ増加しながら(S7),ユ
ーザプログラム領域内の全ての命令に対して行い、ユー
ザプログラムの最後の命令について上記S3〜S5の処
理が終了したと判別すると(S6),ファイルサイズ保
管領域20内の各ファイルサイズ格納域21に格納され
た最大データ数dmax と最大オペランド保管領域30内
の各最大オペランド値格納域31に格納されている値と
を、各ファイル番号毎に比較し、 ファイルサイズ値>最大オペランド値 となっている、すなわち最大オペランド値がファイルの
定義サイズ(データ数d max )を越えているファイル番
号があるか否かを判別する(S8)。
【0024】そして、定義されているファイルサイズを
越えているファイル番号があれば、ユーザプログラムが
誤っているので、その旨を示すエラーメッセージを出力
するエラー処理を行う。(S9)。
【0025】上記動作を、図2(a)に示すユーザプロ
グラムに対して行った場合、まず前記処理S6で、ユー
ザプログラムの全てについて命令処理が終了したと判別
された段階で、ファイルサイズ保管領域20、最大オペ
ランド値保管領域30には、それぞれ同図(c),
(d)に示すようなデータが書き込まれる。すなわち、
〔FILE 3,5〕,〔FILE 1,7〕の各命令
を読み出すことにより、同図(c)に示すように、ファ
イルサイズ保管領域30のファイル番号3のファイルサ
イズ格納域21─3に「5」の値が、ファイル番号1の
ファイルサイズ格納域21─1に「5」の値が、ファイ
ルサイズを示すデータとして書き換き込まれる。また、
〔X+Y→3:3〕,〔A+B→3:10〕の各命令を
読み出すことにより、同図(d)に示すように、最大オ
ペランド値保管領域30のファイル番号1の最大オペラ
ンド値格納域31─1に「3」の値が、ファイル番号3
の最大値オペランド格納域31─3に「10」の値が書
き込まれる。
【0026】そして、前記処理S8を行うことにより、
ファイル番号3をオペランド(第1オペランド)とする
命令が、〔FILE 3,5〕の命令により定義されて
いるファイル番号3を有するファイルの定義サイズ(=
5)を越えていることが検出される。すなわちユーザプ
ログラムにおいて、第2オペランドでデータ番号10を
指定している〔A×B→3:10〕の命令が誤っている
ことが検出される。
【0027】
【発明の効果】本発明によれば、ユーザにプログラミン
グ上の制約を与えることなく、ユーザプログラムの全命
令を1回チェックするだけで、ユーザプログラム内で大
きさが定義されるデータ領域をオペランドで指定してい
る命令の、オペランド記述誤りをチェックすることがで
きる。
【図面の簡単な説明】
【図1】本発明の原理説明頭である。
【図2】本発明の一実施例の構成を示す図である。
【図3】上記一実施例の動作を説明するフローチャート
である。
【符号の説明】
1 第1の記憶手段 2 第2の記憶手段 3 チェック手段

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 データ領域の大きさを定義する第1の命
    令と、該第1の命令によって定義されたデータ領域内の
    任意アドレスをオペランドとする第2の命令を備えたプ
    ログラム言語で記述されたプログラムにおける前記第2
    の命令のオペランド記述誤りをチェックするプログラム
    のオペランドチェック方式において、プログラム内の全
    ての前記第1の命令により定義される各データ領域の大
    きさを記憶する第1の記憶手段(1)と、前記プログラ
    ム内の全ての前記第2の命令のオペランドで指定される
    前記各データ領域の最大アドレスを記憶する第2の記憶
    手段と、前記プログラム内の全命令をチェックして、前
    記第1の記憶手段及び前記第2の記憶手段に当該データ
    を書き込み、その書き込み完了後、前記第1の記憶手段
    に格納されている各データ領域の大きさと前記第2の記
    憶手段に格納されている上記各データ領域の最大指定ア
    ドレスとに基づいて、前記プログラムに記述されている
    前記第2の命令のオペランド記述誤りを検出するチェッ
    ク手段と、を具備することを特徴とするプログラムのオ
    ペランドチェック方式。
JP3114453A 1991-05-20 1991-05-20 プログラムのオペランドチェック方式 Expired - Fee Related JP2731047B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3114453A JP2731047B2 (ja) 1991-05-20 1991-05-20 プログラムのオペランドチェック方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3114453A JP2731047B2 (ja) 1991-05-20 1991-05-20 プログラムのオペランドチェック方式

Publications (2)

Publication Number Publication Date
JPH04342037A JPH04342037A (ja) 1992-11-27
JP2731047B2 true JP2731047B2 (ja) 1998-03-25

Family

ID=14638114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3114453A Expired - Fee Related JP2731047B2 (ja) 1991-05-20 1991-05-20 プログラムのオペランドチェック方式

Country Status (1)

Country Link
JP (1) JP2731047B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256509B2 (en) 2017-12-07 2022-02-22 International Business Machines Corporation Instruction fusion after register rename
US11157280B2 (en) * 2017-12-07 2021-10-26 International Business Machines Corporation Dynamic fusion based on operand size
JP7436848B2 (ja) * 2020-09-23 2024-02-22 東芝情報システム株式会社 Ffu検査装置及びffu検査用プログラム

Also Published As

Publication number Publication date
JPH04342037A (ja) 1992-11-27

Similar Documents

Publication Publication Date Title
JP2731047B2 (ja) プログラムのオペランドチェック方式
JPH05225076A (ja) 共通情報管理方法及びシステム
JPH0821009B2 (ja) チャネル制御装置のイニシャライズ方法及びそのイニシャライズのためのシステム
JP3130798B2 (ja) バス転送装置
JP3695078B2 (ja) パルス出力命令を持つプログラマブルコントローラ
JP2719676B2 (ja) 並列演算処理装置
KR20080044652A (ko) Cpu에서의 스택을 이용한 디버깅 방법
JPH0654505B2 (ja) 並列型演算処理装置
JPH03147130A (ja) オペレーティングシステム修正方式
JPH064331A (ja) 10進チェック回路
JPH02284248A (ja) メモリ内容チェック方法
JP2636513B2 (ja) 記憶装置および方法
JPS6020769B2 (ja) マイクロプログラム制御方式
JP3789248B2 (ja) プログラムロード方法、プログラムロード装置及びその記録媒体
JP3616588B2 (ja) マイクロプログラムチェックシステム
JPS626341A (ja) 情報処理装置
JPH0444766B2 (ja)
JPS62108333A (ja) 半導体装置
JPH10240627A (ja) セクタ管理方法及び装置
JPS63201741A (ja) ダンプ情報編集出力方式
JPH0226252B2 (ja)
JPH0319570B2 (ja)
JPH02165358A (ja) 学習機能付きプログラムロード方式
JPS59189452A (ja) デ−タ処理装置用キユ−構造
JPH01320547A (ja) プログラム実行情報の収集方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19971209

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees