JPH06348475A - ポインタ解析システム - Google Patents

ポインタ解析システム

Info

Publication number
JPH06348475A
JPH06348475A JP5141078A JP14107893A JPH06348475A JP H06348475 A JPH06348475 A JP H06348475A JP 5141078 A JP5141078 A JP 5141078A JP 14107893 A JP14107893 A JP 14107893A JP H06348475 A JPH06348475 A JP H06348475A
Authority
JP
Japan
Prior art keywords
graph
pointer
variable
alias
arc
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
JP5141078A
Other languages
English (en)
Inventor
Masanori Koizumi
昌紀 小泉
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 JP5141078A priority Critical patent/JPH06348475A/ja
Publication of JPH06348475A publication Critical patent/JPH06348475A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 ポインタ変数を含むソースプログラムに対し
て、ソースプログラムを直接実行することなしに、ポイ
ンタ変数が間接的に指す可能性のある変数を解析し、変
数の別名関係を求めるポインタ解析システムを提供す
る。 【構成】 ある特定のプログラミング言語で記述された
ソースプログラムを構文解析、制御フロー解析すること
により、制御フローグラフを出力する入力装置110
と、ポインタ変数が指す可能性のある変数を解析するポ
インタ解析装置120と、別名グラフを操作するグラフ
処理装置130と、ディスプレイ装置等の出力装置14
0とから構成される。更に、グラフ処理装置130は、
グラフ併合手段131と、グラフ検索手段132と、ア
ーク変更手段133と、間接度計算手段134とを備え
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ポインタ解析システム
に関し、特にポインタ変数が間接的に指す変数の解析機
能を有するポインタ解析システムに関する。
【0002】
【従来の技術】ソースプログラムを直接実行することな
しに、プログラムの種々の性質を解析する技術として、
データフロー解析技術が広く使われている。しかし、ポ
インタ変数を含むソースプログラムに対してデータフロ
ー解析を行なう際、ポインタ変数により別名関係が生ず
るため、プログラム中に明示的に定義されていなくて
も、変数が定義されてしまうという問題がある。
【0003】例えば、以下のC言語で記述されたプログ
ラムにおいて、 文(1)において、ポインタ変数*pが変数xを指すの
で、文(3)において*pが定義されるだけでなくxも
再定義される。ここで、変数名に*をつけて宣言された
変数をポインタ変数と呼ぶ。
【0004】このようにポインタ変数を含んだプログラ
ムを対象とする場合、データフロー解析に先立ってポイ
ンタ変数が指す可能性のある変数を解析するポインタ変
数解析システムを構築する必要があった。
【0005】従来の、この種のポインタ変数解析システ
ムは、たとえば「1990年、サイエンス社、コンパイ
ラ原理・技法・ツール、A.V.エイホ,R.セシィ,
J.D.ウルマン共著,原田賢一訳」に示されるよう
に、基本データ構造としてポインタ変数とその変数が指
す可能性のある変数集合のペアのリストを用いて、反復
解法アルゴリズムを用いることにより実現しており、ポ
インタ変数が直接指す可能性のある変数集合を解析す
る。
【0006】図4は従来のポインタ変数解析システムを
示すブロック図である。このポインタ変数解析システム
はソースプログラムを入力として制御フローを解析する
入力装置210と、ポインタ変数が指す可能性のある変
数を解析するポインタ解析装置220と、リストを操作
するリスト処理装置230と、ディスプレイ装置等の出
力装置240とから構成される。
【0007】リスト処理装置230は、リスト併合手段
231と、リスト変更手段233、とを備える。
【0008】次に、図4および図5を参照して、従来の
システムの動作について説明する。入力装置210は、
ある特定のプログラミング言語で記述されたソースプロ
グラムを入力として、構文解析および制御フロー解析を
行ない制御フローグラフと初期化済みのリストを出力す
る。ここで、制御フローグラフの各ノードはソースプロ
グラムの各文または各述語に対応している。リストは変
数間の関係をリストで表現したものである。ポインタ変
数をキーとしてポインタ変数が指す可能性のある変数集
合を値として持っており、キーとなる変数が値の変数群
を指すという意味を持つ。入力装置210の出力となる
制御フローグラフと初期化済みのリストはポインタ解析
装置220に供給される(ステップB1)。ポインタ解
析装置220は、別名グラフのどれかに変化がなくなる
まで、nにおけるリストAFFECT[n]に処理を加
える(ステップB2およびB3)。
【0009】以下各文nにおける処理について述べる。
まず、リスト併合手段231は、リストAFFECT
[n]をnに先行するノードmにおけるリストAFFE
CT[m]の和集合に設定する(ステップB4)。ここ
で、ノードnが代入文p=qの時のみ操作を続行し、ノ
ードnが述語の場合は次の文の処理をする(ステップB
5)。ステップB6で右辺のqがポインタ変数であるか
どうか検査し、右辺のqがポインタ変数である時は、リ
スト変更手段233を用いて、pが指す変数を、qが指
す変数に変更する(ステップB7)。右辺のqがポイン
タ変数でない時は、リスト変更手段233を用いて、p
が指す変数を、qに変更する(ステップB8)。
【0010】B2のループを抜けた後、ポインタ解析装
置220は、このAFFECT[n]の結果を出力装置
240に出力する(ステップB9)。
【0011】次に、図6を参照して、具体例を用いて説
明する。例えば、以下のプログラムが入力装置210か
ら与えられたとする。 入力装置210において、リストAFFECT[1]、
AFFECT[2]、AFFECT[3]はそれぞれ空
リストに初期化される。
【0012】n=1の時、アーク変更手段233は*p
の指す変数を{x}に設定する(図6(a))。n=2
の時、アーク変更手段233 は*qの指す変数を
{y}に設定する(図6(b))。n=3 の時、右辺
のポインタ変数*pが{x}を指しているため、リスト
変更手段233は、*qが{x}を指すようにリストを
変更する(図6(c))。
【0013】以上より、このプログラムでは*pおよび
*qがxを指すことが解析できる。
【0014】
【発明が解決しようとする課題】この従来の技術のポイ
ンタ変数解析システムでは、基本データ構造としてポイ
ンタ変数とその変数が指す可能性のある変数集合のペア
を用いているため、ポインタ変数が間接的に指す可能性
のある変数集合を解析できない。
【0015】本発明の目的は、ポインタ変数を含むソー
スプログラムに対して、ソースプログラムを直接実行す
ることなしに、ポインタ変数が間接的に指す可能性のあ
る変数を解析し、変数の別名関係を求めるポインタ解析
システムを提供することにある。
【0016】
【課題を解決するための手段】第1の発明のポインタ解
析システムは、ソースプログラムを構文解析し、制御フ
ロー解析することにより、プログラムの文がノードに、
制御の流れがアークに対応した制御フローグラフを出力
する入力手段と、前記制御フローグラフの各ノードに付
加されている別名グラフを併合するグラフ併合手段と、
前記ソースプログラム中のポインタ変数の間接度を計算
する間接度計算手段と、前記間接度に応じてポインタ変
数が指している変数集合を検索するグラフ検索手段と、
前記変数集合をもとに別名グラフ上のアークを追加削除
するアーク変更手段と、前記制御フローグラフを入力
し、前記グラフ併合手段と前記グラフ検索手段と前記ア
ーク変更手段を用いてポインタ変数が指す可能性のある
変数集合を示した別名グラフを出力するポインタ解析装
置と、前記ポインタ解析装置の出力を表示する出力装置
とから成ることを特徴とする。
【0017】また、第2の発明のポインタ解析システム
は、推移的開包演算を行う推移的閉包計算手段と、前記
ポインタ解析手段の出力を入力として前記推移的閉包計
算手段を用いて、複数のポインタ変数が同じ変数を指す
ときそれぞれのポインタ変数の間に生じる変数の別名間
の関係を前記変数集合とともに示した別名グラフを前記
出力装置に出力する別名解析手段とを備えることを特徴
とする。
【0018】
【作用】第1の発明のポインタ解析システムは、変数間
の関係をグラフで表現しているため、ポインタ変数が間
接的に指すということが、グラフのアークを推移的にた
どることに対応付けられる。このため、ポインタ変数が
指す変数だけでなく、ポインタ変数が間接的に変数を指
す場合も解析できる。
【0019】第2の発明のポインタ解析システムは、変
数間の関係をグラフで表現しているため、ポインタ変数
が間接的に指すということが、グラフのアークを推移的
にたどることに対応付けられる。このため、ポインタ変
数が指す変数だけでなく、ポインタ変数が間接的に変数
を指す場合も解析できる。また、このグラフ上で推移的
閉包演算を行なうことにより、変数間の別名関係を解析
できる。
【0020】
【実施例】第1の発明について図面を参照して説明す
る。
【0021】図1は第1の発明の実施例を示すブロック
図である。図1を参照すると、第1の発明の実施例はあ
る特定のプログラミング言語で記述されたソースプログ
ラムを構文解析、制御フロー解析することにより、制御
フローグラフを出力する入力装置110と、ポインタ変
数が指す可能性のある変数を解析するポインタ解析装置
120と、別名グラフを操作するグラフ処理装置130
と、ディスプレイ装置等の出力装置140とから構成さ
れる。
【0022】グラフ処理装置130は、グラフ併合手段
131と、グラフ検索手段132と、アーク変更手段1
33と、間接度計算手段134とを備える。
【0023】グラフ併合手段131は、複数の別名グラ
フを入力として、それらのグラフ中のノードとアークの
和集合を含む別名グラフを出力する。グラフ検索手段1
32は、別名グラフと、変数を入力として、間接度だけ
アークをたどって到達することができるノード集合を出
力する。アーク変更手段133は、別名グラフに対して
アークの追加と削除を行なう。間接度計算手段134
は、ポインタ変数の間接度を計算する。
【0024】次に、図1および図2を参照して、本実施
例の動作について説明する。入力装置110は、ある特
定のプログラミング言語で記述されたソースプログラム
を入力として、「1990年,サイエンス社,コンパイ
ラ原理・技法・ツール,A.V.エイホ,R.セシィ,
J.D.ウルマン共著,原田賢一訳」に示されるような
手法を用いて、構文解析および制御フロー解析を行ない
制御フローグラフを出力する。制御フローグラフの各ノ
ードはソースプログラムの各文または各述語に対応して
おり、それぞれ別名グラフが付加されている。別名グラ
フは変数間の関係をグラフで表現しており、通常の変数
とポインタ変数がノードに、指すという関係をアークが
対応している。別名グラフは空グラフに初期化されてい
る。
【0025】入力装置110の出力となる制御フローグ
ラフはポインタ解析装置120に供給される(ステップ
A1)。ポインタ解析装置120は、別名グラフのどれ
かに変化がなくなるまで、nにおける別名グラフAFF
ECT[n]に処理を加える(ステップA2およびA
3)。
【0026】以下各文n における処理について述べ
る。まず、グラフ併合手段131は、別名グラフAFF
ECT[n]をnに先行するノードmにおける別名グラ
フAFFECT[m]の和集合に設定する(ステップA
4)。ステップA5およびA6で、ノードnが代入文p
=qに対応したノードならば、間接度計算手段134
は、左辺の変数pおよび右辺の変数qの間接度を、それ
ぞれlen(p)およびlen(q)に求める。これら
の間接度を用いて、グラフ検索手段132は、別名グラ
フ中でpに対応したノードからlen(p)だけのアー
クをたどって到達できるノード集合をFromに求める
(ステップA6)。また、グラフ検索手段132は、別
名グラフ中でqに対応したノードからlen(q)+1
だけのアークをたどって到達できるノード集合をToに
求める(ステップA7)。もし、Fromの要素が唯一
ならば、アーク変更手段133は、その要素であるノー
ドから出るアークを全て削除する(ステップA8)。さ
らに、アーク変更手段133は、From 中の各ノー
ドからTo中の各ノードへ至るアーク集合を計算し、こ
のアーク集合をAFFECT[n]に追加する(ステッ
プA9)。
【0027】A2のループを抜けた後、ポインタ解析装
置120は各AFFECT[n]を出力装置140に出
力する(ステップA10)。
【0028】次に、図3を参照して、具体例を用いて説
明する。例えば、以下のプログラムが入力装置110か
ら与えられたとする。 入力装置110において、別名グラフAFFECT
[1]、AFFECT[2]、AFFECT[3]はそ
れぞれ空グラフに初期化される。
【0029】まず、n=1の時の処理を行なう。グラフ
併合手段131は、AFFECT[1]を空グラフに初
期化する。間接度計算手段134は、len(p)=0
およびlen(&x)=−1であることを計算し、グラ
フ検索手段132は、From={*p}およびTo=
{x}を求める。アーク変更手段133はアーク(*
p、x)をAFFECT[1]に追加する(図3
(a))。
【0030】次に、n=2の時の処理を行なう。グラフ
併合手段131は、AFFECT[2]=AFFECT
[1]に初期化する。間接度計算手段134は、len
(q)=0およびlen(&p)=−1であることを計
算し、グラフ検索手段132は、From={**q}
およびTo={*p}を求める。アーク変更手段133
はアーク(**q、*p)をAFFECT[2]に追加
する(図3(b))。
【0031】最後に、n=3の時の処理を行なう。グラ
フ併合手段131は、AFFECT[3]=AFFEC
T[2]に初期化する。間接度計算手段134 は、l
en(*q)=1およびlen(&y)=−1であるこ
とを計算し、グラフ検索手段132は、**qから1つ
のアークをたどった結果、From={*p}および、
To={y}を求める。ここで、Fromがxのみを指
しているためアーク変更手段133はアーク(*p、
x)を削除し、アーク(**q、*p)をAFFECT
[3]に追加する(図3(c))。
【0032】以上より、このプログラムでは**qが*
pを指し、*pがyを指すことが解析できる。
【0033】図7は第2の発明の実施例を示すブロック
図である。図7を参照すると、第2の発明の実施例はあ
る特定のプログラミング言語で記述されたソースプログ
ラムを構文解析、制御フロー解析することにより、制御
フローグラフを出力する入力装置110と、別名関係を
解析する静的解析装置320と、別名グラフを操作する
グラフ処理装置130と、ディスプレイ装置等の出力装
置140とから構成される。
【0034】静的解析装置320は、ポインタ変数が指
す可能性のある変数集合を同定するポインタ解析手段3
21と、別名関係を解析する別名解析手段322とを備
える。グラフ処理装置130は、グラフ併合手段131
と、グラフ検索手段132と、アーク変更手段133
と、間接度計算手段134と、推移的閉包計算手段33
5とを備える。
【0035】グラフ併合手段131は、複数の別名グラ
フを入力として、それらのグラフ中のノードとアークの
和集合を含む別名グラフを出力する。グラフ検索手段1
32は、別名グラフと、ノードを入力として、間接度だ
けアークをたどって到達することができるノード集合を
出力する。アーク変更手段133は、別名グラフに対し
てアークの追加と削除を行なう。間接度計算手段134
は、ポインタ変数の間接度を計算する。
【0036】次に、図7および図8を参照して、本実施
例の動作について説明する。入力装置110は、ある特
定のプログラミング言語で記述されたソースプログラム
を入力として、構文解析および制御フロー解析を行ない
制御フローグラフと初期化済みの別名グラフを出力す
る。ここで、制御フローグラフの各ノードはソースプロ
グラムの各文または各述語に対応している。また、別名
グラフは、変数間の関係をグラフで表現したグラフであ
り、通常の変数とポインタ変数がノードに、指すという
関係をアークが対応している。入力装置110の出力と
なる制御フローグラフはポインタ解析手段321に供給
される(ステップA1)。ポインタ解析手段321は、
別名グラフのどれかに変化がなくなるまで、nにおける
別名グラフAFFECT[n]に処理を加える(ステッ
プA2およびA3)。
【0037】以下各文nにおける処理について述べる。
まず、グラフ併合手段131は、別名グラフAFFEC
T[n]をnに先行するノードmにおける別名グラフA
FFECT[m]の和集合に設定する(ステップA
4)。ステップA5およびA6で、ノードnが代入文p
=qに対応したノードならば、間接度計算手段134
は、左辺の変数pおよび右辺の変数qの間接度を、それ
ぞれlen(p)およびlen(q)に求める。これら
の間接度を用いて、グラフ検索手段132は、別名グラ
フ中でpに対応したノードからlen(p)だけのアー
クをたどって到達できるノード集合をFromに求める
(ステップA6)。また、グラフ検索手段132は、別
名グラフ中でqに対応したノードからlen(q)+1
だけのアークをたどって到達できるノード集合をToに
求める(ステップA7)。もし、Fromの要素が唯一
ならば、アーク変更手段133は、その要素であるノー
ドから出るアークを全て削除する(ステップA8)。さ
らに、アーク変更手段133は、From中の各ノード
からTo中の各ノードへ至るアーク集合を計算し、この
アーク集合をAFFECT[n]に追加する(ステップ
A9)。
【0038】A2のループを抜けた後、別名解析手段1
22は各AFFECT[n]に対して、推移閉包計算手
段335を用いることにより、AFFECT[n]に別
名関係を加える(ステップC1およびC2)。推移閉包
計算手段335は、演算 AFFECT[n]=AFFECT[n]* ○ tr
anspose(AFFECT[n])* を行なうことにより、ポインタ変数が指す可能性のある
変数集合だけでなく、ある変数を指す可能性のあるポイ
ンタ変数の集合を求めることができる。ここで、AFF
ECT[n]、POINT[n]はそれぞれブール行列
で表現される。AFFCT[n]*は反射的推移的閉包
を表し、transpose(AFFECT[n])は
転置行列を表す。
【0039】最後に別名解析手段122はこの別名関係
AFFECT[n]を出力装置140に出力する(ステ
ップA10)。
【0040】次に、図9を参照して、具体例を用いて説
明する。例えば、以下のポインタ変数を用いて変数を交
換するプログラムが入力装置110から与えられたとす
る。 入力装置110において、別名グラフAFFECT
[1]、AFFECT[2]、AFFECT[3]、A
FFECT[4]、AFFECT[5]はそれぞれ空グ
ラフに初期化される。
【0041】図9の表の左側に、図8のA2ループを抜
けた時点のAFFECT[n]の計算結果を示す。文
1、2では単純にアークを加える。文3では、*rは*
pの指す変数xを指す。文4では、アーク(*p、x)
は削除され(*p、y)が追加される。文5では、アー
ク(*q、y)は削除され(*q、x)が追加され、*
pと*qの指す変数は交換される。 図9の右側に、図
8のC1ループを抜けた時点のAFFECT[n]の計
算結果を示す。推移的閉包演算を行なうと、新たに*q
と*rの間に別名関係が生ずる。
【0042】
【発明の効果】以上に説明したように、第1の発明によ
るポインタ解析システムは、変数間の関係をグラフで表
現しており、ポインタ変数が間接的に指すということ
が、グラフのアークを推移的にたどることに対応付けら
れるため、ポインタ変数が指す変数だけでなく、ポイン
タ変数が間接的に変数を指す場合も解析できるという効
果を有する。
【0043】第2の発明によるポインタ解析システム
は、第1の発明の効果に加えて、グラフ上で推移的閉包
演算を行なう別名解析手段を設けたため、変数間の別名
関係を解析できるという効果を有する。
【図面の簡単な説明】
【図1】第1の発明の実施例を示すブロック図である。
【図2】第1の発明の実施例における処理の流れを表す
フローチャートである。
【図3】第1の発明の実施例におけるデータ構造を追跡
した図である。
【図4】第1の発明を使用しない従来の一実施例を示す
ブロック図である。
【図5】従来の実施例における処理の流れを表すフロー
チャートである。
【図6】従来の実施例におけるデータ構造を追跡した図
である。
【図7】第2の発明の実施例を示すブロック図である。
【図8】第2の発明の実施例における処理の流れを表す
フローチャートである。
【図9】第2の発明の実施例におけるデータ構造を追跡
した図である。
【符号の説明】
110、210 入力装置 120 ポインタ解析装置 130 グラフ処理装置 131 グラフ併合手段 132 グラフ検索手段 133 アーク変更手段 134 間接度計算手段 140、240 出力装置 220 ポインタ解析装置 230 リスト処理装置 231 リスト併合手段 233 リスト変更手段 320 静的解析装置 321 ポインタ解析手段 322 別名解析手段 335 推移的閉包計算手段

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムを構文解析し、制御フ
    ロー解析することにより、プログラムの文がノードに、
    制御の流れがアークに対応した制御フローグラフを出力
    する入力手段と、前記制御フローグラフの各ノードに付
    加されている別名グラフを併合するグラフ併合手段と、
    前記ソースプログラム中のポインタ変数の間接度を計算
    する間接度計算手段と、前記間接度に応じてポインタ変
    数が指している変数集合を検索するグラフ検索手段と、
    前記変数集合をもとに別名グラフ上のアークを追加削除
    するアーク変更手段と、前記制御フローグラフを入力
    し、前記グラフ併合手段と前記グラフ検索手段と前記ア
    ーク変更手段を用いてポインタ変数が指す可能性のある
    変数集合を示した別名グラフを出力するポインタ解析装
    置と、前記ポインタ解析装置の出力を表示する出力装置
    とから成ることを特徴とするポインタ解析システム。
  2. 【請求項2】 推移的開包演算を行う推移的閉包計算手
    段と、前記ポインタ解析手段の出力を入力として前記推
    移的閉包計算手段を用いて、複数のポインタ変数が同じ
    変数を指すときそれぞれのポインタ変数の間に生じる変
    数の別名間の関係を前記変数集合とともに示した別名グ
    ラフを前記出力装置に出力する別名解析手段とを備える
    ことを特徴とする請求項1に記載のポインタ解析システ
    ム。
JP5141078A 1993-06-14 1993-06-14 ポインタ解析システム Pending JPH06348475A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5141078A JPH06348475A (ja) 1993-06-14 1993-06-14 ポインタ解析システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5141078A JPH06348475A (ja) 1993-06-14 1993-06-14 ポインタ解析システム

Publications (1)

Publication Number Publication Date
JPH06348475A true JPH06348475A (ja) 1994-12-22

Family

ID=15283711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5141078A Pending JPH06348475A (ja) 1993-06-14 1993-06-14 ポインタ解析システム

Country Status (1)

Country Link
JP (1) JPH06348475A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173444B1 (en) 1997-03-24 2001-01-09 International Business Machines Corporation Optimizing compilation of pointer variables in the presence of indirect function calls
JP2006031363A (ja) * 2004-07-15 2006-02-02 Mitsubishi Research Institute Inc バッファオーバーフロー脆弱性検出プログラム及びバッファオーバーフロー脆弱性検出方法
JP2010517163A (ja) * 2007-01-24 2010-05-20 エヌイーシー ラボラトリーズ アメリカ インク 並列プログラム用の高速で正確な静的データの競合検出方法
JP2010191598A (ja) * 2009-02-17 2010-09-02 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2011257872A (ja) * 2010-06-07 2011-12-22 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP5403362B2 (ja) * 2007-08-02 2014-01-29 日本電気株式会社 パターン検査システム、パターン検査装置、方法およびパターン検査用プログラム
JP2017536612A (ja) * 2014-10-17 2017-12-07 クアルコム,インコーポレイテッド ハードウェアフロー制御のためのコードポインタ認証

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173444B1 (en) 1997-03-24 2001-01-09 International Business Machines Corporation Optimizing compilation of pointer variables in the presence of indirect function calls
JP2006031363A (ja) * 2004-07-15 2006-02-02 Mitsubishi Research Institute Inc バッファオーバーフロー脆弱性検出プログラム及びバッファオーバーフロー脆弱性検出方法
JP2010517163A (ja) * 2007-01-24 2010-05-20 エヌイーシー ラボラトリーズ アメリカ インク 並列プログラム用の高速で正確な静的データの競合検出方法
JP5403362B2 (ja) * 2007-08-02 2014-01-29 日本電気株式会社 パターン検査システム、パターン検査装置、方法およびパターン検査用プログラム
JP2010191598A (ja) * 2009-02-17 2010-09-02 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2011257872A (ja) * 2010-06-07 2011-12-22 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP2017536612A (ja) * 2014-10-17 2017-12-07 クアルコム,インコーポレイテッド ハードウェアフロー制御のためのコードポインタ認証

Similar Documents

Publication Publication Date Title
Butterfield et al. A dictionary of computer science
Wahler et al. Clone detection in source code by frequent itemset techniques
US6327699B1 (en) Whole program path profiling
US20110060980A1 (en) Linked code generation report
AU2004260392A1 (en) System and method for implementing quality control rules formulated in accordance with a quality control rule grammar
JPH06348475A (ja) ポインタ解析システム
CN115292058A (zh) 一种业务场景级别服务拓扑生成方法、装置及电子设备
US20030233640A1 (en) Structuring program code
Guerrero-Bote et al. Binary pathfinder: An improvement to the pathfinder algorithm
US6993749B2 (en) Conditional debug monitors
JP2001325100A (ja) プログラム解析装置
JPH08194611A (ja) プログラム修正による影響範囲を解析する装置
JPH06231081A (ja) 数式表示方式
JPH09288580A (ja) ソースプログラムの最適化装置および最適化方法
JP2003050722A (ja) プログラム解析システムとプログラム解析方法
JP5013506B2 (ja) アプリケーションプログラムの実行方法、その装置及びプログラム
JP6953962B2 (ja) 解析方法、解析装置及び解析プログラム
Antunes et al. Building an automaton towards reverse protocol engineering
Du et al. Axiomatization of Hybrid Logic of Link Variations
JPH03230259A (ja) 注釈付加方式
Kwiatkowska et al. Metric denotational semantics for PEPA
JP3658771B2 (ja) コンパイラ装置
Hölzl Constraint-functional programming based on generic functions
JP2797777B2 (ja) 言語処理装置
Hinze et al. Derivation of a typed functional LR parser

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19960528