JPS62118448A - 不定値参照の検出方式 - Google Patents

不定値参照の検出方式

Info

Publication number
JPS62118448A
JPS62118448A JP60258874A JP25887485A JPS62118448A JP S62118448 A JPS62118448 A JP S62118448A JP 60258874 A JP60258874 A JP 60258874A JP 25887485 A JP25887485 A JP 25887485A JP S62118448 A JPS62118448 A JP S62118448A
Authority
JP
Japan
Prior art keywords
program
indefinite
variable
statement
value
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
Application number
JP60258874A
Other languages
English (en)
Inventor
Kyoko Hanakada
羽中田 恭子
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
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP60258874A priority Critical patent/JPS62118448A/ja
Publication of JPS62118448A publication Critical patent/JPS62118448A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はプログラム中の不定値を有する変数の参照を検
出する不定値参照の検出方式に関する。
(従来の技術) プログラム中の不定変数、すなわち、値が定義されてい
ない変数であるにも拘らずこれを参照する文を設定する
ことはプログツムの犯し易い誤りの一つである。このよ
うなプログラムミスを事前に排除しておくことはプログ
ラム実行段階忙おける誤動作の原因を限定化するうえで
極めて有効である。
従来のこの種の不定値参照の検出は、コンパイラによっ
てプログラム単位ごとに行なわれる。たとえば、フォー
トラン(PORT几AN)の場合にはプログラム単位中
の代入文、リード(READ)文。
データ(DATA)文等で定義されているが否かを調ベ
プログラム単位中で定義が無いにも拘らず参照されてい
る場合には不定値参照としてエラー表示するようになっ
ている。
(発明が解決しようとする問題点) このような従来方式はプログラム単位に閉じた変数に対
してのみ有効であるため、プログラム単位間で使用する
共通な変数やプログラム単位間で受は渡しされる変数に
対して不定値参照の検出ができず、また、不定値参照の
調査は、プログラム単位によって静的に行なわれるため
、変数定義と変数参照の先後関係を考慮に入れての不定
値参照の検出ができないことになり、プログラム単位に
閉じた変数であっても定義前に参照されているような場
合に対しては無効になるという問題点がある。
(問題点を解決するための手段) 本発明の方式は、入力された原始プログラムを解析して
未初期化変数を抜き出す解析部と、この抜き出された未
初期化変数に疑似不定値を初期値として設定しておく文
を原始プログラム内に挿入しまた未初期化変数が疑似不
定値と同値か否かを検定し同値の場合にはエラー処理ル
ーチンに制御を渡す文を原始プログラム中の未初期化変
数を参照している文の直前に挿入しまた不定値参照情報
を出力した後で分岐元に復帰する工2−処理ルーチンを
原始プログラムに追加する原始プログラム再生部 とを設け、このようにして再生された原始プログラムを
実行することにより不定値を有する変数の参照を検出す
るようにしたことを特徴とする。
(実施例) 次に本発明の実施例について図面を参照して説明する。
第1図は本発明の一実施例を説明するだめの図を示す。
第1図を参照すると、当初はプログラム単位10と初期
値設定則プログラム100とから成りFOlも1′−R
AN言語で書かれた原始プログラム1に、疑似不定値設
定文11および101と、不定変数判定処理プログラム
12と、不定値参照情報出力プログラム1000とが追
加され再生されていることがわかる。
原始プログラム1のメインルーチンであるプログラム単
位101Cおいては、図示した文M=Hのように、変数
が参照される文がある。このような原始プログラムを、
翻訳システムに先ず入力すると、解析部がプログラム単
位10を解析して未初期化変数、すなわち、初期値が設
定されていない変数を抜き出して、たとえば、主記憶の
所定エリアに格納する。
次いで原始プログラム再生部が機能して以下に述べるよ
うに原始プログラム1を再生する。
第1に、上述のようにして抜き出された未初期化変数に
疑似不定値を初期値としておく疑似不定値設定文11と
101をそれぞれプログラム単位10と初期値設定副プ
ログラム100の各データ(DATA)部に挿入する。
疑似不定値設定文11はプログラム単位10に閉じた(
ローカルな)未初期化変数に対して挿入され、疑似不定
値設定文101は、複数のプログラム単位間で参照でき
る(グローバルな)未初期化変数に対して初期値設定副
プログラム100に挿入される。
第1図においては、説明を簡単化するために、プログラ
ム単位が1つしか示されていないが、複数個ある場合に
は各プログラム単位にローカルな未初期化変数に対する
各疑似不定値設定文は対応するプログラム単位に挿入さ
れる。また、初期値設定副プログラム100が存在しな
い場合には新たに作成し原始プログラム1に追加する。
疑似不定値設定文11と101においては、それぞれ未
初期化変数NとAK疑似不定値が初期値として設定され
ていることがわかる。なお、疑似不定値とは不定変数を
認識するために変数がとり得ないように、定められた値
のことであり、参照時にこの値を有する変数は不定変数
とみなされるのである。
第2に、プログラム単位10において未初期化変数を参
照している文(第1図におけるM=N等)の直前に、不
定変数判定処理プログラム12を挿入する。不定変数判
定処理プログラム12においては未初期化変数が、先に
初期値として設定された疑似不定値のままであればその
未初期化変数は不定変数であるとみなして不定値参照情
報出力プログラム1000に分岐し、またそうでなけれ
ば未初期化変数参照文(M二N)に移る。
第1図においては図面の繁雑化を回避するために1つの
未初期化変数参照文M−Nしか示していないので不定変
数判定処理プログラム12のみが挿入されるよう釦なっ
ているが、このような不定変数判定処理プログラムは未
初期化変数参照文ごとにその直前に挿入される。
第3に、不定値参照情報出力プログラム1000をプロ
グラム1に挿入する。不定値参照情報出力プログラム1
000では、不定変数を参照した事実を示すメツセージ
、プログラム名2行番号、変数名等を出力した後で不定
変数判定処理プログラム12に復帰する。
以上のようにして再生された原始プログラムを実行する
と、参照時においても疑似不定値を有する変数は、疑似
不定値設定時点からその時までに定義されていないこと
になるので不定変数とみなされ、対応する不定値参照情
報を得ることができるようになり、プログラム名チェッ
カーはこれを見て不定値参照個所を把握できることKな
る。
(発明の効果) 本発明によれば、以上に説明したように、プログラム単
位に閉じた(ローカルな)変数に対する疑似不定値設定
文をそのプログラム単位に挿入し、グローバルな未初期
化変数に対する疑似不定値設定文を初期値設定副プログ
ラムに挿入しておくことにより、プログラム単位間で使
用する共通な変数やプログラム単位間で受は渡しされる
変数に対しても不定値参照の検出が可能になり、また、
未初期化変数参照文の直前に常に不定変数判定処理プロ
グラムを挿入しておくことにより、不定値参照の検出を
ダイナミックに行なえるようになるだめ、変数定義と変
数参照の先後関係に係りなくすべての不定値参照を検出
できるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を説明するための図である。

