JPS63174130A - 値が未設定の変数名の検出方式 - Google Patents

値が未設定の変数名の検出方式

Info

Publication number
JPS63174130A
JPS63174130A JP62005801A JP580187A JPS63174130A JP S63174130 A JPS63174130 A JP S63174130A JP 62005801 A JP62005801 A JP 62005801A JP 580187 A JP580187 A JP 580187A JP S63174130 A JPS63174130 A JP S63174130A
Authority
JP
Japan
Prior art keywords
variable name
variable
value
information
token
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
JP62005801A
Other languages
English (en)
Inventor
Yoshitaka Kato
加藤 喜隆
Michiyuki Ushinmei
宇新明 道行
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 JP62005801A priority Critical patent/JPS63174130A/ja
Publication of JPS63174130A publication Critical patent/JPS63174130A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はソースプログラムより値を設定せずに参照すべ
き変数名をリスト上に出力するコンパイラに関し、特に
斯かるコンパイラに適用される値が未設定である変数名
の検出方式に関する。
(従来の技術) 従来、参照されている変数名で、値が設定されているか
否かは、相互に参照リストで調べることができるが、集
団項目の変数名への代入命令があっても、集団項目に従
属する項目の変数名は値が未設定であると相互参照リス
ト上に表示されている。また、ファイルからの入力命令
が送出されていても、データが読込まれる領域の変数名
は、値が未設定であると相互参照リスト上に表示されて
いる。
さらに、値が未設定であるか否かを調べるには、すべて
の変数名について順番に相互参照リストを調べて行りて
いる。
(発明が解決しようとする問題点) 上述した従来の相互参照リストでは、値が未設定の変数
名の検出を順番に行うわずられしさがあり、集団項目の
変数名への代入命令によりて値が設定された場合には従
属項目の変数名が相互参照リスト上では未設定と表示さ
れ、またファイルからの入力命令によりて値が設定され
た場合には変数名は相互参照リスト上では未設定と表示
されるので、値が未設定の変数名の検出が十分に活用さ
れず、変数名に値を設定しないで参照した場合のプログ
ラムの実行に支障が生ずることがあると云う欠点がある
。例えば、変数名に定数を設定し、定数の代わりに変数
名を使用するプログラムにおいて、定数を設定しなかっ
た場合には思いもよらぬ異常動作をするおそれがあると
云う欠点がある。
本発明の目的は、ソースプログラムをコンパイルして値
が未設定の変数名リストを出力し、未設定の変数名だけ
が出力されている該当出力リストだけを参照することに
より上記欠点を除去し、変数名に値を設定しないで参照
した場合に支障なくプログラムを実行できるように構成
した値が未設定の変形基の検出方式を提供することにあ
る (問題点を解決するための手段) 本発明による値が未設定の変数名の検出方式は、ソース
プログラムのデータ部入力手段と、データ部構文解析手
段と、変数名トークン出力手段と、ソースプログラムの
手続き部入力手段と、手続き部構文解析手段と、参照・
設定情報付加手段と、変数名トークン入力手段と、値が
未設定の変数名の検出手段と、値が未設定の変数名の出
力手段とを具備して構成したものである。
ソースプログラムのデータ部入力手段は、ソースプログ
ラムのデータ部を入力するためのものである。
データ部構文解析手段は、データ部の構文を解析して変
数名に対する初期値の有無の判別、パラメータであるか
否かの判別、内部属性データであるか否かの判別、およ
び外部属性データであるか否かの判別を行って結果を認
識するためのものである。
変数名トークン出力手段は、データ部構文解析手段で得
られた変数名に対する各判別を示す情報を変数名ととも
に変数名トークンとしてディクショナリに出力するため
のものである。
ソースプログラムの手続き部入力手段は、ソースプログ
ラムの手続き部を入力するためのものである。
手続き部構文解析手段は、手続き部のなかの命令の構文
を解析し、変数名に対して値が設定されているか、変数
名に対して値が参照されているか、構文が集団項目を表
わすものであるか、構文が基本項目を表わすものである
か、あるいはファイルの入出力命令により情報が参照お
よび設定されているかを認識するためのものである。
参照・設定情報付加手段は、手続き部槽文解析手段で参
照および設定された情報をもとにし【ディクシロナリの
なかの対応する変数名トークンに対して参照情報および
設定情報を付加し、特に変数名が集団項目を表わすもの
であるときには該当従属項目の変数名においても変数名
トークンに対して参照情報および設定情報を付加し、さ
らにファイルの入出力命令により情報が参照および設定
されているときにはファイルに関するすべての変数名に
おいても変数名トークンに対して参照情報および設定情
報を付加するためのものである。
変数名トークン入力手段は、ディクショナリのなかの変
数名トークンを入力するだめのものである。
値が未設定の変数名の検出手段は、変数名トーンに対し
て設定されている初期値の有無を表わす情報から値を設
定しないで参照している変数名を検出するためのもので
ある。
値が未設定の変数名の出力手段は、値が未設定の変数名
リストを出力するためのものである。
(実施例) 次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明による値が未設定の変数名の検出方式
を適用したコンパイルシステムの一実施例を示すブロッ
ク図である。
第1図においてコンパイルシステムは、ソースプログラ
ムライブラリ1と、ソースプログラムのデータ部入力手
段2と、データ部構文解析手段3と、変数名トークン出
力手段4と、主記憶装置5と、ソースプログラムの手続
き部入力手段6と、手続き部槽文解析手段7と、参照・
設定情報付加手段8と、変数名トークン入力手段9と、
値が未設定の変数名の検出手段10と、値が未設定の変
数名の出力手段11と、値が未設定の変数名リスト12
とから構成される。いっぽう、主記憶装置5には、コン
パイルに際して複数の変数名トークンの集合であるディ
クショナリAか形成されている。
ソースプログラムのデータ部入力手段2は、ソースプロ
グラムライブラリ1からソースプログラムのデータ部を
入力する。データ部構文解析手段3はデータ部を構文解
析し、変数名に対゛する初期値の有無の判別、パラメー
タであるか否かの判別、内部属性データであるか否かの
判別、および外部属性データであるか否かの判別を行っ
て結果を認識し、これらの情報を変数名トークン出力手
段4により変数名とともに変数名トークンとしてディク
ショナリAに出力する。
また、ソースプログラムの手続き部入力手段6は、ソー
スプログラムライブラリ1からソースプログラムの手続
き部を入力し、手続き部槽文解析手段7は手続き部の命
令について構文解析し、変数名に対して値が設定されて
いるか、変数名に対する値が参照されているか、構文が
集合項目を表わすものであるか、構文が基本項目を表わ
すものであるのか、あるいはファイルの入出力命令によ
り情報が参照、および設定されているかを認識する。参
照・設定情報付加手段8は、手続き部槽文解析手段7で
得られた設定情報および参照情報をもとにして第2図の
フローチャートに示す平原でディクショナリAの対応す
る変数名トークンに参照情報および設定情報を付加する
第2図においては、最初のステップ21でファイルから
の入力命令が判定され、ファイルからの入力命令である
場合にはステップ22で入力命令によって値が設定され
る変数名のすべてに対して設定された”旨を表わす情報
を対応する変数名トークンに設定する。また、ステップ
23でファイルへの出力命令が判定され、ファイルへの
出力命令である場合にはステップ24で出力命令によっ
て値が参照される変数名のすべてに対して°参照された
旨を表わす情報を対応する変数名トークンに設定する。
ステップ25では変数名の参照が判定され、参照を表わ
すものであればステップ26で集団項目であるか否かが
判定され、集団項目であればステップ27で集団項目の
変数名と、その従属項目の変数名化する変数名トークン
に設定する。ステップ25で基本項目であると判定され
た場合には、ステ化する変数名トークンに設定する。ス
テップ25で変数名への設定であると判定された場合に
は、ステップ29で集団項目であるか否かが判定され、
集団項目であればステップ30で集団項目の変数名と、
その従属項目の変数名に対して”設定された 旨を表わ
す情報とを対応する変数名トークンに設定する。ステッ
プ29で基本項目であると判定された場合には、ステッ
プ31で 設定された 旨を表わす情報を対応する変数
名トークンに設定する。
説明の便宜上、ファイルの入出力命令と代入命令等によ
る変数名への設定および参照を例示したが、実際には暗
黙に変数名に対して参照および設定する命令を細分させ
てもよい。
変数名トークン入力手段9では、ディクショナIJ A
の変数名トークンを入力する。値が未設定の変数名の検
出手段10は、変数名トークンに対して設定されている
初期値の有無を表わす情報、設定を表わす情報、および
参照を表わす情報等をもとにして、第3図のフローチャ
ートに示す手順により処理を実行し、値を設定しないで
参照を行っている変数名を検出する。
最初のステップ41で、変数名トークンの設定された 
旨を表わす情報の有無が判定され、変数名に設定されて
いなければステップ42で変数名トークンの1参照され
た”旨を表わす情報の有無が判定される。変数名が参照
されていれば、ステップ43で変数名トークンの初期値
の有無を表わす情報が判定され、初期値がなければステ
ップ44で変数名トークンのパラメータであるか否かを
表わす情報が判定され、パラメータであれば、本プログ
ラムでは値が未設定であるので、他のプログラムとの関
連を調べる必要がある変数名である旨がステップ45で
検出される。ステップ46で変数名トークンの外部属性
データであるか否かを表わす情報が判定され、外部属性
データであれば本プログラムでは値が未設定であるので
、他のプログラムとの関連を調べる必要がある変数名で
ある旨がステップ45で検出される。ステップ46の判
定で変数名が内部属性データであれば、ステップ47で
値が未設定の変数名である旨が検出される。
値が未設定の変数名の出力手段11では、値が未設定の
変数名の検出手段10によりて検出された値が未設定の
変数名、および本プログラムでは値が未設定であるので
、他のプログラムとの関連を調べる必要がある変数名が
リスト上に出力される。
(発明の効果) 以上説明したように本発明は、ソースプログラムをコン
パイルして値が未設定の変数名リストを出力し、未設定
の変数名だけが出力されている該当出力リストだけを参
照することにより、変数名に定数を設定し定数の代わり
に変数名を使用するプログラムにおいて、定数を設定し
なかった場合の異常動作を防止することができ、プログ
ラムの生産性および品質性を向上できると云う効果があ
る。
【図面の簡単な説明】
第1図は、本発明により値が未設定の変数名の検出方式
の一実施例を適用するコンパイルシステムを示すブロッ
ク図である。 第2甲は、第1図の参照・設定情報付加手段による処理
の実例を示すフローチャートである。 第3図は、値が未設定の変数名の検出手段による処理の
実例を示すフローチャートである。 1・・・ソースプログラムライブラリ 2・・・ソースプログラムのデータ部入力手段3・・・
データ部構文解析手段 4・・・変数名トークン出力手段 5・・・主記憶装置 6・・・ソースプログラムの手続き部入力手段7・・・
手続き部構文解析手段 8・・・参照・設定情報付加手段 9・・・変数名トークン入力手段 10・・・値が未設定の変数名の検出手段11・・・値
が未設定の変数名の出力手段12・・・値が未設定の変
数名リスト 特許出願人  日本電気株式会社 代理人弁理士 井 ノ ロ    壽 才2図

