JP2003050722A - プログラム解析システムとプログラム解析方法 - Google Patents
プログラム解析システムとプログラム解析方法Info
- Publication number
- JP2003050722A JP2003050722A JP2001236630A JP2001236630A JP2003050722A JP 2003050722 A JP2003050722 A JP 2003050722A JP 2001236630 A JP2001236630 A JP 2001236630A JP 2001236630 A JP2001236630 A JP 2001236630A JP 2003050722 A JP2003050722 A JP 2003050722A
- Authority
- JP
- Japan
- Prior art keywords
- node
- program
- flow graph
- cfg
- memory
- 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
Links
Abstract
つ汎用性を有するプログラム解析システム及びプログラ
ム解析方法を提供する。 【解決手段】 プログラムを解析するプログラム解析方
法であって、構造化プログラミング言語により記述され
たプログラムを字句解析してトークン列を生成するステ
ップS1と、トークン列を構文解析して、解析木と構文
木を生成するステップS2と、解析木に対してCFGを
生成すると共に、構文木に対して第一のDFGを生成す
るステップS3と、生成されたCFGの節点に対応する
第二のDFGを生成するステップS4と、生成されたC
FGと前記第一及び第二のDFGを表示するステップS
5とを有することを特徴とするプログラム解析方法を提
供する。
Description
するソフトウェア及びハードウェアの開発において利用
されるプログラム解析システム及びプログラム解析方法
に関するものである。
ェアの高機能化により、高速で複雑な処理を要求するソ
フトウェアを該ハードウェア上で実行可能になってきて
いる。このため、ソフトウェア開発は従来のアセンブラ
言語等に代表される低水準言語から、C言語等の手続き
型言語やC++及びJava(登録商標)等のオブジェクト
指向言語によって開発されるようになっている。また、
近年のソフトウェア開発においては、ソフトウェアが大
規模化しているため、コーディングを複数の開発者が分
担して、個々の開発者により作成されたサブモジュール
を組み合わせる手法が一般的になっている。このため、
他の設計者により作成されたプログラムを容易に解読し
たいといった要求が高まっている。
80号公報に示されるように、オブジェクト指向言語によ
り記述されたプログラムに示された処理手順を視覚的に
表現する手法が提案されている。すなわち、このような
手法により、例えば図11に示されたソースコードに対
応して、図12に示されるような表記図が生成される。
2に示されるように、クラス及び関数等のデータ処理単
位間における関係を表記するが、該データ処理単位内に
おける演算子同士の依存関係などといった処理の詳細に
ついてまで表記しないため、ソフトウェアやハードウェ
アの開発に必要とされる程度まで十分にプログラムの解
析を行えないという問題があった。
グラミング言語がオブジェクト指向言語に特化されてい
るため、十分な汎用性を有しないといった問題がある。
問題を解消するためになされたもので、ソフトウェアや
ハードウェアの開発に必要な程度まで十分にプログラム
を解析することができ、かつ汎用性を有するプログラム
解析システム及びプログラム解析方法を提供することを
目的とする。
ラムを解析するプログラム解析システムであって、構造
化プログラミング言語により記述されたプログラムをデ
ータ処理単位に分割し、データ処理単位間における相互
関係、及び各々のデータ処理単位内におけるデータの処
理手順を画像により表示する解析手段を備えたことを特
徴とするプログラム解析システムを提供することにより
達成される。
ミング言語により記述されたプログラムに関して、デー
タ処理単位相互の関係のみならず、該データ処理単位内
における処理手順まで容易に解析することができる。こ
こで、より具体的には、上記解析手段は、プログラムを
字句解析してトークン列を生成し、トークン列より構文
木及び解析木を生成するものとすることができ、さら
に、データ処理単位の相互依存関係を示すコントロール
フローグラフやデータ処理単位内におけるデータの処理
の相互依存関係を示すデータフローグラフを生成するも
のとすることができる。
ミング言語により記述されたプログラムを、人間にとっ
て理解し易いような画像により表現することができる。
ールフローグラフの節点を特定する情報と、節点に対応
して関連付けられたデータフローグラフをメモリへ格納
し、ユーザにより節点が選択されたときは、選択された
節点に関連付けられつつメモリに格納されたデータフロ
ーグラフを表示するものとすれば、コントロールフロー
グラフと対応するデータフローグラフとを必要に応じて
容易に参照することができる。また、本発明の目的は、
プログラムを解析するプログラム解析方法であって、構
造化プログラミング言語により記述されたプログラムを
字句解析してトークン列を生成するステップと、トーク
ン列を構文解析して、解析木と構文木を生成するステッ
プと、解析木に対してコントロールフローグラフを生成
すると共に、構文木に対して第一のデータフローグラフ
を生成するステップと、生成されたコントロールフロー
グラフの節点に対応する第二のデータフローグラフを生
成するステップと、生成されたコントロールフローグラ
フと第一及び第二のデータフローグラフを表示するステ
ップとを有することを特徴とするプログラム解析方法を
提供することにより達成される。
ミング言語により記述されたプログラムを、データ処理
単位相互の関係のみならず、該データ処理単位内におけ
る処理手順まで明瞭に表示することができる。
態を図面を参照しつつ詳しく説明する。なお、図中同一
符号は同一または相当部分を示す。
ラム解析システムの構成を示す図である。図1に示され
るように、本実施の形態に係るプログラム解析システム
は、メモリ1とバス2、CPU3、入力装置5、及び表
示装置7を備えたものである。ここで、メモリ1とCP
U3、入力装置5及び表示装置7はそれぞれバス2に接
続される。
や構文解析、コントロールフローグラフ(CFG)及び
データフローグラフ(DFG)の生成と表示を実行する
ためのプログラム、及び解析対象とされるプログラムが
予め格納される。
節点、及びループ節点という三種類の節点と、該節点相
互間の関係を示す枝とによってデータ処理の手順を視覚
的に示すグラフ、「DFG」とは演算と変数、命令文、
ラベル、関数呼び出し、ループ、及び条件分岐を表す節
点と、該演算の依存関係を表す枝とによってデータ処理
の手順を視覚的に示すグラフを意味する。
本発明の実施の形態に係るプログラム解析システムの動
作を説明する。
を説明するフローチャートである。図2に示されるよう
に、まずステップS1において、CPU3はメモリ1に
格納された所定のプログラムを実行することによって、
メモリ1に格納された解析対象とするプログラム(以下
においては、「動作記述」ともいう。)を字句解析し、
トークン列を生成する。なお、以下においてはC言語に
よるプログラムを動作記述の例として説明する。また、
上記において「トークン列」とは、プログラミング言語
の予約語や演算子、識別子、括弧、区切り文字等として
予め定義された文字列をいう。
1から読み出した動作記述を予め定義された文字列と順
次比較することによって、トークン列を生成する。な
お、動作記述に付記されたコメントは、この字句解析時
に削除するようにしても良い。また、CPU3は認識で
きない字句を読み出した場合には、該字句解析を中断し
て表示装置7に「字句エラー」と表示する。
た動作記述をスペース文字(スペース、タブ、改行)及
び区切り文字(括弧、句読点、セミコロン、コロン)に
よって区切り、図4に示されたようにトークン列に分解
する。なおこのとき、動作記述に含まれたスペース文字
はトークン列として保持されることなく削除される。
り生成したトークン列をメモリ1へ格納する。
メモリ1に格納された所定のプログラムを実行すること
によって、メモリ1に格納された上記トークン列を構文
解析し、解析木と構文木を生成する。
のエラーを見出した場合には、該構文解析を中断して表
示装置7に「構文エラー」と表示する。
たトークン列をC言語の構文に従って、図5に示される
ように解析木に変換する。なおこのとき、CPU3は各
節点を「int」や「if」などと表記される識別子と、他
の節点への参照先を保持するブロックとから構成する。
義や演算優先順位に応じて、図6に示されるような構文
木を生成する。なお、図6は図3に示された(式1)を
構文木に変換した例である。CPU3は、図6に示され
るように、優先順位が最も高い演算を葉節点(葉ノー
ド)とし、優先順位が最も低い演算を根節点(根ノー
ド)として構文木を構成し、各節点は識別子及び他の節
点への参照先を保持するブロックから構成する。
り生成した解析木と構文木とをメモリ1へ格納する。
て、CPU3はまず最初に、メモリ1に格納された所定
のプログラムを実行することによってメモリ1に格納さ
れた上記解析木を入力し、CFGに変換する。ここで、
CPU3は、解析木を根節点から順に探索し、探索され
た節点が関数本体や分岐あるいはループ処理のいずれか
である場合に、対応するCFGの節点をCFGに追加す
る。以下において、このような該CFGへの変換方法
を、図7に示されたフローチャートを参照しつつ具体的
に説明する。なお、以下の方法はCPU3により実行さ
れる。
に示されるように、まず解析木の最初のブロックをCF
Gの初期節点(節点ブロックBpt)として初期化する
と共に、該節点ブロックBptを含む節点を他の節点に
対する接続先とすべく根節点Ncpとして設定する。
に未処理ブロックがないか否かを判断し、ない場合には
CFGの生成動作を終了し、ある場合にはステップS3
へ進む。ステップS3では、節点ブロックBptの参照
先Pptが関数であるか否かを判断し、関数である場合
にはステップS4へ進むと共に、関数でない場合にはス
テップS20へ進む。
イプの型、識別子、引数を根節点Ncpの情報として登
録し、節点ブロックBptを次の未処理ブロックへ移動
させると共に、ステップS2へ戻る。一方、ステップS
4では、図5に示されるように階層的に節点Ncを生成
し(create(Nc))、ステップS5において該節点Ncを
上記根節点Ncpに子節点として接続する。
tを特定する情報をメモリ1の所定領域に格納し(push
(Bpt))、ステップS7において該関数の型や識別子を
節点Ncの情報として登録する。そして、CPU3は指
定する節点ブロックBptを次の未処理ブロックへ移動
させる。
あるか否か判断し、引数であると判断された場合にはス
テップS30へ進み、引数でないと判断された場合には
ステップS9へ進む。ここで、ステップS30では、該
引数の型や識別子を上記節点Ncの情報として登録す
る。なお、このときCPU3は指定する節点ブロックB
ptをさらに次の未処理ブロックへ移動させ、ステップ
S8へ戻る。
る節点の先頭ブロックを節点ブロックBptとし、ステ
ップS10において未処理ブロックがないか否かを判断
する。そして、未処理ブロックがあると判断した場合に
はステップS11へ進むと共に、未処理ブロックがない
と判断した場合にはステップS40へ進む。
てメモリ1内にスタックされた情報が空であるか否かを
判断し、空であると判断した場合にはステップS41へ
進み、空でないと判断した場合にはステップS50へ進
む。このとき、ステップS41で元の根節点Ncpへ戻
り、ステップS2へ進む一方、ステップS50では根節
点Ncpの情報として最後に登録された情報を読み出し
(pop(Ncp))、かつ節点Ncの情報として最後に登録
された情報を読み出し(pop(Nc))、さらに節点ブロ
ックBptの情報として最後に登録された情報を読み出
す(pop(Bpt))。なお、このような処理を実行した
CPU3は、後述するステップS11の処理へ進む。
(変数宣言)であるか否か判断し、変数であると判断さ
れた場合にはステップS60へ進み、変数でないと判断
された場合にはステップS12へ進む。ここで、ステッ
プS60では、該変数を上記節点Ncの情報として登録
する。なお、このときCPU3は指定する節点ブロック
Bptをさらに次の未処理ブロックへ移動させ、ステッ
プS11へ戻る。
が分岐命令であるか否か判断し、分岐命令であると判断
された場合にはステップS15へ進み、分岐命令でない
と判断された場合にはステップS13へ進む。
する情報をメモリ1の第一領域にスタック(順に格納)
すると共に、最後に作成した節点Ncを特定する情報を
メモリ1の第二領域にスタックし、さらに節点ブロック
Bptを特定する情報をメモリ1の第三領域にスタック
する。
第二領域へ最後に格納された節点Ncを新たな根節点N
cpとして設定する。その後、ステップS17で節点N
cを生成し、ステップS18において該節点Ncを子節
点として上記根節点Ncpに接続する。なお、このよう
な動作を終えた後は、ステップS9へ戻る。
がループ命令であるか否か判断し、ループ命令であると
判断された場合にはステップS15へ進み、ループ命令
でないと判断された場合にはステップS14へ進む。ス
テップS14では、該参照先Pptのループ命令を節点
Ncの情報として登録し、ステップS12へ戻る。
FGへの変換方法であるが、上記においてCFGの各節
点は、その作成時に型や識別子、引数の型及び識別子、
条件式、内部処理に関する情報のうち、各節点において
保持できるものを例えばメンバといった節点に付随する
情報として保持する。そして、これらのメンバは、トー
クン列やトークン列の先頭アドレス、解析木の節点、解
析木の節点の先頭アドレス、該アドレスが一意に定まる
インデックスのいずれであっても良い。
る構文木からのDFGの生成、及び同じく図2に示され
たステップS4に示されたCFGの節点に対応するDF
Gの生成について説明する。CPU3はCFGの節点一
つに対応してDFGを一つ以上生成するが、このときC
PU3はDFG生成時に、DFGを表す情報をメンバな
どCFGの節点に付随する情報としてメモリ1へ保持す
る。なお、このDFGを表す情報は、例えばDFG根節
点のアドレス等とされる。
件分岐の節点では内部処理をDFGで構成する必要がな
く、CPU3は対応するCFGの節点又はDFGが一意
に定まる情報を上記メンバ等の節点に付随する情報とし
てメモリ1に保持する。なおDFGの節点は、例えばイ
ンデックスやCFGを示すアドレス等からなる該情報が
メンバとして関連付けられる。
応して生成されたDFGの例が示される。CPU3はD
FGの節点に対応させて、変数又は他の節点との接続情
報をメモリ1へ格納する。また、図8に示されるよう
に、演算式に対応したDFGは上記の構文木と同様な形
態に生成される。すなわち例えば、図8に示されたX=
(a+b)*cという演算を実行する場合には、加算の
対象とされる変数aと変数bがそれぞれ該加算節点ND
Aに接続されると共に、該加算節点NDAが乗算節点N
DMに接続される。また、変数cが乗算節点NDMに接
続され、乗算節点NDM及び変数xはそれぞれイコール
節点NDEに接続される。
数のCFG及びDFGを先に生成し、若しくは、呼び出
される関数に対応する部分を解析木や構文木から順次生
成する方法により得ることができる。
呼び出し節点を作成することなく、字句解析前に該演算
についての動作記述を全動作記述に組み込み(インライ
ン展開)、その後該全動作記述を図式化するようにして
も良い。
又は間接的に接続されている必要は無く、実行する節点
の順序が一意に定まっていればよい。すなわち例えば、
図8に示されたfor文に対応する節点とbreak文に対応す
る節点は互いに枝によって接続される必要は無く、節点
の情報が格納されているメモリ1の番地をCPU3が比
較すること等により、実行順序が定められるようにして
も良い。
ステップS5において、上記のように生成されたCFG
及びDFGを表示装置7に表示させる。より具体的に
は、CPU3は上記のような方法により生成されたCF
Gを表示装置7に表示するコンポーネントに関連付け、
CFG表示用のフレームに表示する。ここで、例えば関
数の節点と分岐及びループに対して、それぞれ図9
(1)から図9(3)に示されるような表示コンポーネ
ントが関連付けられ、図10に示されるように、動作記
述に含まれるCFGの各節点がこれらの表示コンポーネ
ントにより表記される。
条件分岐とループに対応するコンポーネントがあればよ
く、たとえ関数が文法上存在する言語であっても、存在
する全ての関数を字句解析前にインライン展開すること
により、関数に対応したコンポーネントは必要とされな
い。すなわち、本実施の形態に係るプログラム解析装置
は、関数用のコードを含まない動作記述も解析すること
ができる。
PU3により対応するCFGの節点に関する情報に関連
付けられる。これによって、入力装置5でコンポーネン
トを選択すると、CPU3により対応するCFGの節点
が一意に定められると共に、該CFGに付随する情報が
表示装置7に表示される。
節点に対応してメモリ1に保持される型や識別子、引数
の型、及び識別子や条件式、あるいは内部処理に関する
情報から各CFG節点に対応する動作記述のトークン列
をメモリ1から読み出し、該トークン列をスペース文字
で区切った文字列を生成することにより、CFGの各節
点に対応する動作記述を表示装置7に表示する機能を有
するものとすることができる。
ログラム言語の予約語とを比較することにより、表示装
置7において例えば該予約語のみ色を変えて表示するよ
うにしても良い。
各節点に対応させつつDFG生成時に得られたDFGの
情報をメモリ1に格納する。これより例えば、CPU3
は、CFGの節点に関連付けられたDFGの情報をもと
に、各CFGの節点に対応するDFGを表示装置7に表
示することができる。なお、この場合における表示形式
は、節点の種類や実行順序、あるいは節点相互の依存関
係といった情報を表すことができる形式であれば足り
る。
けられたDFGの情報から、例えば各CFGの節点に対
応する処理内に含まれた演算や命令、あるいは変数の数
や種類を算出し、表示装置7に表示することもできる。
なお、このときCPU3は、例えばDFGのメンバのう
ち算出対象に相当するデータのみをカウントすることに
より、上記数や種類を算出する。また、DFGの各節点
同士が直接的又は間接的に枝により接続されている場合
には、DFGを根節点から探索することにより該数や種
類を探索することもできる。
を3つのフレームに分割し、第一フレームでCFGを表
示し、第二フレームで動作記述を表示し、第三フレーム
でDFGを表示することができる。このような表示方法
によれば、動作記述により表された処理同士の依存関係
や処理内容を視覚的に容易に理解できるよう表示させる
ことができる。
ム上でCFGの節点を選択できる表示形式にして、該C
FGの節点が選択されたとき、該節点が保持するDFG
や動作記述、及び変数や演算、命令の種類や個数に対応
するメンバにアクセスすることにより、該節点に対応す
る各々の情報を他のフレームに表示することができる。
ラム解析システムは、構造化プログラム言語の動作記述
を解析し、該動作記述により表された処理を条件分岐、
ループ、関数を表すブロックに分割し、各ブロック同士
の依存関係及びブロック内の演算及び命令文をGUI
(Graphical User Interface)上に視覚的に表現するも
のである。そして、主として以下の四つの特徴を有する
システムとされる。
格納されたプログラムを実行することによって、構造化
プログラミング言語による動作記述から分岐処理、ルー
プ処理、関数といった処理単位を抽出してグラフ化し、
表示装置7に表示する。
各処理単位内の演算や命令を動作記述及び変数、演算、
命令の種類や数といった形式で表示装置7に表示する。
動作記述に表された処理内容を異なる複数の形式で表示
装置7上に同時に表示することができる。
は、ユーザに対して表示装置7上でCFGの節点を任意
に選択できるようにし、CFGと共に選択されたCFG
の節点に対応するDFGや動作記述及び演算や変数、命
令の種類や個数を同時に表示することができる。
グラム解析システム及びプログラム解析方法によれば、
構造化プログラミング言語による動作記述(プログラ
ム)において、実行時間を要する部分の検証や、かかる
部分をハードウェアにより実現するために必要とされる
回路等を容易に解析できるため、ソフトウェア/ハード
ウェア分割などの作業を簡易化して、ソフトウェア及び
ハードウェア相互の開発を促進することができる。
れと、選択された処理単位内の流れを同時に表示するこ
とにより、一部の処理の抽出や、検証対象とされる処理
の処理全体における位置付けの把握などを容易に実現す
ることができる。
びプログラム解析方法によれば、構造化プログラミング
言語により記述されたプログラムに関して、データ処理
単位相互の関係のみならず、該データ処理単位内におけ
る処理手順まで容易に解析することができるため、ソフ
トウェア開発、及びプログラム解析の必要なハードウェ
ア開発を有効に促進することができる。
テムの構成を示すブロック図である。
を示すフローチャートである。
列を示す図である。
示す図である。
である。
る。
トとの関係を示す図である。
成された従来の表記図である。
表示装置。
Claims (6)
- 【請求項1】 プログラムを解析するプログラム解析シ
ステムであって、 構造化プログラミング言語により記述されたプログラム
をデータ処理単位に分割し、前記データ処理単位間にお
ける相互関係、及び各々の前記データ処理単位内におけ
るデータの処理手順を画像により表示する解析手段を備
えたことを特徴とするプログラム解析システム。 - 【請求項2】 前記解析手段は、前記プログラムを字句
解析してトークン列を生成し、前記トークン列より構文
木及び解析木を生成する請求項1に記載のプログラム解
析システム。 - 【請求項3】 前記解析手段は、前記データ処理単位の
相互依存関係を示すコントロールフローグラフを生成す
る請求項1に記載のプログラム解析システム。 - 【請求項4】 前記解析手段は、前記データ処理単位内
におけるデータの処理の相互依存関係を示すデータフロ
ーグラフを生成する請求項1から3のいずれかに記載の
プログラム解析システム。 - 【請求項5】 前記解析手段はメモリを含み、 前記コントロールフローグラフの節点を特定する情報
と、前記節点に対応して関連付けられた前記データフロ
ーグラフを前記メモリへ格納し、ユーザにより前記節点
が選択されたときは、選択された前記節点に関連付けら
れつつ前記メモリに格納された前記データフローグラフ
を表示する請求項4に記載のプログラム解析システム。 - 【請求項6】 プログラムを解析するプログラム解析方
法であって、 構造化プログラミング言語により記述されたプログラム
を字句解析してトークン列を生成するステップと、 前記トークン列を構文解析して、解析木と構文木を生成
するステップと、 前記解析木に対してコントロールフローグラフを生成す
ると共に、前記構文木に対して第一のデータフローグラ
フを生成するステップと、 生成された前記コントロールフローグラフの節点に対応
する第二のデータフローグラフを生成するステップと、 生成された前記コントロールフローグラフと前記第一及
び第二のデータフローグラフを表示するステップとを有
することを特徴とするプログラム解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001236630A JP2003050722A (ja) | 2001-08-03 | 2001-08-03 | プログラム解析システムとプログラム解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001236630A JP2003050722A (ja) | 2001-08-03 | 2001-08-03 | プログラム解析システムとプログラム解析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003050722A true JP2003050722A (ja) | 2003-02-21 |
Family
ID=19067857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001236630A Pending JP2003050722A (ja) | 2001-08-03 | 2001-08-03 | プログラム解析システムとプログラム解析方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003050722A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010507165A (ja) * | 2006-10-19 | 2010-03-04 | チェックマークス リミテッド | ソースコード内のセキュリティ脆弱性の検出 |
US9141806B2 (en) | 2010-08-24 | 2015-09-22 | Checkmarx Ltd. | Mining source code for violations of programming rules |
JP2017204035A (ja) * | 2016-05-09 | 2017-11-16 | 日本電信電話株式会社 | 単機能部化システム、単機能部化方法および単機能部化プログラム |
US11087002B2 (en) | 2017-05-10 | 2021-08-10 | Checkmarx Ltd. | Using the same query language for static and dynamic application security testing tools |
US11836258B2 (en) | 2020-07-28 | 2023-12-05 | Checkmarx Ltd. | Detecting exploitable paths in application software that uses third-party libraries |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06161773A (ja) * | 1992-11-20 | 1994-06-10 | Sanyo Electric Co Ltd | 並列処理プログラムの作成装置 |
JPH0793144A (ja) * | 1993-09-20 | 1995-04-07 | Fujitsu Ltd | プログラム解析装置 |
JPH08190475A (ja) * | 1995-01-05 | 1996-07-23 | Fujitsu Ltd | プログラム解析装置 |
JPH10214180A (ja) * | 1997-01-31 | 1998-08-11 | Meidensha Corp | ソフトウェアの開発支援方法 |
-
2001
- 2001-08-03 JP JP2001236630A patent/JP2003050722A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06161773A (ja) * | 1992-11-20 | 1994-06-10 | Sanyo Electric Co Ltd | 並列処理プログラムの作成装置 |
JPH0793144A (ja) * | 1993-09-20 | 1995-04-07 | Fujitsu Ltd | プログラム解析装置 |
JPH08190475A (ja) * | 1995-01-05 | 1996-07-23 | Fujitsu Ltd | プログラム解析装置 |
JPH10214180A (ja) * | 1997-01-31 | 1998-08-11 | Meidensha Corp | ソフトウェアの開発支援方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010507165A (ja) * | 2006-10-19 | 2010-03-04 | チェックマークス リミテッド | ソースコード内のセキュリティ脆弱性の検出 |
US9128728B2 (en) | 2006-10-19 | 2015-09-08 | Checkmarx Ltd. | Locating security vulnerabilities in source code |
US9141806B2 (en) | 2010-08-24 | 2015-09-22 | Checkmarx Ltd. | Mining source code for violations of programming rules |
JP2017204035A (ja) * | 2016-05-09 | 2017-11-16 | 日本電信電話株式会社 | 単機能部化システム、単機能部化方法および単機能部化プログラム |
US11087002B2 (en) | 2017-05-10 | 2021-08-10 | Checkmarx Ltd. | Using the same query language for static and dynamic application security testing tools |
US11836258B2 (en) | 2020-07-28 | 2023-12-05 | Checkmarx Ltd. | Detecting exploitable paths in application software that uses third-party libraries |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9513880B2 (en) | Graphical function specialization | |
TWI493464B (zh) | 用於晚期繫結可程式化輔助的系統與方法 | |
US7478366B2 (en) | Debugger and method for debugging computer programs across multiple programming languages | |
US5640558A (en) | Identifying and analyzing multiple level class relationships in an object oriented system by parsing source code without compilation | |
US8201140B2 (en) | System and method for creating and using graphical object instances in a statechart environment | |
US11579856B2 (en) | Multi-chip compatible compiling method and device | |
US20050223363A1 (en) | Evaluation of a code segment | |
US11675575B2 (en) | Checking source code validity at time of code update | |
US9164744B2 (en) | Method and system for program building | |
JPH0844547A (ja) | オブジェクト指向ソフトウェアの視覚化 | |
US20090328016A1 (en) | Generalized expression trees | |
US20060200796A1 (en) | Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus | |
WO2018161509A1 (zh) | 条件编译预处理方法、终端及存储介质 | |
JP2012063868A (ja) | 言語処理パーサーを組み合わせて、組み合わせパーサーを生成する方法、並びにそのコンピュータ及びコンピュータ・プログラム | |
US20140298290A1 (en) | Identification of code changes using language syntax and changeset data | |
JP2007511834A (ja) | リバーシブルなデザイン・ツリーの変換のための方法とシステム | |
JP2001522084A (ja) | 機械語記述からisaシミュレータとアセンブラを生成する方法 | |
US8701086B2 (en) | Simplifying analysis of software code used in software systems | |
US20170075668A1 (en) | Methods and Systems for Generating Client-Server Applications for Target Devices | |
Zhang et al. | Automated Extraction of Grammar Optimization Rule Configurations for Metamodel-Grammar Co-evolution | |
JP2003050722A (ja) | プログラム解析システムとプログラム解析方法 | |
KR20040103497A (ko) | 그래픽 유저 인터페이스 생성 방법 및 장치 | |
GB2420638A (en) | Method of substituting code fragments in Internal Representation | |
DeLine et al. | Lessons on converting batch systems to support interaction: Experience report | |
WO2008015110A2 (en) | Methods, apparatus and computer programs for modelling computer programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20080107 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080529 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110426 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110816 |