Claims (1)

  1. 【特許請求の範囲】 入力された原始プログラムを解析して未初期化変数を抜
    き出す解析部と、 該抜き出された未初期化変数に疑似不定値を初期値とし
    て設定しておく文を前記原始プログラム内に挿入し、ま
    た前記未初期化変数が前記疑似不定値と同値か否かを検
    定し同値の場合にはエラー処理ルーチンに制御を渡す文
    を前記原始プログラム中の前記未初期化変数を参照して
    いる文の直前に挿入し、また不定値参照情報を出力した
    後で前記分岐元に復帰する前記エラー処理ルーチンを前
    記原始プログラムに追加する原始プログラム再生部 とを設け、該再生された原始プログラムを翻訳し実行す
    ることにより不定値を有する変数の参照を検出するよう
    にしたことを特徴とする不定値参照の検出方式。
JP60258874A 1985-11-18 1985-11-18 不定値参照の検出方式 Pending JPS62118448A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60258874A JPS62118448A (ja) 1985-11-18 1985-11-18 不定値参照の検出方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60258874A JPS62118448A (ja) 1985-11-18 1985-11-18 不定値参照の検出方式

Publications (1)

Publication Number Publication Date
JPS62118448A true JPS62118448A (ja) 1987-05-29

Family

ID=17326241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60258874A Pending JPS62118448A (ja) 1985-11-18 1985-11-18 不定値参照の検出方式

Country Status (1)

Country Link
JP (1) JPS62118448A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677559A (zh) * 2015-12-31 2016-06-15 杭州华为数字技术有限公司 一种检测方法及装置
JP6015778B2 (ja) * 2013-01-21 2016-10-26 日産自動車株式会社 変数アクセス一貫性検査装置、変数アクセス一貫性検査方法、変数アクセス一貫性検査プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6015778B2 (ja) * 2013-01-21 2016-10-26 日産自動車株式会社 変数アクセス一貫性検査装置、変数アクセス一貫性検査方法、変数アクセス一貫性検査プログラム
CN105677559A (zh) * 2015-12-31 2016-06-15 杭州华为数字技术有限公司 一种检测方法及装置
CN105677559B (zh) * 2015-12-31 2018-05-11 杭州华为数字技术有限公司 一种检测方法及装置

Similar Documents

Publication Publication Date Title
US5987248A (en) Debugging information display device
JPH0748182B2 (ja) プログラム・エラー検出方法
KR102117209B1 (ko) 바이너리 취약점 패치 방법 및 장치
JPS62118448A (ja) 不定値参照の検出方式
JPH06168111A (ja) デバッグ文の自動作成方式
JPH01177165A (ja) 配列の定義/引用関係検査方式
EP0526054A2 (en) Monitoring execution of a computer program to provide test coverage analysis
JPS60179847A (ja) 実配列および仮配列間の整合性チエツク方式
GB2258063A (en) Monitoring execution of a computer program to provide profile analysis
JP3165105B2 (ja) プログラムのトレーサ、コンパイラ及びリンカー
JPS63174130A (ja) 値が未設定の変数名の検出方式
KR20240088450A (ko) 보안체크코드의 유효성 점검 장치, 보안체크코드의 유효성 점검 방법 및 컴퓨터 프로그램
JP2005141406A (ja) コンパイラ検査システムおよび同プログラム
JPH04342037A (ja) プログラムのオペランドチェック方式
JPH05250221A (ja) シミュレータ実行方式
JPH01169641A (ja) ソフトエラー検出方式
JPH01154256A (ja) プログラムのエラー位置検出方法
US7627859B2 (en) Method for configuring non-script language library files to be run as scripts
JPS621041A (ja) 情報処理装置の診断回路
JPH03235135A (ja) プログラムの自動検査方式
JPH01309125A (ja) メモリ内容監視・比較・検出方式
JPH06282442A (ja) コンパイラ装置
JPS62138932A (ja) コンパイラ処理方式
JPH04205355A (ja) プログラム変数の使用検査装置
JPH07271605A (ja) C言語プログラムデバッグ方式