Claims (1)

    【特許請求の範囲】
  1. ソースプログラムのデータ部を入力するためのソースプ
    ログラムのデータ部入力手段と、前記データ部の構文を
    解析して変数名に対する初期値の有無の判別、パラメー
    タであるか否かの判別、内部属性データであるか否かの
    判別、および外部属性データであるか否かの判別を行っ
    て結果を認識するためのデータ部構文解析手段と、前記
    データ部構文解析手段で得られた前記変数名に対する前
    記各判別を示す情報を前記変数名とともに変数名トーク
    ンとしてディクショナリに出力するための変数名トーク
    ン出力手段と、前記ソースプログラムの手続き部を入力
    するためのソースプログラムの手続き部入力手段と、前
    記手続き部のなかの命令の構文を解析し、前記変数名に
    対して値が設定されているか、前記変数名に対して前記
    値が参照されているか、前記構文が集団項目を表わすも
    のであるか、前記構文が基本項目を表わすものであるか
    、あるいはファイルの入出力命令により情報が参照およ
    び設定されているかを認識するための手続き部構文解析
    手段と、前記手続き部構文解析手段で参照および設定さ
    れた前記情報をもとにして前記ディクショナリのなかの
    対応する前記変数名トークンに対して参照情報および設
    定情報を付加し、特に前記変数名が前記集団項目を表わ
    すものであるときには該当従属項目の変数名においても
    前記変数名トークンに対して参照情報および設定情報を
    付加し、さらに前記ファイルの入出力命令により情報が
    参照および設定されているときには前記ファイルに関す
    るすべての変数名においても前記変数名トークンに対し
    て参照情報および設定情報を付加するための参照・設定
    情報付加手段と、前記ディクショナリのなかの前記変数
    名トークンを入力するための変数名トークン入力手段と
    、前記変数名トークンに対して設定されている前記初期
    値の有無を表わす情報から値を設定しないで参照してい
    る変数名を検出するための値が未設定の変数名の検出手
    段と、前記値が未設定の変数名リストを出力するための
    値が未設定の変数名の出力手段とを具備して構成したこ
    とを特徴とする値が未設定の変数名の検出方式。
JP62005801A 1987-01-13 1987-01-13 値が未設定の変数名の検出方式 Pending JPS63174130A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62005801A JPS63174130A (ja) 1987-01-13 1987-01-13 値が未設定の変数名の検出方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62005801A JPS63174130A (ja) 1987-01-13 1987-01-13 値が未設定の変数名の検出方式

Publications (1)

Publication Number Publication Date
JPS63174130A true JPS63174130A (ja) 1988-07-18

Family

ID=11621181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62005801A Pending JPS63174130A (ja) 1987-01-13 1987-01-13 値が未設定の変数名の検出方式

Country Status (1)

Country Link
JP (1) JPS63174130A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0289104A (ja) * 1988-09-26 1990-03-29 Mitsubishi Electric Corp デイジタル制御装置用プログラミング装置
US6968543B2 (en) * 2000-03-10 2005-11-22 Fujitsu Limited Information processing apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0289104A (ja) * 1988-09-26 1990-03-29 Mitsubishi Electric Corp デイジタル制御装置用プログラミング装置
US6968543B2 (en) * 2000-03-10 2005-11-22 Fujitsu Limited Information processing apparatus

Similar Documents

Publication Publication Date Title
US7016807B2 (en) Device and method for monitoring a program execution
US5255385A (en) Method of testing program, and compiler and program testing tool for the method
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
US5987248A (en) Debugging information display device
JPH0748182B2 (ja) プログラム・エラー検出方法
JPS63174130A (ja) 値が未設定の変数名の検出方式
Xavier et al. Type checking Circus specifications
JPH01177165A (ja) 配列の定義/引用関係検査方式
JPH0363838A (ja) ソフトウェアプログラムの検査方法
JPH08272623A (ja) プログラム解析装置及びプログラム解析方法
JPH01155438A (ja) コンパイラ試験方式
JP3167386B2 (ja) プログラム自動並列化方法
JPS62118448A (ja) 不定値参照の検出方式
JP3047418B2 (ja) ベクトル化処理方式
JPH07129408A (ja) 言語処理プログラムの実行方式
JPH08194624A (ja) 実行形式プログラム作成方法
JPS58169637A (ja) コンパイル処理方式
Norman et al. IOGen: toward an automated tool for production of reliable and valid test suites
JPH0675816A (ja) ループ処理誤り検出装置
JPH0264822A (ja) ファイル処理エラー検出方法
JPH04273328A (ja) クロスリファレンスリスト生成方式
JPH1091479A (ja) プログラム・デバッグ・システム、プログラム・デバッグ方法およびデバッグ用プログラムを記憶した記憶媒体
JPH0477928A (ja) 言語処理装置
JPH04330521A (ja) クロスリファレンスリスト生成方式
JPH04149646A (ja) スタブ部品記述によるプログラム展開方式