JP2655614B2 - 添字の不正使用検査方式 - Google Patents
添字の不正使用検査方式Info
- Publication number
- JP2655614B2 JP2655614B2 JP63303790A JP30379088A JP2655614B2 JP 2655614 B2 JP2655614 B2 JP 2655614B2 JP 63303790 A JP63303790 A JP 63303790A JP 30379088 A JP30379088 A JP 30379088A JP 2655614 B2 JP2655614 B2 JP 2655614B2
- Authority
- JP
- Japan
- Prior art keywords
- subscript
- unauthorized use
- loop
- loop structure
- use inspection
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) 本発明は言語処理システムのコンパイラに関し、特に
配列要素の添字が定数でないときの添字の不正使用検査
方式に関する。
配列要素の添字が定数でないときの添字の不正使用検査
方式に関する。
(従来の技術) 従来、配列要素の添字の値が、配列の上限値および下
限値を超えて不正に使用されているか否かの検査は、次
のようにして行つていた。まず、引用された添字の値
と、配列の宣言による添字の上限値および下限値とを比
較し、検査する実行時ルーチンを用意しておく。続い
て、コンパイラは添字が引用されている箇所がループ構
造内に含まれているか否かとは無関係に、添字が引用さ
れたときに、上記実行時ルーチンが呼出されるようなオ
ブジエクトプログラムを生成する。
限値を超えて不正に使用されているか否かの検査は、次
のようにして行つていた。まず、引用された添字の値
と、配列の宣言による添字の上限値および下限値とを比
較し、検査する実行時ルーチンを用意しておく。続い
て、コンパイラは添字が引用されている箇所がループ構
造内に含まれているか否かとは無関係に、添字が引用さ
れたときに、上記実行時ルーチンが呼出されるようなオ
ブジエクトプログラムを生成する。
最後に、プログラムが実行されたときには、コンパイ
ラは添字が引用されるたびに上記実行時ルーチンを呼出
す。
ラは添字が引用されるたびに上記実行時ルーチンを呼出
す。
例えば、第4図に示すようなFORTRANソースプログラ
ムの場合、第5図に示すような実行順序のオブジエクト
プログラムが生成されていた。
ムの場合、第5図に示すような実行順序のオブジエクト
プログラムが生成されていた。
つまり、ループ構造内に含まれている配列要素Aの添
字式I*4−3に対する添字の不正使用検査は、その添
字が引用されるごとに、ループ回数分だけ行われてい
た。
字式I*4−3に対する添字の不正使用検査は、その添
字が引用されるごとに、ループ回数分だけ行われてい
た。
(発明が解決しようとする課題) 上述した従来の方式では、翻訳時にループ長が不定の
ループ構造内に含まれている配列要素の添字の不正使用
検査は、ループの指標変数が初期値の値ならびに終値の
値のみの検査を行えばよいような場合でも、第3図の実
行順序に示すように、添字が引用されるごとに、添字の
不正使用を検査するための実行時ルーリンがループ回数
分だけ呼出されてしまう。このため、ループ長が大きく
なればなる程、プログラムの実行時間が長くなつてしま
うという欠点がある。
ループ構造内に含まれている配列要素の添字の不正使用
検査は、ループの指標変数が初期値の値ならびに終値の
値のみの検査を行えばよいような場合でも、第3図の実
行順序に示すように、添字が引用されるごとに、添字の
不正使用を検査するための実行時ルーリンがループ回数
分だけ呼出されてしまう。このため、ループ長が大きく
なればなる程、プログラムの実行時間が長くなつてしま
うという欠点がある。
本発明の目的は、言語処理システムのコンパイラにお
いてソースプログラムを解析し、配列要素の添字のうち
で添字式が定数でない添字を検出したとき、翻訳時に添
字のループ長が不定のループ構造内に含まれているか否
かを検査するとともに、翻訳時にそのループ長が不定の
ループ構造内に含まれていると判定された場合には、添
字の値が配列の範囲内であるか否かの検査をループ構造
の直前で行うように制御するための情報を生成し、生成
された添字の不正使用検査情報をもとに、添字の不正使
用検査をループ構造の直前で行うオブジエクトプログラ
ムを生成することによつて上記欠点を除去し、プログラ
ムの実行時間を短縮できるように構成した添字の不正使
用検査方式を提供することにある。
いてソースプログラムを解析し、配列要素の添字のうち
で添字式が定数でない添字を検出したとき、翻訳時に添
字のループ長が不定のループ構造内に含まれているか否
かを検査するとともに、翻訳時にそのループ長が不定の
ループ構造内に含まれていると判定された場合には、添
字の値が配列の範囲内であるか否かの検査をループ構造
の直前で行うように制御するための情報を生成し、生成
された添字の不正使用検査情報をもとに、添字の不正使
用検査をループ構造の直前で行うオブジエクトプログラ
ムを生成することによつて上記欠点を除去し、プログラ
ムの実行時間を短縮できるように構成した添字の不正使
用検査方式を提供することにある。
(課題を解決するための手段) 本発明による添字の不正使用検査方式は添字式検出手
段と、ループ構造検査手段と、添字の不正使用検査情報
生成手段と、添字の不正使用検査コード生成手段とを具
備して構成したものである。
段と、ループ構造検査手段と、添字の不正使用検査情報
生成手段と、添字の不正使用検査コード生成手段とを具
備して構成したものである。
添字式検出手段は、言語処理システムのコンパイラに
おいてソースプログラムを解析し、配列要素の添字のう
ちで添字式が定数ではない添字を検出するためのもので
ある。
おいてソースプログラムを解析し、配列要素の添字のう
ちで添字式が定数ではない添字を検出するためのもので
ある。
ループ構造検査手段は、翻訳時な添字式検出手段で検
出された添字のループ長が不定のループ構造内に含まれ
ているかを検査するためのものである。
出された添字のループ長が不定のループ構造内に含まれ
ているかを検査するためのものである。
添字の不正使用検査情報生成手段は、翻訳時に添字式
検出手段で検出された添字のループ長が不定のループ構
造内に含まれていると判定された場合には、添字の値が
配列の範囲内であるか否かの検査をループ構造の直前で
行うように制御する情報を生成するためのものである。
検出手段で検出された添字のループ長が不定のループ構
造内に含まれていると判定された場合には、添字の値が
配列の範囲内であるか否かの検査をループ構造の直前で
行うように制御する情報を生成するためのものである。
添字の不正使用検査コード生成手段は、添字の不正使
用検査情報生成手段により生成された添字の不正使用検
査情報をもとにループの指標変数が初期値のときと終値
のときにそれぞれ添字の不正使用検査を行う実行時ルー
チンを呼び出し、添字の不正使用検査を前記ループ構造
の直前で行うオブジェクトプログラムを生成するための
ものである。
用検査情報生成手段により生成された添字の不正使用検
査情報をもとにループの指標変数が初期値のときと終値
のときにそれぞれ添字の不正使用検査を行う実行時ルー
チンを呼び出し、添字の不正使用検査を前記ループ構造
の直前で行うオブジェクトプログラムを生成するための
ものである。
(実 施 例) 次に、本発明について図面を参照して詳細に説明す
る。
る。
第1図は、本発明による添字の不正使用検方式の一実
施例であるコンパイラのブロツク図である。
施例であるコンパイラのブロツク図である。
第1図において、1はソースプログラム、2はコンパ
イラ、3は添字式検出手段、4はループ構造検査手段、
5は添字の不正使用検査情報生成手段、6は添字の不正
使用検査コード生成手段、7はオブジエクトプログラム
である。
イラ、3は添字式検出手段、4はループ構造検査手段、
5は添字の不正使用検査情報生成手段、6は添字の不正
使用検査コード生成手段、7はオブジエクトプログラム
である。
第1図において、コンパイラ2は添字式検出手段3
と、ループ構造検査手段4と、添字の不正使用検査情報
生成手段5と、添字の不正使用検査コード生成手段6と
を具備して構成されている。コンパイラ2はソースプロ
グラム1を読込み、オブジエクトプログラム7を生成す
るように構成されている。
と、ループ構造検査手段4と、添字の不正使用検査情報
生成手段5と、添字の不正使用検査コード生成手段6と
を具備して構成されている。コンパイラ2はソースプロ
グラム1を読込み、オブジエクトプログラム7を生成す
るように構成されている。
添字式検出手段3はソースプログラム1を解析して、
配列要素の添字のなかで、添字式が定数ではない線形の
添字式を検出する。
配列要素の添字のなかで、添字式が定数ではない線形の
添字式を検出する。
ループ構造検査手段4はソースプログラム1を解析
し、添字式検出手段3により検出された添字のループ長
が不定のループ構造内に含まれているか否かを検査す
る。
し、添字式検出手段3により検出された添字のループ長
が不定のループ構造内に含まれているか否かを検査す
る。
添字式検出手段3で検出された添字のループ長が不定
のループ構造内に含まれているとループ構造検査手段4
において判定された場合、添字の不正使用検査情報生成
手段5は、添字の値が配列の範囲内であるか否かの検査
を翻訳時にループ構造の直前で行うように制御するため
の情報を生成する。
のループ構造内に含まれているとループ構造検査手段4
において判定された場合、添字の不正使用検査情報生成
手段5は、添字の値が配列の範囲内であるか否かの検査
を翻訳時にループ構造の直前で行うように制御するため
の情報を生成する。
添字の不正使用検査情報生成手段5において生成され
た添字の不正使用検査情報をもとにして添字の不正使用
検査コード生成手段6は添字の不正使用検査をループ構
造の直前で行うオブジエクトプログラム7を生成する。
た添字の不正使用検査情報をもとにして添字の不正使用
検査コード生成手段6は添字の不正使用検査をループ構
造の直前で行うオブジエクトプログラム7を生成する。
次に、このように構成された本実施例の添字の不正使
用検査方式の動作について説明する。
用検査方式の動作について説明する。
例えば、第2図に示すようなFORTRANソースプログラ
ムがソースプログラム1として読込まれると、添字式検
出手段3は、添字式が定数ではない配列要素Aの添字式
I*4−3を検出する。
ムがソースプログラム1として読込まれると、添字式検
出手段3は、添字式が定数ではない配列要素Aの添字式
I*4−3を検出する。
次に、ループ構造検査手段4は、添字式検出手段3で
検出された配列要素Aの添字式I*4−3が、翻訳時に
ループ長が不定のループ構造内に含まれているか否かを
検査する。この例の場合、添字式I*4−3は、第2図
のに示す翻訳時にループ長が不定なループ内に含まれ
ているものと判定される。
検出された配列要素Aの添字式I*4−3が、翻訳時に
ループ長が不定のループ構造内に含まれているか否かを
検査する。この例の場合、添字式I*4−3は、第2図
のに示す翻訳時にループ長が不定なループ内に含まれ
ているものと判定される。
ループ構造検査手段4で、添字式I*4−3は第2図
のに示す翻訳時にループ長が不定なループ内に含まれ
ているものと判定されたことから、続いて、添字の不正
使用検査情報生成手段5は、添字の値が配列の範囲内で
あるか否かを調べる。添字の不正使用検査をループ構造
の直前で行うように制御するための情報、ならびに配列
の宣言による配列の大きさ、配列の上限値および下限値
などの情報を生成する。
のに示す翻訳時にループ長が不定なループ内に含まれ
ているものと判定されたことから、続いて、添字の不正
使用検査情報生成手段5は、添字の値が配列の範囲内で
あるか否かを調べる。添字の不正使用検査をループ構造
の直前で行うように制御するための情報、ならびに配列
の宣言による配列の大きさ、配列の上限値および下限値
などの情報を生成する。
添字の不正使用検査情報生成手段5で生成された添字
の不正使用検査情報をもとに、最後に添字の不正使用検
査コード生成手段6は、第3図に示されるような処理順
序で、添字の不正使用検査をループ構造の直前で行うた
めのオブジエクトプログラム7を生成する。
の不正使用検査情報をもとに、最後に添字の不正使用検
査コード生成手段6は、第3図に示されるような処理順
序で、添字の不正使用検査をループ構造の直前で行うた
めのオブジエクトプログラム7を生成する。
この場合、配列要素Aの添字式I*4−3に対する添
字の不正使用検査においては、第2図のに示すループ
が評価される直前に、ループの指標変数であるIが初期
値Mのときと、終値Nのときとに、それぞれ添字の不正
使用検査を行う実行時ルーチンが呼出される。
字の不正使用検査においては、第2図のに示すループ
が評価される直前に、ループの指標変数であるIが初期
値Mのときと、終値Nのときとに、それぞれ添字の不正
使用検査を行う実行時ルーチンが呼出される。
添字の値が配列の範囲外であると判定された場合に
は、実行時に警告エラーメツセージが出力される。
は、実行時に警告エラーメツセージが出力される。
(発明の効果) 以上説明したように本発明は、翻訳時にループ長が不
定なループ構造内に含まれている配列要素の添字が定数
でない添字式の値が配列の範囲内であるか否かを調べる
添字の不正使用検査を、ループ構造の直前で行うように
制御することにより、添字が引用されるごとに添字の不
正使用検査のための実行時ルーチンがループ回数分だけ
呼出されることがなく、プログラムの実行時間を短縮で
きると云う効果がある。
定なループ構造内に含まれている配列要素の添字が定数
でない添字式の値が配列の範囲内であるか否かを調べる
添字の不正使用検査を、ループ構造の直前で行うように
制御することにより、添字が引用されるごとに添字の不
正使用検査のための実行時ルーチンがループ回数分だけ
呼出されることがなく、プログラムの実行時間を短縮で
きると云う効果がある。
第1図は、本発明による添字の不正使用検査方式の一実
施例を示すブロツク図である。 第2図および第4図は、それぞれFORTRANソースプログ
ラムの一例を示す説明図である。 第3図は、第2図に示すFORTRANソースプログラムに対
して本発明を適用する処理の流れを示すフローチヤート
である。 第5図は、第4図に示すFORTRANソースプログラムに対
して従来の処理の流れを示すフローチヤートである。 1……ソースプログラム 2……コンパイラ 3……添字式検出手段 4……ループ構造検査手段 5……添字の不正使用検査情報手段 6……添字の不正使用検査コード生成手段 7……オブジエクトプログラム
施例を示すブロツク図である。 第2図および第4図は、それぞれFORTRANソースプログ
ラムの一例を示す説明図である。 第3図は、第2図に示すFORTRANソースプログラムに対
して本発明を適用する処理の流れを示すフローチヤート
である。 第5図は、第4図に示すFORTRANソースプログラムに対
して従来の処理の流れを示すフローチヤートである。 1……ソースプログラム 2……コンパイラ 3……添字式検出手段 4……ループ構造検査手段 5……添字の不正使用検査情報手段 6……添字の不正使用検査コード生成手段 7……オブジエクトプログラム
Claims (1)
- 【請求項1】言語処理システムのコンパイラにおいて、 ソースプログラムを解析し、配列要素の添字のうちで添
字式が定数ではない添字を検出するための添字式検出手
段と、 前記添字式検出手段で検出された添字のループ長が不定
のループ構造内に含まれているか否かを翻訳時に検査す
るためのループ構造検査手段と、 前記添字式検出手段で検出された前記添字のループ長が
不定のループ構造内に含まれていると前記翻訳時に判定
された場合には前記添字の値が配列の範囲内であるか否
かの検査を前記ループ構造の直前で行うように制御する
情報を生成するための添字の不正使用検査情報生成手段
と、 前記添字の不正使用検査情報生成手段により生成された
前記添字の不正使用検査情報をもとにループの指標変数
が初期値のときと終値のときにそれぞれ添字の不正使用
検査を行う実行時ルーチンを呼び出し、前記添字の不正
使用検査を前記ループ構造の直前で行うオブジェクトプ
ログラムを生成するための添字の不正使用検査コード生
成手段とを具備して構成したことを特徴とする添字の不
正使用検査方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63303790A JP2655614B2 (ja) | 1988-11-30 | 1988-11-30 | 添字の不正使用検査方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63303790A JP2655614B2 (ja) | 1988-11-30 | 1988-11-30 | 添字の不正使用検査方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02148330A JPH02148330A (ja) | 1990-06-07 |
JP2655614B2 true JP2655614B2 (ja) | 1997-09-24 |
Family
ID=17925325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63303790A Expired - Fee Related JP2655614B2 (ja) | 1988-11-30 | 1988-11-30 | 添字の不正使用検査方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2655614B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6164054B2 (ja) | 2013-11-08 | 2017-07-19 | 富士通株式会社 | 情報処理装置、コンパイル方法およびコンパイラプログラム |
KR102222023B1 (ko) * | 2019-12-19 | 2021-03-03 | 손기명 | 전자파 차폐용 파우치 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6398031A (ja) * | 1986-10-14 | 1988-04-28 | Nec Corp | 添字式の値検査方式 |
-
1988
- 1988-11-30 JP JP63303790A patent/JP2655614B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH02148330A (ja) | 1990-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7164017B2 (ja) | フォールトツリー分析を使用して機能安全のため制御フローグラフを最適化するシステム及び方法 | |
Vokolos et al. | Empirical evaluation of the textual differencing regression testing technique | |
JPH05257709A (ja) | 並列化判別方法およびそれを用いた並列化支援方法 | |
US20050114839A1 (en) | Testing flow control at test assertion level | |
US20240121261A1 (en) | Automated Security Analysis of Software Libraries | |
US7036111B2 (en) | Code verification system and method | |
EP3495978B1 (en) | Method for detecting vulnerabilities in software | |
JPH0748182B2 (ja) | プログラム・エラー検出方法 | |
JP2655614B2 (ja) | 添字の不正使用検査方式 | |
Kettl et al. | The static analyzer Infer in SV-COMP (competition contribution) | |
Hammer et al. | Intransitive noninterference in dependence graphs | |
Süßkraut et al. | Safe program execution with diversified encoding | |
JPH0736734A (ja) | アーギュメント値のチェック方法 | |
Nakagawa et al. | How compact will my system be? A fully-automated way to calculate Loc reduced by clone refactoring | |
Chen et al. | Slicing tagged objects in Ada | |
WO2022022279A1 (en) | Systems, methods and media for dynamically shaped tensors using liquid types | |
KR100248435B1 (ko) | 칠 언어에 대한 위험한 제어 이동 탐지방법 | |
KR20240066072A (ko) | 프로그램 정적 분석 방법 및 시스템 | |
JPH01155438A (ja) | コンパイラ試験方式 | |
Imran et al. | Using Agent Technology for Security Testing of WEB Based Applications | |
KR20240088450A (ko) | 보안체크코드의 유효성 점검 장치, 보안체크코드의 유효성 점검 방법 및 컴퓨터 프로그램 | |
JPH07271605A (ja) | C言語プログラムデバッグ方式 | |
JP2001034715A (ja) | Icカード用プログラム実行時検証システム、icカード用プログラム実行時検証方法およびicカード | |
JP2864589B2 (ja) | 関数値差異出力システム | |
JPH03235135A (ja) | プログラムの自動検査方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |