JP4561998B2 - 配列範囲外アクセス検出方式及び方法 - Google Patents

配列範囲外アクセス検出方式及び方法 Download PDF

Info

Publication number
JP4561998B2
JP4561998B2 JP2006067639A JP2006067639A JP4561998B2 JP 4561998 B2 JP4561998 B2 JP 4561998B2 JP 2006067639 A JP2006067639 A JP 2006067639A JP 2006067639 A JP2006067639 A JP 2006067639A JP 4561998 B2 JP4561998 B2 JP 4561998B2
Authority
JP
Japan
Prior art keywords
access
range
array
class
dimension
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
Application number
JP2006067639A
Other languages
English (en)
Other versions
JP2007249262A (ja
Inventor
康晴 林
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 JP2006067639A priority Critical patent/JP4561998B2/ja
Publication of JP2007249262A publication Critical patent/JP2007249262A/ja
Application granted granted Critical
Publication of JP4561998B2 publication Critical patent/JP4561998B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明はアプリケーションプログラム実行中における配列範囲外アクセスを検出するための配列範囲外アクセス検出方式及び方法に関する。
FORTRANやC言語等を用いてアプリケーションプログラムを作成・実行する場合、プログラムエラーの多くはアプリケーションプログラム中で宣言した配列の範囲外を参照する配列範囲外アクセスに起因する。そのため、一般に、FORTRANやC言語等を機械語に変換するコンパイラには、このような配列範囲外アクセスを検出してエラー表示を行うための機能が用意されている。また、アプリケーションプログラム自身に、配列範囲外アクセスが発生した場合に外部へ通知するためのプログラムが組み込まれていることもある。
配列範囲外アクセスの検出方式としては、配列要素を参照する直前に、その添字で定義される値と宣言された配列の上限値及び下限値とを逐次比べることで、配列範囲外に対するアクセスであるか否かを判定する方式が一般的である。
なお、アプリケーションプログラムのDOループ内で参照される配列を検出し、該配列の参照の仕方に応じて、該DOループの実行直前に、該配列の上限値及び下限値と、添字の最大値及び最小値を比較することで、配列範囲外に対するアクセスであるか否かを検出する構成が特許文献1に記載されている。
特開平04−021030号公報
しかしながら上記したような従来の配列範囲外アクセス検出方式では、アプリケーションプログラムの配列参照の数が増えると、それに比例して、配列範囲外に対するアクセスであるか否かを判定するための処理の負荷が増大するため、プログラムの実行に膨大な時間を要する問題がある。
また、配列要素の参照の直前にその添字で定義される値と宣言された配列の上限値及び下限値とを逐次比べる方式では、コンパイラによる並列化やベクトル化といった最適化が抑制され、プログラムの実行に膨大な時間を要する問題がある。
また、アプリケーションプログラムのDOループ内で参照される配列を検出し、該配列の参照の仕方に応じて、該DOループの実行直前に、該配列の上限値及び下限値と、添字の最大値及び最小値を比較する方式では、該DOループの中で添字値が計算されている場合、添字値の計算を該DOループの実行直前に改めて行うため、添字式の計算を二重に行うことになり、プログラムの実行速度が低下する問題がある。
また、アプリケーションプログラムのDOループ内で参照される配列を検出し、該配列の参照の仕方に応じて、該DOループの実行直前に、該配列の上限値及び下限値と、添字の最大値及び最小値を比較する方式では、該DOループの中で添字値が計算されている場合、添字値の計算に、乱数計算等の副作用のある演算が含まれていると、添字式の計算を二重に行うことができないため、適用できない問題がある。
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、コンパイラ等による最適化処理を阻害することなく、配列範囲外アクセスを高速に検出できる配列範囲外アクセス検出方式及び方法を提供することを目的とする。
上記目的を達成するため本発明の配列範囲外アクセス検出方式は、プログラム中で宣言した配列の範囲外を参照する配列範囲外アクセスを検出する配列範囲外アクセス検出方式であって、
参照対象となる、添字が付与された配列を含むプログラムを解析し、該プログラムを並列化等の最適化が可能な最大範囲である範囲外アクセスチェック単位に分割する範囲外アクセスチェック単位解析手段と、
前記範囲外アクセスチェック単位に含まれる、参照対象となる全ての配列及びその各次元の添字をそれぞれ抽出する範囲外アクセスチェック対象検出手段と、
前記範囲外アクセスチェック対象検出手段で抽出した配列を、その次元数及び各次元の上限値及び下限値が一致している同形状類に分類し、前記同形状類をその全次元の添字の値が一致しているアクセス類に分類し、前記アクセス類の代表要素をそれぞれ決定する範囲外アクセスチェック配列類別手段と、
前記範囲外アクセスチェック対象検出手段で抽出した添字を、同一の値となる添字類に分類する範囲外アクセスチェック添字類別手段と、
前記アクセス類の代表要素の各次元の添字を比較し、範囲外アクセス検出対象とする前記アクセス類の代表要素を決定する範囲外アクセスチェック対象決定手段と、
前記範囲外アクセス検出対象である配列の各次元の添字の最大値及び最小値を計算するためのコードを生成し、該コードを、前記範囲外アクセスチェック単位の外に代入文として、または前記範囲外アクセスチェック単位内にリダクション形式にて配置する範囲外アクセスチェックコード挿入手段と、
を有する構成である。
一方、本発明の配列範囲外アクセス検出方法は、プログラム中で宣言した配列の範囲外を参照する配列範囲外アクセスを検出するための配列範囲外アクセス検出方法であって、
処理装置が、参照対象となる、添字が付与された配列を含むプログラムを解析し、該プログラムを並列化等の最適化が可能な最大範囲である範囲外アクセスチェック単位に分割し、
前記範囲外アクセスチェック単位に含まれる、参照対象となる全ての配列及びその各次元の添字をそれぞれ抽出し、
前記抽出した配列を、その次元数及び各次元の上限値及び下限値が一致している同形状類に分類し、前記同形状類をその全次元の添字の値が一致しているアクセス類に分類し、前記アクセス類の代表要素をそれぞれ決定し、
前記抽出した添字を、同一の値となる添字類に分類し、
前記アクセス類の代表要素の各次元の添字を比較し、範囲外アクセス検出対象とする前記アクセス類の代表要素を決定し、
前記範囲外アクセス検出対象である配列の各次元の添字の最大値及び最小値を計算するためのコードを生成し、該コードを、前記範囲外アクセスチェック単位の外に代入文として、または前記範囲外アクセスチェック単位内にリダクション形式にて配置する方法である。
上記のような配列範囲外アクセス検出方式及び方法では、コンパイラ等による最適化が可能なプログラム範囲である範囲外アクセスチェック単位を設定し、範囲外アクセス検出対象となる配列の各次元の添字の最大値及び最小値を計算するためのコードを生成し、該コードを、範囲外アクセスチェック単位の外に代入文として、または範囲外アクセスチェック単位内にリダクション形式にて配置することで、コンパイラ等による最適化処理を阻害することなく、配列範囲外アクセスを検出できる。また、添字を同一の値を取るものどうしで分類し、該分類した添字類にしたがって配列範囲外アクセスであるか否かの判定に用いる最大値及び最小値を計算するため、同一の値を持つ添字については最大値及び最小値を1度だけ計算することになる。そのため、最大値及び最小値の計算対象数が最小限に抑制される。
本発明によれば、コンパイラ等による最適化処理を阻害することなく、配列範囲外アクセスを検出できる。また、最大値及び最小値の計算対象数が最小限に抑制されるため、配列範囲外アクセスを高速に検出できる。
さらに、本発明によれば、プログラムにおいて、添字の値の計算に、乱数計算等の副作用のある演算が含まれる場合にも、範囲外アクセスの検出が可能である。その理由は、配列の添字値自身の計算はオリジナルプログラムの値をそのまま採用し、プログラムの別の場所で改めて添字の計算を行わないためである。
次に本発明について図面を参照して説明する。
図1は本発明の配列範囲外アクセス検出方式の一構成例を示すブロック図である。
図1に示すように、本発明の配列範囲外アクセス検出方式100は、範囲外アクセスチェック単位解析手段101、範囲外アクセスチェック対象検出手段102、範囲外アクセスチェック配列類別手段103、範囲外アクセスチェック添字類別手段104、範囲外アクセスチェック対象決定手段105及び範囲外アクセスチェックコード挿入手段106を有する構成である。本発明の配列範囲外アクセス検出方式100は、FORTRANやC言語等を機械語に変換するコンパイラに適用することが好ましい。
上記範囲外アクセスチェック単位解析手段101、範囲外アクセスチェック対象検出手段102、範囲外アクセスチェック配列類別手段103、範囲外アクセスチェック添字類別手段104、範囲外アクセスチェック対象決定手段105及び範囲外アクセスチェックコード挿入手段106は、例えば論理回路等から成るLSI、あるいはプログラムにしたがってこれらの機能を実現するDSPやCPU等の処理装置によって実現される。なお、配列範囲外アクセスの検出対象としては、配列の各次元の宣言範囲外に対するアクセスがある。
範囲外アクセスチェック単位解析手段101は、配列範囲外アクセスのコスト(処理時間や処理負荷等)を最小とするために、参照対象となる添字が付与された配列を含むプログラムを解析し、該プログラムを、例えばループ処理のように、ベクトル化や並列化等の最適化が可能な範囲内で、できるだけ大きな単位に分割する。以下、この分割単位を範囲外アクセスチェック単位と呼ぶ。
範囲外アクセスチェック対象検出手段102は、範囲外アクセスチェック単位解析手段101にて分割した範囲外アクセスチェック単位で、その中に含まれる参照対象となる全ての配列及びその各次元の添字をそれぞれ抽出する。
範囲外アクセスチェック配列類別手段103は、範囲外アクセスチェック単位解析手段101で分割した範囲外アクセスチェック単位で、範囲外アクセスチェック対象検出手段102で抽出した添字付き配列の集合を、次元数及び各次元の上限値及び下限値が一致しているものどうしで分類する。この分類単位を同形状類と呼ぶ。
また、範囲外アクセスチェック配列類別手段103は、各同形状類をその全次元の添字の値が常に一致しているものどうしで分類する。この分類単位をアクセス類と呼ぶ。さらに、各アクセス類の代表要素を任意に1つ決定する。
範囲外アクセスチェック添字類別手段104は、範囲外アクセスチェック単位解析手段101にて分割した範囲外アクセスチェック単位で、範囲外アクセスチェック対象検出手段102で抽出した添字の集合を、常に同一の値を取るものどうしで分類する。この分類単位を添字類と呼ぶ。
範囲外アクセスチェック対象決定手段105は、範囲外アクセスチェック単位解析手段101で分割した範囲外アクセスチェック単位で、範囲外アクセスチェック配列類別手段103で分類した全てのアクセス類の代表要素の各次元の添字を、範囲外アクセスチェック配列類別手段103で分類した同一の同形状類に含まれるもの同士で比較し、範囲外アクセス検出対象から除外するアクセス類を抽出する。本発明では、このとき抽出されないアクセス類の代表要素の集合を範囲外アクセス検出対象とする。
範囲外アクセスチェックコード挿入手段106は、範囲外アクセスチェック単位解析手段101で分割した範囲外アクセスチェック単位で、範囲外アクセスチェック対象決定手段105で決定した範囲外アクセス検出対象である配列の各次元の添字の最大値及び最小値を計算するためのコードを生成する。さらに、範囲外アクセスチェックコード挿入手段106は、範囲外アクセス検出対象である配列の各次元の添字の値が対応する宣言範囲内にあるか否かをチェックするためのコードを生成する。
ここで、各次元の添字の最大値及び最小値の計算は、範囲外アクセスチェック添字類別手段104により分類した同一の値を持つ添字類については、重複することなく1度だけ実行することになるため、最大値及び最小値の計算対象数が最小限になる。
また、最大値及び最小値を計算するためのコードは、コンパイラによるベクトル化や並列化等の最適化を阻害しないように、範囲外アクセスチェック単位の外に代入文として、または範囲外アクセスチェック単位内にリダクション形式にて配置する。
次に本発明の配列範囲外アクセス検出方式100の動作について図2及び図3を用いて説明する。
図2は配列範囲外アクセス検出対象のプログラムの一例を示す模式図であり、図3は配列範囲外アクセスを検出するためのチェックコードを含むプログラムの一例を示す模式図である。
図2及び図3はそれぞれFORTRANプログラムであり、図2に示す例では、処理の並列化が可能なDO Iループ中で3次元配列A、B、及び1次元配列IDXが参照されることが示されている。この図2に示すプログラムを、配列の各次元の添字の最大値及び最小値を計算するためのコードや配列範囲外アクセスであるか否かをチェックするためのコードを含むプログラムに変換した例が図3である。
以下、図2に示したプログラムを図3に示すプログラムに変換する場合を例にして、本発明の配列範囲外アクセス検出方式100の動作を説明する。
まず、配列範囲外アクセス検出方式100は、範囲外アクセスチェック単位解析手段101により図2に示すプログラムを解析し、範囲外アクセスチェック単位を決定する。ここでは、DO Iループが並列化可能な最大のプログラム単位であるため、このDO Iループ全体を範囲外アクセスチェック単位とする。
次に、配列範囲外アクセス検出方式100は、範囲外アクセスチェック単位解析手段101にて決定した範囲外アクセスチェック単位に含まれる全ての配列及びその添字を範囲外アクセスチェック対象検出手段102により抽出する。ここでは、配列{IDX(K),A(I,J,J),B(I,J,J),B(I+1,J,J),B(I−1,J,J)}と、その添字{K,I,J,J,I,J,J,I+1,J,J,I−1,J,J}が抽出される。
次に、配列範囲外アクセス検出方式100は、範囲外アクセスチェック配列類別手段103を用いて、範囲外アクセスチェック単位解析手段101で決定した範囲外アクセスチェック単位であるDO Iループのうち、範囲外アクセスチェック対象検出手段102で抽出した配列の集合{IDX(K),A(I,J,J),B(I,J,J),B(I+1,J,J),B(I−1,J,J)}を、次元数及び全ての次元の上限値及び下限値が全て一致しているものどうしで分類する。ここでは、2つの同形状類{IDX(K)}及び{A(I,J,J),B(I,J,J),B(I+1,J,J),B(I−1,J,J)}に分類される。
また、範囲外アクセスチェック配列類別手段103は、各同形状類を、全ての次元の添字の値が常に一致しているものどうしで分類し、その代表要素を決定する。ここでは、4つのアクセス類{IDX(K)}、{A(I,J,J),B(I,J,J)}、{B(I+1,J,J)}及び{B(I−1,J,J)}に分類され、各アクセス類の代表要素として、IDX(K)、A(I,J,J)、B(I+1,J,J)、B(I−1,J,J)が選択される。
次に、配列範囲外アクセス検出方式100は、範囲外アクセスチェック添字類別手段104を用いて、範囲外アクセスチェック対象検出手段102で抽出した添字の集合{K,I,J,J,I,J,J,I+1,J,J.I−1,J,J}を、常に同一の値を取るものどうしで分類する。ここでは、5つの添字類{K}、{I−1}、{I,I}、{J,J,J,J,J,J,J,J}及び{I+1}に分割される。
次に、配列範囲外アクセス検出方式100は、範囲外アクセスチェック対象決定手段105を用いて、範囲外アクセスチェック配列類別手段103で選択した各アクセス類の代表要素IDX(K)、A(I,J,J)、B(I+1,J,J)、B(I−1,J,J)の各次元の添字を比較し、範囲外アクセス検出対象から除外するアクセス類を抽出する。範囲外アクセスチェック対象決定手段105は、例えば、範囲外アクセスチェック配列類別手段103が分類した同一の同形状類に含まれ、かつ各次元の添字の値が最も大きくなるアクセス類及び各次元の添字の値が最も小さくなるアクセス類が他に存在する場合に、そのアクセス類の代表要素を範囲外アクセス検出対象から除外する。ここでは、添字I+1及びI−1を持たない代表要素A(I,J,J)が抽出される。その他のアクセス類の代表要素IDX(K)、B(I+1,J,J)、B(I−1,J,J)は、範囲外アクセス検出対象となる。
次に、配列範囲外アクセス検出方式100は、範囲外アクセスチェックコード挿入手段106を用いて、範囲外アクセスチェック対象決定手段105で選択した範囲外アクセス検出対象の代表配列IDX(K)、B(I+1,J,J)、B(I−1,J,J)の各次元の添字の最大値及び最小値を計算するためのコードを生成し、さらにそれらが先に宣言された範囲内にあるか否かをチェックするためのコードを生成する。
本発明では、範囲外アクセスチェック添字類別手段104にて分類した添字類を基に、同一の値を持つ添字については最大値及び最小値を1度だけ計算する。ここでは、B(I+1,J,J)及びB(I−1,J,J)に含まれるJについて、最大値及び最小値の計算を1度だけ行う。なお、IDX(K)のK、B(I−1,J,J)のI−1やB(I+1,J,J)のI+1のように線形アクセスの添字の最大値及び最小値を計算するためのコードは、範囲外アクセスチェック単位であるDO Iループ中で計算する必要はなく、DO Iループの始値及び終値から簡単に導出できる。
範囲外アクセスチェックコード挿入手段106によって生成されたコードは、図3に示すようになる。
図3に示すminIMは、I−1の最小値を格納する変数であり、DO Iループの始値−1の値(2−1=1)が代入される。また、maxIMは、I−1の最大値を格納する変数であり、DO Iループの終値−1の値(99−1=98)が代入される。
また、図3に示すminIPは、I+1の最小値を格納する変数であり、DO Iループの始値+1の値(2+1=3)が代入される。さらに、maxIPは、I+1の最大値を格納する変数であり、DO Iループの終値+1の値(99+1=100)が代入される。
また、図3に示すminKは、Kの最小値を格納する変数であり、DO Kループの始値の値(1)が代入される。さらに、maxKは、Kの最大値を格納する変数であり、DO Kループの終値の値(100)が代入される。
一方、B(I−1,J,J)、B(I+1,J,J)の添字Jのように線形でない添字は、一般的には、上記KやI−1やI+1のように最大値及び最小値を簡単に導出することはできないため、DO Iループ内にリダクション形式にて最大値及び最小値を計算するためのコードを挿入する。
図3に示すminJはJの最小値を格納する変数であり、maxJはJの最大値を格納する変数である。図3のDO Iループには、現在参照しているJの値と、それ以前のループ処理時に参照した最小値とを比較し、より小さい値をminJに格納するためのコードが挿入されている。同様に、図3のDO Iループには、現在参照しているJの値と、それ以前のループ処理時に参照した最大値とを比較し、より大きい値をmaxJに格納するためのコードが挿入されている。
範囲外アクセスチェック単位解析手段101により決定した範囲外アクセスチェック単位であるループDO Iの処理が終了後、minK及びmaxKの値と添字Kに対応するIDXの上限値及び下限値とを比較し、minIM及びmaxIMの値と添字I−1に対応するBの1次元目の上限値及び下限値とを比較し、minIP、maxIPの値と添字I+1に対応するBの1次元目の上下限値とを比較し、さらにminJ、maxJの値と添字Jに対応するBの2次元目及び3次元目の上限値及び下限値を比較することで、範囲外アクセスチェック単位内で範囲外アクセスが発生したか否かを判定する。
本発明によれば、コンパイラ等による最適化が可能な最大のプログラム範囲である範囲外アクセスチェック単位を設定し、範囲外アクセス検出対象となる配列の各次元の添字の最大値及び最小値を計算するためのコードを生成し、該コードを、前記範囲外アクセスチェック単位の外に代入文として、または前記範囲外アクセスチェック単位内にリダクション形式にて配置することで、コンパイラ等による最適化処理を阻害することなく、配列範囲外アクセスを検出できる。また、添字を同一の値を取るものどうしで分類し、該分類した添字類にしたがって配列範囲外アクセスであるか否かの判定に用いる最大値及び最小値を計算するため、同一の値を持つ添字については最大値及び最小値を1度だけ計算することになる。したがって、最大値及び最小値の計算対象数が最小限に抑制され、配列範囲外アクセスを高速に検出できる。
本発明の配列範囲内アクセス検出方式の一構成例を示すブロック図である。 配列範囲外アクセス検出対象のプログラムの一例を示す模式図である。 配列範囲外アクセスを検出するためのチェックコードを含むプログラムの一例を示す模式図である。
符号の説明
100 配列範囲外アクセス検出方式
101 範囲外アクセスチェック単位解析手段
102 範囲外アクセスチェック対象検出手段
103 範囲外アクセスチェック配列類別手段
104 範囲外アクセスチェック添字類別手段
105 範囲外アクセスチェック対象決定手段
106 範囲外アクセスチェックコード挿入手段

Claims (4)

  1. プログラム中で宣言した配列の範囲外を参照する配列範囲外アクセスを検出する配列範囲外アクセス検出方式であって、
    参照対象となる、添字が付与された配列を含むプログラムを解析し、該プログラムを並列化等の最適化が可能な最大範囲である範囲外アクセスチェック単位に分割する範囲外アクセスチェック単位解析手段と、
    前記範囲外アクセスチェック単位に含まれる、参照対象となる全ての配列及びその各次元の添字をそれぞれ抽出する範囲外アクセスチェック対象検出手段と、
    前記範囲外アクセスチェック対象検出手段で抽出した配列を、その次元数及び各次元の上限値及び下限値が一致している同形状類に分類し、前記同形状類をその全次元の添字の値が一致しているアクセス類に分類し、前記アクセス類の代表要素をそれぞれ決定する範囲外アクセスチェック配列類別手段と、
    前記範囲外アクセスチェック対象検出手段で抽出した添字を、同一の値となる添字類に分類する範囲外アクセスチェック添字類別手段と、
    前記アクセス類の代表要素の各次元の添字を比較し、範囲外アクセス検出対象とする前記アクセス類の代表要素を決定する範囲外アクセスチェック対象決定手段と、
    前記範囲外アクセス検出対象である配列の各次元の添字の最大値及び最小値を計算するためのコードを生成し、該コードを、前記範囲外アクセスチェック単位の外に代入文として、または前記範囲外アクセスチェック単位内にリダクション形式にて配置する範囲外アクセスチェックコード挿入手段と、
    を有する配列範囲外アクセス検出方式。
  2. 前記範囲外アクセスチェック対象決定手段は、
    前記アクセス類の代表要素の各次元の添字を比較し、前記範囲外アクセスチェック配列類別手段により分類された同じ同形状類に含まれ、かつ各次元の添字の値が最も大きくなるアクセス類、及び各次元の添字の値が最も小さくなるアクセス類が他に存在する場合に、そのアクセス類の代表要素を範囲外アクセス検出対象から除外し、残りの前記アクセス類の代表要素を前記範囲外アクセス検出対象とする請求項1記載の配列範囲外アクセス検出方式。
  3. プログラム中で宣言した配列の範囲外を参照する配列範囲外アクセスを検出するための配列範囲外アクセス検出方法であって、
    処理装置が、参照対象となる、添字が付与された配列を含むプログラムを解析し、該プログラムを並列化等の最適化が可能な最大範囲である範囲外アクセスチェック単位に分割し、
    前記範囲外アクセスチェック単位に含まれる、参照対象となる全ての配列及びその各次元の添字をそれぞれ抽出し、
    前記抽出した配列を、その次元数及び各次元の上限値及び下限値が一致している同形状類に分類し、前記同形状類をその全次元の添字の値が一致しているアクセス類に分類し、前記アクセス類の代表要素をそれぞれ決定し、
    前記抽出した添字を、同一の値となる添字類に分類し、
    前記アクセス類の代表要素の各次元の添字を比較し、範囲外アクセス検出対象とする前記アクセス類の代表要素を決定し、
    前記範囲外アクセス検出対象である配列の各次元の添字の最大値及び最小値を計算するためのコードを生成し、該コードを、前記範囲外アクセスチェック単位の外に代入文として、または前記範囲外アクセスチェック単位内にリダクション形式にて配置する配列範囲外アクセス検出方法。
  4. 前記アクセス類の代表要素の各次元の添字を比較し、前記の同じ同形状類に含まれ、かつ各次元の添字の値が最も大きくなるアクセス類、及び各次元の添字の値が最も小さくなるアクセス類が他に存在する場合に、そのアクセス類の代表要素を範囲外アクセス検出対象から除外し、残りの前記アクセス類の代表要素を前記範囲外アクセス検出対象とする請求項3記載の配列範囲外アクセス検出方法。
JP2006067639A 2006-03-13 2006-03-13 配列範囲外アクセス検出方式及び方法 Expired - Fee Related JP4561998B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006067639A JP4561998B2 (ja) 2006-03-13 2006-03-13 配列範囲外アクセス検出方式及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006067639A JP4561998B2 (ja) 2006-03-13 2006-03-13 配列範囲外アクセス検出方式及び方法

Publications (2)

Publication Number Publication Date
JP2007249262A JP2007249262A (ja) 2007-09-27
JP4561998B2 true JP4561998B2 (ja) 2010-10-13

Family

ID=38593540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006067639A Expired - Fee Related JP4561998B2 (ja) 2006-03-13 2006-03-13 配列範囲外アクセス検出方式及び方法

Country Status (1)

Country Link
JP (1) JP4561998B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5233354B2 (ja) * 2008-03-25 2013-07-10 日本電気株式会社 プロパティ検証システム、プロパティ検証方法、及びプログラム
CN111176582A (zh) * 2019-12-31 2020-05-19 北京百度网讯科技有限公司 矩阵存储方法、矩阵访问方法、装置和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62165268A (ja) * 1986-01-17 1987-07-21 Fujitsu Ltd ベクトル化コンパイル処理方式
JPH0421030A (ja) * 1990-05-14 1992-01-24 Hitachi Ltd 配列の宣言範囲外参照の検出オブジェクト生成方式
JPH05204705A (ja) * 1992-01-30 1993-08-13 Fujitsu Ltd 未定義変数検出処理方法
JPH08194624A (ja) * 1995-01-20 1996-07-30 Fujitsu Ltd 実行形式プログラム作成方法
JPH10275087A (ja) * 1997-03-28 1998-10-13 Fujitsu Ltd コンパイル装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62165268A (ja) * 1986-01-17 1987-07-21 Fujitsu Ltd ベクトル化コンパイル処理方式
JPH0421030A (ja) * 1990-05-14 1992-01-24 Hitachi Ltd 配列の宣言範囲外参照の検出オブジェクト生成方式
JPH05204705A (ja) * 1992-01-30 1993-08-13 Fujitsu Ltd 未定義変数検出処理方法
JPH08194624A (ja) * 1995-01-20 1996-07-30 Fujitsu Ltd 実行形式プログラム作成方法
JPH10275087A (ja) * 1997-03-28 1998-10-13 Fujitsu Ltd コンパイル装置

Also Published As

Publication number Publication date
JP2007249262A (ja) 2007-09-27

Similar Documents

Publication Publication Date Title
Han et al. MalDAE: Detecting and explaining malware based on correlation and fusion of static and dynamic characteristics
US10514909B2 (en) Similarity of binaries
CN101266550B (zh) 一种恶意代码检测方法
US11048798B2 (en) Method for detecting libraries in program binaries
Jin et al. Binary function clustering using semantic hashes
US20160259628A1 (en) Methods and apparatus to eliminate partial-redundant vector loads
Eskandari et al. Metamorphic malware detection using control flow graph mining
US9043775B2 (en) Method for identifying problematic loops in an application and devices thereof
KR101788279B1 (ko) 테스트 기법을 이용한 최악 실행 시간 측정 시스템 및 방법
JP2017004123A (ja) 判定装置、判定方法および判定プログラム
JP7318516B2 (ja) コンピュータ可読プログラム検査のための入力の生成
CN112948828A (zh) 一种二进制程序恶意代码检测方法、终端设备及存储介质
JP4561998B2 (ja) 配列範囲外アクセス検出方式及び方法
WO2013040271A1 (en) Vectorization of machine level scalar instructions in a computer program during execution of the computer program
Morard et al. One-Dimensional Openings, Granulometries and Component Trees in 𝒪 (1) in Per Pixel
US20220004631A1 (en) Discrimination apparatus, discrimination method and learning apparatus
US20150363177A1 (en) Multi-branch determination syntax optimization apparatus
KR102192196B1 (ko) Ai 기반 머신러닝 교차 검증 기법을 활용한 악성코드 탐지 장치 및 방법
Sargsyan et al. Scalable and accurate clones detection based on metrics for dependence graph
US8689327B2 (en) Method for characterization of a computer program part
CN102930158A (zh) 基于偏最小二乘的变量选择方法
Vytovtov et al. Source code quality classification based on software metrics
CN115758388A (zh) 一种基于低维字节码特征的智能合约的漏洞检测方法
Arutunian et al. A Method to Evaluate Binary Code Comparison Tools
KR20140128770A (ko) 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100707

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4561998

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100720

LAPS Cancellation because of no payment of annual fees