JPH0340137A - 組込み手続き実行時のアーギュメントの値の正当性の検査に対する範囲指定方式 - Google Patents

組込み手続き実行時のアーギュメントの値の正当性の検査に対する範囲指定方式

Info

Publication number
JPH0340137A
JPH0340137A JP17615089A JP17615089A JPH0340137A JP H0340137 A JPH0340137 A JP H0340137A JP 17615089 A JP17615089 A JP 17615089A JP 17615089 A JP17615089 A JP 17615089A JP H0340137 A JPH0340137 A JP H0340137A
Authority
JP
Japan
Prior art keywords
procedure
built
value
intermediate text
validity
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
JP17615089A
Other languages
English (en)
Inventor
Kiyomi Taniguchi
谷口 紀代美
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 JP17615089A priority Critical patent/JPH0340137A/ja
Publication of JPH0340137A publication Critical patent/JPH0340137A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はコンパイラ方式の高級言語で組まれたプログラ
ムを計算機で実行する際に■込み手続きのアーギュメン
トの値の正当性の検査を行うか否かを選択する組込め手
続き実行時のアーギュメントの値の正当性の検査に対す
る指定方式に関し、竹に組込み手続き実行時のアーギュ
メントの値の正当性の検査に対する範囲指定方式に関す
る。
〔征来の技術] 従来のコンパイラでは、コンパイラ方式の高級言語で組
まれたプログラム中で組込み手続きを引用した場合に、
・組込み手続きのアーギュメントの値の正当性の検査を
行うか否かをオプションにより選択することができるよ
うになっている。
通常、組込み手続きの実行時には性能が重視されている
が、組込み手続きのアーギュメントの値の正当性の検査
を行うと、検査を行わない場合に比べて実行時性能が低
下する。
また、実行時性能を考慮してアーギュメントの値の正当
性の検査を行わないと、組込み手続きの了−ギュメン1
−が不正な値であった場合、そのことが認識されずに不
正な結果となったり、プログラムが異常終了したりする
ことがある。
従来、この種の組込み手続ぎ実行時のアーギュメント−
の値の正当性の検査に対する指定方式では、同一のソー
スプログラム中にアーギュメント・の値の正当性の検査
が必要な組込み手続きが引用されている範囲とアーギュ
メントの値が保証されていて検査が必要でない組込み手
続きが引用されている範囲とがある場合等でも、すべて
の範囲に対して常に検査を行うか、あるいはまったく検
査を行わないかの選択しかできなかった。
〔発明が解決しようとする課題〕
上述した従来の組込み手続き実行時のアーギュメントの
値の正当性の検査に対する指定方式では、ソースプログ
ラム中のある特定の範囲の組込め手続きに対してはアー
ギュメントの値が保証されているがその他の範囲の組込
ゐ手続きに対しては保証されていない場合等でもアーギ
ュメントの値の正当性の検査を行うか否かの指定はすべ
ての範囲に対してしかできなかったので、7−ギユメン
トの値の正当性の検査を行う必要のない組込み手続き引
用の範囲においても検査を行うために実行時性能が低下
してしまうという欠点がある。
また、特に、組込み手続きを実行する命令列をオブジェ
クトプログラム中に内部展開する際にエラー処理につい
ては内部展開された部分では行わずに該組込み手続きを
実行する外部手続きを呼び出して該外部手続き内で行う
ような言語処理システムにおいては、必要のない場合で
も該外部手続きがオブジェクトプログラムに結合され、
ロードモジュールが大きくなってしまうという欠点があ
る。
本発明の目的は、上述の点に鑑み、組込み手続きを引用
しているソースプログラム中でアーギュメントの値の正
当性の検査を行うか否かの選択をコンパイル時のオプシ
ョンにより範囲を指定して選択できるようにした組込み
手続き実行時のアーギュメントの値の正当性の検査に対
する範囲指定方式を提供することにある。
〔課題を解決するための手段〕
本発明の組込み手続き実行時のアーギュメントの値の正
当性の検査に対する範囲指定方式は、高級言語からなる
ソースプログラムを翻訳してオブジェクトプログラムを
生成する際にソースプログラム中に組込み手続きを引用
している場合にアーギュメントの値の正当性の検査を行
うか否かをオプションにより選択できるコンパイラにお
いて、アーギュメント・の値の正当性の検査を行うか否
かをソースプログラム中の特定の範囲について指定する
オプションの解析によりオプション情報を生成するオプ
ション解析手段と、ソースプログラムを解析するソース
プログラム解析手段と、このソスプログラム解析手段に
より組込み手続きを9用していると解析された場合に前
記オプション解析手段によって生成されたオプション情
報に基づいて組込み手続きがアーギュメントの値の正当
性の検査を行う範囲内で引用されたか否かを判定する範
囲判定手段と、この範囲判定手段により組込み手続きが
アーギュメントの値の正当性の検査を行う範囲内で引用
されていると判定されたときに値の検査を行うことを示
す情報を付加した組込み手続き引用の中間テキストを生
成する値の検査を行う情報付加中間テキスト生成手段と
、前記範囲判定手段により組込み手続きがアーギュメン
トの値の正当性の検査を行う範囲内で引用されていない
と判定されたときに値の検査を行わないことを示す情報
を付加した組込み手続き引用の中間テキストを生威する
値の検査を行わない情報付加中間テキスト生成手段とを
含む中間テキスト生成部と、この中間テキスト生成部で
生威された中間テキストを解析する中間テキスト解析手
段と、この中間テキスト解析手段により組込み手続きを
引用していない中間テキストであると解析された場合に
前記値の検査を行う情報付加中間テキスト生成手段また
は前記値の検査を行わない情報イ1加中間テキスト生成
手段により中間テキストに付加された情報に基づいて組
込み手続きのアーギュメントの値の正当性の検査を行う
か否かを判定する組込み手続き引用の中間テキスト判定
手段と、この組込み手続き引用の中間テキスト判定手段
によりアーギュメントの値の正当性の検査を行わないこ
とを示す情報が付加された組込み手続き引用の中間テキ
ストであると判定された場合にはアーギュメントの値の
正当性の検査を行わずに組込み手続きを実行するような
命令列を生成する値の検査を行わない組込み手続き実行
時命令列生成手段と、前記組込み手続き引用の中間テキ
スト判定手段によりアーギュメントの値の正当性の検査
を行うことを示す情報が付加された組込み手続き引用の
中間テキストであると判定された場合にはアーギュメン
トの値の正当性を検査する命令列およびその値が正しけ
れば組込み手続きを実行し値が不正であればエラー処理
を行うような命令列を生成する値の検査を行う組込み手
続き実行時命令列生成手段とを含む命令列生成部とを有
する。
〔作用〕
本発明の組込み手続き実行時のアーギュメントの値の正
当性の検査に対する範囲指定方式では、オプション解析
手段がアーギュメント・の値の正当性の検査を行うか否
かをソースプログラム中の特定の範囲について指定する
オプションの解析によりオプション情報を生威し、中間
テキスト生成部のソースプログラム解析手段がソースプ
ログラムを解析し、範囲判定手段がソースプログラム解
析手段により組込み手続きを引用していると解析された
場合にオプション解析手段によって生成されたオプショ
ン情報に基づいて組込め手続きがアーギュメントの値の
正当性の検査を行う範囲内で引用されたか否かを判定し
、情報付加中間テキスト生成手段が範囲判定手段により
組込み手続きがアーギュメントの値の正当性の検査を行
う範囲内で引用されていると判定されたときに値の検査
を行うことを示す情報を付加した組込み手続き引用の中
間テキストを生成する値の検査を行い、値の検査を行わ
ない情報イ]加中間テキスト生成手段が範囲判定手段に
より組込み手続きがアーギュメントの値の正当性の検査
を行う範囲内で引用されていないと判定されたときに値
の検査を行わないことを示す情報を付加した組込み手続
き引用の中間テキストを生成し、命令列生成部の中間子
キス1〜解析手段が中間テキスト生成部で生成された中
間テキストを解析し、組込み手続き引用の中間テキスト
判定手段が中間テキスト解析手段によりAil込み手続
きを引用していない中間テキストであると解析された場
合に値の検査を行う情報付加中間テキスト生成手段また
は値の検査を行わない情報付加中間テキスト生成手段に
より中間テ・トストに付方Uされた情報に基づいて組込
み手続きのアーギュメントの値の正当性の検査を行うか
否かを判定し、値の検査を行わない組込み手続き実行時
命令列生成手段が組込み手続き引用の中間テキスト判定
手段によりアーギュメントの値の正当性の検査を行わな
いことを示す情報が付加された組込み手続き引用の中間
テキストであると判定された場合にはアーギュメントの
値の正当性の検査を行わずに組込み手続きを実行するよ
うな命令列を生成し、組込み手続き実行時命令列生成手
段が組込み手続き引用の中間テキスト判定手段によりア
ーギュメントの値の正当性の検査を行うことを示す情報
が伸動lされた組込み手続き引用の中間テキストである
と判定された場合にはアーギュメントの値の正当性を検
査する命令列およびその値が正しければ組込み手続きを
実行し値が不正であればエラー処理を行うような命令列
を生成する値の検査を行う。
〔実施例〕
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の一実施例に係る組込み手続き実行時
のアーギュメントの植の正当性の検査に対する範囲指定
方式が適用されたコンパイラ1の構成を示すブロノク図
である。このコンパイラ1は、組込み手続き引用時にア
ーギュメントの値の正当性の検査を行うか否かの選択を
ソースプログラム中の範囲を指定して選択することを可
能としたものである。すなわち、コンパイラ1は、利用
1 者が指定したオプションおよびソースプログラム2を入
力してオブジェクトプログラム3を出力するものであり
、オプション解析手段11と、オプション情報12と、
中間テキスト主成部13と、中間テキスト14と、命令
列生成部15とから、その主要部が構成されている。
中間テキスト生成部13は、ソースプログラム解析手段
131と、組込み手続き引用以外の中間テキスト生成手
段132と、範囲判定手段1331、値の検査を行わな
い情報付加中間テキスト生成手段1332および値の検
査を行う情報付加中間テキスト生成手段1333からな
る組込め手続き引用の中間テキスト生成手段133とを
含んで構成されている。
命令列生成部】5は、中間テキスト解析手段151と、
組込み手続き引用以外の命令列生成手段152と、組込
み手続き引用の中間テキスト判定手段1531.値の検
査を行わない組込み手続き実行時命令列生成手段153
2および値の検査を行う組込み手続き実行時命令列生成
手段15331′l からなる組込み手続き引用の命令列生成手段153とを
含んで構成されている。
次に、このように構成された本実施例の組込み手続き実
行時のアーギュメントの値の正当性の検査に対する範囲
指定方式の動作について説明する。
コンパイラ1は、利用者が指定したオプションおよびソ
ースプログラム2を入力する。
オプション解析手段11は、入力されたオプションを解
析してオプション情報12を生成する。
特に、オプション解析手段11は、組込み手続き実行時
のアーギュメントの値の正当性の検査を行うか否かをソ
ースプログラム中の特定の範囲について指定するオプシ
ョンの解析によりオプション情I[i12を生成する。
次に、中間テキスト生成部13では、ソースプログラム
解析手段131が、人力されたソースプログラムを解析
し、組込み手続きを引用していないソースプログラムな
らば組込み手続き引用以外の中間テキスト生成手段13
2に制御を移す。組込み手続き引用以外の中間テキスト
生戒手段132は、組込み手続き引用以外の中間テキス
ト14を生成する。
また、ソースプログラム解析手段131ば、組込み手続
きを引用しているソースプログラムならば、組込め手続
き引用の中間テキスト生成手段133に制御を移す。
組込み手続き引用の中間テキスト生成手段133は、範
囲判定手段1331によりアーギュメントの値の正当性
の検査を行う範囲内で引用されている組込み手続きかど
うかをオプション情報12に基づいて判定し、アーギュ
メントの値の正当性の検査を行う範囲外で引用されてい
る組込み手続きの場合には、値の検査を行わない情報付
加中間テキスI・生成手段1332により値の検査を行
わないという情報をイ」加した中間テキスト14を生成
する。一方、アーギュメントの値の正当性の検査を行う
範囲内で引用されている組込み手続きの場合には、組込
み手続き引用の中間テキスト生成手段133は、値の検
査を行う情報付加中間テキスト生成手段1333により
値の検査を行わないという情報を付加した中間テキス1
〜14を生成する。
続いて、命令列生成部15では、中間テキスト解析手段
151が、中間テキスト14を読み込み、組込み手続き
を引用していない中間テキスト14ならば、組込み手続
き引用以外の命令列生成手段152に制御を移す。組込
み手続き引用以外の命令列生成手段152は、組込み手
続き引用以外の命令列を生成してオブジェクトプログラ
ム3として出力する。
また、中間子キス1〜解析手段151は、中間テキスト
14が組込み手続きを引用している中間テキスト14な
らば、組込み手続き引用の命令列生成手段153に制御
を移す。
組込み手続き引用の命令列生成手段153は、組込み手
続き引用の中間テキスト判定手段1531によりアーギ
ュメントの値の正当性の検査を行うかどうかを中間テキ
スト14に付加された情報に基づいて判定し、アーギュ
メントの値の正当性の検査を行わない場合には、値の検
査を行わない5 組込み手続き実行時命令列生成手段1532により組込
み手続きのアーギュメントの値の検査を行わない組込み
手続きを呼び出す命令列を生成する。
アーギュメントの値の正当性の検査を行う場合には、組
込み手続き引用の命令列生成手段153ば、値の検査を
行う組込み手続き実行時命令列生成手段1533により
組込み手続きのアーギュメントの値の検査を行う組込み
手続きを呼び出す命令列およびその値が正しければ組込
み手続きを実行し値が不正であればエラー処理を行うよ
うな命令列を生成してオブジェクトプログラム3として
出力する。
このようにして、オプションによりソースプログラム中
の範囲を指定して引用されている組込み手続きのアーギ
ュメントの値の検査を行うか否かを選択したオブジェク
トプログラム3を生成することが可能になる。
〔発明の効果〕 以上説明したように本発明は、オプション解析手段と、
ソースプログラム解析手段と組込み手続b き引用以外の中間テキスト生成手段と範囲判定手段、植
の検査を行わない情報付加中間テキスト生成手段および
値の検査を行う情報付加中間テキスト生成手段からなる
組込み手続き引用の中間テキスト生成手段とを含む中間
テキスト生成部と、中間テキスト解析手段と組込み手続
き引用以外の命令列生成手段と組込み手続き引用の中間
テキスト判定手段、値の検査を行わない組込み手続き実
行時命令列生成手段および値の検査を行う組込み手続き
実行時命令列生成手段からなる組込み手続き引用の命令
列生成手段とを含む命令列生成部とを設けたことにより
、組込み手続きを引用しているソースプログラム中のあ
る特定の範囲では組込み手続きの了−キュメン1−の僅
の正当性の検査を必要とし他の範囲では組込み手続きの
アーギュメントの値が保証されていて検査が必要ない場
合等に利用者がコンパイル時のオプションによりアーギ
ュメントの値の正当性の検査を行うか否かを範囲を指定
して選択することが可能となり、実行時性能が向上する
という効果がある。
また、組込み手続きを実行する命令列をオブジェクトプ
ログラム中に内部展開する際にエラー処理については内
部展開された部分では行わずに該組込み手続きを実行す
る外部手続きを呼び出して該外部手続き内で行うような
言語処理システムにおいては、必要のない場合には該外
部手続きがオブジェクトプログラムに結合されないので
、ロードモジュールの大きさも小さくすることができる
という効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例に係る組込み手続き実行時の
アーギュメントの値の正当性の検査に対する範囲指定方
式が適用されたコンパイラの構成を示すブロソク図であ
る。 図において、 1・・・・コンパイラ、 2・・・・オプションおよびソースプログラム、3・・
・・オブジェクトプログラム、 11・・・オプション解析手段、 12・・・オプション情報、 13 ・・中間テキスト生成部、 14 ・・中間テキスト、 15・ ・命令列生成部、 131・・ソースプログラム解析手段、132・・組込
み手続き引用以外の中間テキスト生成手段、 133・・組込み手続き引用の中間テキスト生成手段、 151・・中間テキスト解析手段、 152 ・組込み手続き引用以外の命令列生成手段、 153・・組込み手続き引用の命令列生成手段、133
1・範囲判定手段、 X332・値の検査を行わない情報付加中間テキスト生
成手段、 1333・値の検査を行う情報付加中間テキスト生成手
段、 1531411込み手続き引用の中間テキスト判定手段
、 1532・植の検査を行わない組込み手続き実9 1533 行時命令列生成手段、 値の検査を行う組込み手続き実行時 命令列生成手段である。

Claims (1)

  1. 【特許請求の範囲】 高級言語からなるソースプログラムを翻訳してオブジェ
    クトプログラムを生成する際にソースプログラム中に組
    込み手続きを引用している場合にアーギュメントの値の
    正当性の検査を行うか否かをオプションにより選択でき
    るコンパイラにおいて、 アーギュメントの値の正当性の検査を行うか否かをソー
    スプログラム中の特定の範囲について指定するオプショ
    ンの解析によりオプション情報を生成するオプション解
    析手段と、ソースプログラムを解析するソースプログラ
    ム解析手段と、このソースプログラム解析手段により組
    込み手続きを引用していると解析された場合に前記オプ
    ション解析手段によって生成されたオプション情報に基
    づいて組込み手続きがアーギュメントの値の正当性の検
    査を行う範囲内で引用されたか否かを判定する範囲判定
    手段と、この範囲判定手段により組込み手続きがアーギ
    ュメントの値の正当性の検査を行う範囲内で引用されて
    いると判定されたときに値の検査を行うことを示す情報
    を付加した組込み手続き引用の中間テキストを生成する
    値の検査を行う情報付加中間テキスト生成手段と、前記
    範囲判定手段により組込み手続きがアーギュメントの値
    の正当性の検査を行う範囲内で引用されていないと判定
    されたときに値の検査を行わないことを示す情報を付加
    した組込み手続き引用の中間テキストを生成する値の検
    査を行わない情報付加中間テキスト生成手段とを含む中
    間テキスト生成部と、 この中間テキスト生成部で生成された中間テキストを解
    析する中間テキスト解析手段と、この中間テキスト解析
    手段により組込み手続きを引用していない中間テキスト
    であると解析された場合に前記値の検査を行う情報付加
    中間テキスト生成手段または前記値の検査を行わない情
    報付加中間テキスト生成手段により中間テキストに付加
    された情報に基づいて組込み手続きのアーギュメントの
    値の正当性の検査を行うか否かを判定する組込み手続き
    引用の中間テキスト判定手段と、この組込み手続き引用
    の中間テキスト判定手段によりアーギュメントの値の正
    当性の検査を行わないことを示す情報が付加された組込
    み手続き引用の中間テキストであると判定された場合に
    はアーギュメントの値の正当性の検査を行わずに組込み
    手続きを実行するような命令列を生成する値の検査を行
    わない組込み手続き実行時命令列生成手段と、前記組込
    み手続き引用の中間テキスト判定手段によりアーギュメ
    ントの値の正当性の検査を行うことを示す情報が付加さ
    れた組込み手続き引用の中間テキストであると判定され
    た場合にはアーギュメントの値の正当性を検査する命令
    列およびその値が正しければ組込み手続きを実行し値が
    不正であればエラー処理を行うような命令列を生成する
    値の検査を行う組込み手続き実行時命令列生成手段とを
    含む命令列生成部と を有することを特徴とする組込み手続き実行時のアーギ
    ュメントの値の正当性の検査に対する範囲指定方式。
JP17615089A 1989-07-07 1989-07-07 組込み手続き実行時のアーギュメントの値の正当性の検査に対する範囲指定方式 Pending JPH0340137A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17615089A JPH0340137A (ja) 1989-07-07 1989-07-07 組込み手続き実行時のアーギュメントの値の正当性の検査に対する範囲指定方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17615089A JPH0340137A (ja) 1989-07-07 1989-07-07 組込み手続き実行時のアーギュメントの値の正当性の検査に対する範囲指定方式

Publications (1)

Publication Number Publication Date
JPH0340137A true JPH0340137A (ja) 1991-02-20

Family

ID=16008536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17615089A Pending JPH0340137A (ja) 1989-07-07 1989-07-07 組込み手続き実行時のアーギュメントの値の正当性の検査に対する範囲指定方式

Country Status (1)

Country Link
JP (1) JPH0340137A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04350765A (ja) * 1991-05-28 1992-12-04 Nec Corp コンパイラのベクトル化方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04350765A (ja) * 1991-05-28 1992-12-04 Nec Corp コンパイラのベクトル化方式

Similar Documents

Publication Publication Date Title
EP0686916A1 (en) Method and apparatus for testing software
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
US20140208431A1 (en) Automated tools for building secure software programs
US5132972A (en) Assembly language programming potential error detection scheme sensing apparent inconsistency with a previous operation
WO2023133932A1 (zh) 一种基于动态传递参数的ate装置和传输方法
US20040083088A1 (en) Analysis of the performance of a portion of a data processing system
JPH0340137A (ja) 組込み手続き実行時のアーギュメントの値の正当性の検査に対する範囲指定方式
US20050050524A1 (en) Generating software test information
WO2022036783A1 (zh) 一种c语言的指针类型分析方法
Lloyd et al. Gpucheck: Detecting cuda thread divergence with static analysis
JPH01177165A (ja) 配列の定義/引用関係検査方式
US5029170A (en) Assembly language programming potential error detection scheme which recognizes incorrect symbolic or literal address constructs
JPH02190935A (ja) 構文解析ルールの組込機能を持つプログラムのコンパイル方式
JPH046019B2 (ja)
Baresel et al. Applying evolutionary testing to search for critical defects
Chen et al. Debugging with an enriched dependency-based model or how to distinguish between aliasing and value assignment
JPH1011276A (ja) プログラム移植方法
JP3047418B2 (ja) ベクトル化処理方式
JPH01154256A (ja) プログラムのエラー位置検出方法
Ramalho et al. ESBMC 5.0: An industrial-strength C model checker
JP3167386B2 (ja) プログラム自動並列化方法
CN116450501A (zh) 一种提升静态分析精度的符号分析方法
JP2728504B2 (ja) 入力命令文検査装置
JPH0298750A (ja) バグ修正装置
JPH0337735A (ja) 構造化プログラミングのチェック方式