JPH0378031A - 例外検査/代入文オブジェクトの削除方式 - Google Patents

例外検査/代入文オブジェクトの削除方式

Info

Publication number
JPH0378031A
JPH0378031A JP21550589A JP21550589A JPH0378031A JP H0378031 A JPH0378031 A JP H0378031A JP 21550589 A JP21550589 A JP 21550589A JP 21550589 A JP21550589 A JP 21550589A JP H0378031 A JPH0378031 A JP H0378031A
Authority
JP
Japan
Prior art keywords
data
exception
assignment statement
range
intermediate language
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
JP21550589A
Other languages
English (en)
Inventor
Shinji Obara
小原 晋二
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 JP21550589A priority Critical patent/JPH0378031A/ja
Publication of JPH0378031A publication Critical patent/JPH0378031A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は目的プログラムを生成するためのコンパイラに
関し、特に代入文に対する例外検査オブジェクトの生成
処理を行うことができるコンパイラにおける例外検査/
代入文オブジェクトの削除方式に関する。
〔従来の技術〕
従来、この種のコンパイラでは、オプション等により代
入文に対する例外検査オブジェクトの生成処理を行える
ようになっているが、代入文の翻訳時には代入文の送出
し側のデータの値が受取り側のデータの値域に入ってい
るかどうかを検査する例外検査オブジェクトと代入文オ
ブジェクトとを無条件に生成していた。
〔発明が解決しようとする課題〕
上述した従来のコンパイラでは、代入文の翻訳時に代入
文の送出し側のデータの値が受取り側のデータの値域に
入っているかどうかを検査する例外検査オブジェクトと
代入文オブジェクトとを無条件に生成していたので、ソ
ースプログラムで宣言されたデータの値域があらかじめ
わかっていて代入文の送出し側のデータの値域と受取り
側のデータの値域とが共通の値域を有していないことが
明らかな場合でも、実行時にかならず例外が検出される
例外検査オブジェクトと例外検出のために実行されない
代入文オブジェクトとが生成されることになり、この結
果、生成される目的プログラムが大きくなり、また目的
プログラムの実行速度も遅くなるという欠点がある。
本発明の目的は、上述の点に鑑み、代入文の送出し側の
データの値域と受取り側のデータの値域とが共通の値域
を有していない場合に例外検査オブジェクトと代入文オ
ブジェクトとを生成しないようにして、目的プログラム
の大きさを小さくし、目的プログラムの実行速度を速く
するようにした例外検査/代入文オブジェクトの削除方
式を提供することにある。
〔課題を解決するための手段〕
本発明の例外検査/代入文オブジェクトの削除方式は、
代入文に対する例外検査オブジェクトの生成処理を行う
ことができるコンパイラにおいて、ソースプログラムで
宣言されたデータの値域を記憶するデータ属性記憶域と
、代入文の例外検査を行う中間言語が生成されている場
合に前記データ属性記憶域を参照して代入文の送出し側
のデータの値域と受取り側のデータの値域とが共通の値
域を有しているか否かを判断して共通の値域を有してい
ないときには例外検査オブジェクトおよび代入文オブジ
ェクトを生成しないようにする例外検査/代入文オブジ
ェクト削除手段とを有する。
〔作用〕
本発明の例外検査/代入文オブジェクトの削除方式では
、データ属性記憶域がソースプログラムで宣言されたデ
ータの値域を記憶し、例外検査/代入文オブジェクト削
除手段が代入文の例外検査を行う中間言語が生成されて
いる場合にデータ属性記憶域を参照して代入文の送出し
側のデータの値域と受取り側のデータの値域とが共通の
値域を有しているか否かを判断して共通の値域を有して
いないときには例外検査オブジェクトおよび代入文オブ
ジェクトを生成しないようにする。
〔実施例〕
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の一実施例に係る例外検査/代入文オ
ブジェクトの削除方式の構成を示すブロック図である0
本実施例の例外検査/代入文オブジェクトの削除方式は
、コンパイラ2が入力するソースプログラム1と、フロ
ントエンド部21および例外槍香/代入文オブジェクト
削除手段221を有するバックエンド部22を含むコン
パイラ2と、フロントエンド部21が出力しバックエン
ド部22が人力する中間言語3と、フロントエンド部2
1がデータ属性を出力しバンクエンド部22がデータ属
性を入力するデータ属性記憶域4と、バックエンド部2
2が出力する目的プログラム5とから、その主要部が構
成されている。
ソースプログラム1中の1A  RANGE  all
、a2 ”は、データAが最小値atから最大値a!ま
での値域をもつという宣言であり、“BRANGE  
b、 、、b、”は、データBが最小値b1から最大値
b2までの値域をもつという宣言である。また、“A:
=B、”は、データAにデータBを代入することを指示
する代入文である。
中間言語3中のRANGECHK  A、B”は、デー
タAに対してデータBを代入する前に例外検査を行うこ
とを指示する中間言語である。また、”A:=B;”は
、ソースプログラムl中の“AニーBi”と同様の意味
をもつ中間言語である。
データ属性記憶域4は、ソースプログラム1で宣言され
たデータAの値域(al、、aりおよびデータBの値域
(b+ 、、bt)を記憶する。
目的プログラム5中の〔〕で囲んだ部分の■〜■の行は
、例外検査オブジェクトを示し、上の行から順に説明す
ると、まず■ではデータBの値とデータAの最小値a1
とを比較し、■ではデータBの値がデータへの最小値a
1より小さければ例外処理を指すRANGE−ERRに
飛ぶ0次に、■ではデータBの値とデータAの最大値a
、とを比較し、■ではデータBの値がデータへの最大値
alより大きければ例外処理を指すRANGE−ERR
に飛ぶ。目的プログラム5中の〔〕で囲んだ部分の■の
行は、代入文オブジェクトを示し、データAにデータB
をデータAのデータ長1aだけ代入することを指示する
。また、目的プログラム5中の■の行は、後述するよう
に例外検査オブジェクト■〜■および代入文オブジェク
ト■の代わりに出力されることのある、例外処理を指す
RANGE−ERRに飛ぶことを指示するオブジェクト
を示す。
第2図を参照すると、例外検査/代入文オブジェクト削
除手段221における例外検査オブジェクトおよび代入
文オブジェクトの削除可否の判断処理は、受取り側デー
タ最小値/送出し側データ最大値比較ステップ2211
と、受取り側データ最大値/送出し側データ最小値比較
ステップ2212と、例外検査オブジェクトおよび代入
文オブジェクト削除不可判断ステップ2213と、例外
検査オブジェクトおよび代入文オブジェクト削除可判断
ステップ2214とからなる。
次に、このように構成された本実施例の例外検査/代入
文オブジェクトの削除方式の動作について説明する。
コンパイラ2が起動されると、まずフロントエンド部2
1は、ソースプログラム1を入力し、ソースプログラム
1で宣言されたデータAの値域〔al、、at)および
データBの値域(bl 、。
bx)をデータ属性記憶域4に出力する。また、フロン
トエンド部21は、ソースプログラム1を入力して中間
言語3を出力し、特にソースプログラム1中の代入文“
A:=B、”を入力した場合には、代入文“A:=B、
”の送出し側のデータBも受取り側のデータAもソース
プログラム1で値域を宣言されたデータであるので、中
間言語“A:=B;”の前に例外検査を行う中間言語“
RANGECHK  A、B″を生成する。
次に、バンクエンド部22は、中間言語3を入力して目
的プログラム5を出力する。特に、中間言語“RANG
ECHK  A、B”および@A:=B、”を入力する
と、バックエンド部22は、例外検査/代入文オブジェ
クト削除手段221によりデータ属性記憶域4のデータ
Aの値域(at、、am)およびデータBの値域(bl
 、、bz〕を入力し、中間言語“RA N G E 
CHK  AB”に対する例外検査オブジェクトおよび
中間言語“A:=8.”に対する代入文オブジェクトを
目的プログラム5中に出力するか否かの判定を行う、こ
の判定は、中間言語“AニーB:”の送出し側のデータ
Bの値域(bl、、bZ)と受取り側のデータAの値域
(al、、az)とが共通の値域を有するか否かを検査
することにより行われる。
詳しくは1、例外検査/代入文オブジェクト削除手段2
21は、データBの最大値b2がデータへの最小値a、
より小さい(未満)かどうかを判定しくステップ221
1)、より小さければデータBの値がデータAの値域(
al、、az)より小さいので実行時にかならず例外が
検出される例外検査オブジェクトおよび例外検出のため
に実行されない代入文オブジェクトの削除を可と判断す
る(ステップ2214)、また、データBの最大値bt
がデータAの最小値a1より小さくなければ、次にデー
タBの最小値b1がデータAの最大値a2より大きいか
どうかを判定しくステップ2212)、より大きければ
データBの値がデータAの値域(al、、3g)より大
きいので実行時にかならず例外が検出される例外検査オ
ブジェクトおよび例外検出のために実行されない代入文
オブジェクトの削除を可と判断する(ステップ2214
)。
データBの最小値b1がデータAの最大値a、より大き
くなければ、送出し側のデータBの値域〔bl、、bz
)と受取り側のデータAの値域(al、、at)とが共
通の値域を有しているので、例外検査オブジェクトおよ
び代入文オブジェクトの削除を不可と判断する(ステッ
プ2213)。
そして、例外検査オブジェクトおよび代入文オブジェク
トの削除を可と判断した場合には、例外検査/代入文オ
ブジェクト削除手段221は、バックエンド部22から
中間言語“RANGECHKA、B”に対する例外検査
オブジェクト■〜■および中間言語“A:=B;”に対
する代入文オブジェクト■を目的プログラム5に出力さ
せる代わりに、例外処理に飛ぶことを指示するオブジェ
クト■を目的プログラム5に出力させる。すなわち、送
出し側のデータBの値域(b+ 、、bt〕と受取り側
のデータム0M域(a+、、az)とが共通の値域を有
していなければ、目的プログラム5中の〔〕で囲んだ部
分である実行時にかならず例外が検出される例外検査オ
ブジェクト■〜■と例外検出のために実行されない代入
文オブジェクト■とは削除される。
なお、例外検査オブジェクトおよび代入文オブジェクト
を削除した場合には、コンパイラ2から使用者に対して
その旨のメツセージ等を通知するようにしてもよい。
〔発明の効果〕
以上説明したように本発明は、ソースプログラムで宣言
されたデータの値域に基づいて代入文の送出し側のデー
タの値域と受取り側のデータの値域とが共通の値域を存
しているかどうかを判断し共通の値域を有していない場
合には実行時にかならず例外が検出される例外検査オブ
ジェクトおよび例外検出のために実行されない代入文オ
ブジェクトを生成しないようにしたことにより、生成さ
れる目的プログラムの大きさを小さくすることができ、
また目的プログラムの実行速度を速くすることができる
という効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例に係る例外検査/代入文オブ
ジェクトの削除方式の構成を示すブロック図、 第2図は第1図中の例外検査/代入文オブジェクト削除
手段における例外検査オブジェクト削除可否の判断処理
を示す図である。 図において、 1・・・ソースプログラム、 2・・・コンパイラ、 3・・・中間言語、 4・・・データ属性記憶域、 5・・・目的プログラム、 21・・フロントエンド部、 22・・バンクエンド部、 221・例外検査/代入文オブジェクト削除手段である
。 第2図

Claims (1)

  1. 【特許請求の範囲】 代入文に対する例外検査オブジェクトの生成処理を行う
    ことができるコンパイラにおいて、ソースプログラムで
    宣言されたデータの値域を記憶するデータ属性記憶域と
    、 代入文の例外検査を行う中間言語が生成されている場合
    に前記データ属性記憶域を参照して代入文の送出し側の
    データの値域と受取り側のデータの値域とが共通の値域
    を有しているか否かを判断して共通の値域を有していな
    いときには例外検査オブジェクトおよび代入文オブジェ
    クトを生成しないようにする例外検査/代入文オブジェ
    クト削除手段と を有することを特徴とする例外検査/代入文オブジェク
    トの削除方式。
JP21550589A 1989-08-22 1989-08-22 例外検査/代入文オブジェクトの削除方式 Pending JPH0378031A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21550589A JPH0378031A (ja) 1989-08-22 1989-08-22 例外検査/代入文オブジェクトの削除方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21550589A JPH0378031A (ja) 1989-08-22 1989-08-22 例外検査/代入文オブジェクトの削除方式

Publications (1)

Publication Number Publication Date
JPH0378031A true JPH0378031A (ja) 1991-04-03

Family

ID=16673512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21550589A Pending JPH0378031A (ja) 1989-08-22 1989-08-22 例外検査/代入文オブジェクトの削除方式

Country Status (1)

Country Link
JP (1) JPH0378031A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001514411A (ja) * 1997-08-28 2001-09-11 マイクロソフト コーポレイション 信頼できない実行可能コードに関するセキュリティ向上

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001514411A (ja) * 1997-08-28 2001-09-11 マイクロソフト コーポレイション 信頼できない実行可能コードに関するセキュリティ向上

Similar Documents

Publication Publication Date Title
JPS6325733A (ja) コンパイラ処理方式
JPH0378031A (ja) 例外検査/代入文オブジェクトの削除方式
US20090019273A1 (en) Exception-based error handling in an array-based language
US20100153911A1 (en) Optimized storage of function variables
JPS6378231A (ja) 部分的プログラム結合方式
JPH0327444A (ja) 代入文の例外検査オブジェクト削除方式
JPH0395631A (ja) 条件文の目的プログラムの削減方式
WO2024092944A1 (zh) 一种数据处理方法、装置、存储介质及电子设备
JP3481268B2 (ja) ライブラリのモジュール管理方式
JPS60254255A (ja) メモリ走査方式
JP3179076B2 (ja) 流れ図からの原始プログラム自動生成方式
JPH06301549A (ja) プログラム翻訳装置
JPH05324344A (ja) 関数呼出し時の引数処理最適化方法
JP2526665B2 (ja) 割込み制御方式
JPH0477840A (ja) 障害解析情報収集方式
JPH04163637A (ja) セグメンテーション機能をもつ電子計算機システム
JPH01274241A (ja) 命令列生成方式
JPH06110702A (ja) 手続き呼出し翻訳装置
JPH04306741A (ja) 未定義変数検出装置
JPH05165984A (ja) データ駆動型計算機
JPH02239349A (ja) 仮想計算機の例外検出回路
JPH02193228A (ja) 情報処理装置
JPH03189775A (ja) データ駆動型計算機
JPS57187755A (en) Data driven computer system
JPH03282735A (ja) 並列処理システム