JP2014219969A - ソフトウェアプログラムを解析する方法及びシステム並びに非一時的なコンピュータ可読媒体 - Google Patents
ソフトウェアプログラムを解析する方法及びシステム並びに非一時的なコンピュータ可読媒体 Download PDFInfo
- Publication number
- JP2014219969A JP2014219969A JP2014082583A JP2014082583A JP2014219969A JP 2014219969 A JP2014219969 A JP 2014219969A JP 2014082583 A JP2014082583 A JP 2014082583A JP 2014082583 A JP2014082583 A JP 2014082583A JP 2014219969 A JP2014219969 A JP 2014219969A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- intermediate representation
- argument
- pattern
- check
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/47—Retargetable compilers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】方法600は、ソフトウェアプログラム602を中間表現へとコンパイルすること606を含む。方法600は、中間表現において、チェックパターン604におけるパターンと整合する命令を見つけること608を更に含む。方法600は、チェックパターンにおいて特定されるアクションに従って命令が変更されるインストルメントされた中間表現を生成すること610を更に含む。方法600は、インストルメントされた中間表現を記号的に実行すること612を更に含む。
【選択図】図6
Description
%1=load%2;
%3=(add|sub|mul)%1,%4;及び
store %3,%5。
上記のパターンは、単なる例示として与えられており、本願で記載される実施形態を制限するよう解釈されるべきではない。例えば、複数のパターンを備えるチェックパターンはわずか2つのパターン、又は3以上のパターンを含んでよい。更に、パターンの夫々は、上記の同じパターン及び/又は何らかの他の所望のパターンを含んでよい。
(付記1)
ソフトウェアプログラムを解析する方法であって、
ソフトウェアプログラムを中間表現へとコンパイルし、
前記中間表現において、チェックパターンにおけるパターンと整合する命令を見つけ、
前記チェックパターンにおいて特定されるアクションに従って前記命令が変更されるインストルメントされた中間表現を生成し、
前記インストルメントされた中間表現を記号的に実行する
方法。
(付記2)
前記チェックパターンにおいて特定されるアクションに従って前記命令が変更されるインストルメントされた中間表現を生成することは、前記中間表現における前記命令を、前記チェックパターンに含まれる差し替え用命令により置換することを含む、
付記1に記載の方法。
(付記3)
前記差し替え用命令は、エラーレポートへの呼び出しを含む、
付記2に記載の方法。
(付記4)
前記パターンは、2又はそれ以上の引数の間の関係を定義し、
前記アクションは、条件と、
前記命令が前記パターンによって特定される前記関係を有する2又はそれ以上の引数を含み、且つ
前記条件が満たされる
場合に前記中間表現における前記命令を置換する差し替え用命令とを特定する、
付記1に記載の方法。
(付記5)
前記2又はそれ以上の引数は、第1の引数及び第2の引数を含み、
前記パターンは、前記第1の引数が前記第2の引数でメモリに格納されることを含み、
前記条件は、前記第2の引数がゼロに等しいことを含み、
前記差し替え用命令は、ヌルポインタアクセスレポートへの呼び出しを含む、
付記4に記載の方法。
(付記6)
前記2又はそれ以上の引数は、第1の引数、第2の引数、及び第3の引数を含み、
前記パターンは、前記第3の引数を生成するよう前記第1の引数を前記第2の引数で割り算することを含み、
前記条件は、前記第2の引数がゼロに等しいことを含み、
前記差し替え用命令は、ゼロ除算レポートへの呼び出しを含む、
付記4に記載の方法。
(付記7)
前記条件は、ユーザによって定義される条件を含み、前記差し替え用命令は、前記ユーザによって定義されるレポートへの呼び出しを含む、
付記4に記載の方法。
(付記8)
更に、前記インストルメントされた中間表現の記号的実行に基づきレポートを生成し、該レポートは、前記ソフトウェアプログラム内の1又はそれ以上のエラーを示す、
付記1に記載の方法。
(付記9)
更に、
複数のチェックパターンのうちの対応する1つにおいて夫々含まれる複数のパターンのいずれかに整合する命令を前記中間表現から探し、
前記複数のチェックパターンのうちの対応する1つに整合する夫々の命令について、前記複数のチェックパターンのうちの対応する1つにおいて特定されるアクションに従って前記中間表現からの対応する命令を変更し、
前記複数のパターンのいずれかに整合する命令を前記中間表現から探す前に、前記複数のチェックパターンの1つとして含めるよう利用可能なチェックパターンの組から少なくとも第1のチェックパターンを選択するのに有効なユーザ入力を受け取る
付記1に記載の方法。
(付記10)
少なくとも前記第1のチェックパターンを選択するのに有効なユーザ入力を受け取る前に、更に、前記第1のチェックパターンを定義するのに有効なユーザ入力を受け取る
付記9に記載の方法。
(付記11)
ソフトウェアプログラムを解析するシステムであって、
処理装置と、
ソフトウェアプログラムを中間表現へとコンパイルするよう前記処理装置によって実行可能なコンパイラと、前記中間表現においてチェックパターンにおけるパターンと整合する命令を見つけ、前記チェックパターンにおいて特定されるアクションに従って前記命令が変更されるインストルメントされた中間表現を生成するよう前記処理装置によって実行可能なアサーション・インストルメンテーションモジュールとを記憶する非一時的なコンピュータ可読媒体と、
前記インストルメントされた中間表現を記号的に実行するよう前記処理装置によって実行可能な記号的実行モジュールと
を有するシステム。
(付記12)
前記中間表現における前記命令を置換する前記チェックパターンに含まれる差し替え用命令は、エラーレポートへの呼び出しを含む、
付記11に記載のシステム。
(付記13)
前記パターンは、2又はそれ以上の引数の間の関係を定義し、
前記アクションは、条件と、
前記命令が前記パターンによって特定される前記関係を有する2又はそれ以上の引数を含み、且つ
前記条件が満たされる
場合に前記中間表現における前記命令を置換する差し替え用命令とを特定する、
付記11に記載のシステム。
(付記14)
前記2又はそれ以上の引数は、第1の引数及び第2の引数を含み、
前記パターンは、前記第1の引数が前記第2の引数でメモリに格納されることを含み、
前記条件は、前記第2の引数がゼロに等しいことを含み、
前記差し替え用命令は、ヌルポインタアクセスレポートへの呼び出しを含む、
付記13に記載のシステム。
(付記15)
前記2又はそれ以上の引数は、第1の引数、第2の引数、及び第3の引数を含み、
前記パターンは、前記第3の引数を生成するよう前記第1の引数を前記第2の引数で割り算することを含み、
前記条件は、前記第2の引数がゼロに等しいことを含み、
前記差し替え用命令は、ゼロ除算レポートへの呼び出しを含む、
付記13に記載のシステム。
(付記16)
ソフトウェアプログラムを解析する動作を実行するよう処理装置によって実行されるコンピュータ命令を記憶する非一時的なコンピュータ可読媒体であって、
前記動作は、
ソフトウェアプログラムを中間表現へとコンパイルし、
前記中間表現において、チェックパターンにおけるパターンと整合する命令を見つけ、
前記チェックパターンにおいて特定されるアクションに従って前記命令が変更されるインストルメントされた中間表現を生成し、
前記インストルメントされた中間表現を記号的に実行する
ことを含む、非一時的なコンピュータ可読媒体。
(付記17)
前記チェックパターンにおいて特定されるアクションに従って前記命令が変更されるインストルメントされた中間表現を生成することは、前記中間表現における前記命令を、前記チェックパターンに含まれる差し替え用命令により置換することを含む、
付記16に記載の非一時的なコンピュータ可読媒体。
(付記18)
前記動作は、前記インストルメントされた中間表現の記号的実行に基づきレポートを生成することを更に含み、該レポートは、前記ソフトウェアプログラム内の1又はそれ以上のエラーを示す、
付記16に記載の非一時的なコンピュータ可読媒体。
(付記19)
前記動作は、
複数のチェックパターンのうちの対応する1つにおいて夫々含まれる複数のパターンのいずれかに整合する命令を前記中間表現から探し、
前記複数のチェックパターンのうちの対応する1つに整合する夫々の命令について、前記複数のチェックパターンのうちの対応する1つにおいて特定されるアクションに従って前記中間表現からの対応する命令を変更し、
前記複数のパターンのいずれかに整合する命令を前記中間表現から探す前に、前記複数のチェックパターンの1つとして含めるよう利用可能なチェックパターンの組から少なくとも第1のチェックパターンを選択するのに有効なユーザ入力を受け取る
ことを更に含む、付記16に記載の非一時的なコンピュータ可読媒体。
(付記20)
前記動作は、少なくとも前記第1のチェックパターンを選択するのに有効なユーザ入力を受け取る前に、前記第1のチェックパターンを定義するのに有効なユーザ入力を受け取ることを更に含む、
付記19に記載の非一時的なコンピュータ可読媒体。
202,302,726 動的チェッカー
204 エラーレポート
300 システム
304 チェックパターンデータベース
306 コンパイラ
308 アサーション・インストルメンテーションモジュール
310 記号的実行モジュール
312,502,602 ソフトウェアプログラム
314,504 中間表現
316,400,506、604 チェックパターン
318,512 インストルメントされた中間表現
320,616 レポート
504A 命令
508A,510 パターン
508B 条件
508C エラーレポート呼び出し
512A 差し替え用命令
700 コンピュータ装置
704 プロセッサ
706 システムメモリ
Claims (20)
- ソフトウェアプログラムを解析する方法であって、
ソフトウェアプログラムを中間表現へとコンパイルし、
前記中間表現において、チェックパターンにおけるパターンと整合する命令を見つけ、
前記チェックパターンにおいて特定されるアクションに従って前記命令が変更されるインストルメントされた中間表現を生成し、
前記インストルメントされた中間表現を記号的に実行する
方法。 - 前記チェックパターンにおいて特定されるアクションに従って前記命令が変更されるインストルメントされた中間表現を生成することは、前記中間表現における前記命令を、前記チェックパターンに含まれる差し替え用命令により置換することを含む、
請求項1に記載の方法。 - 前記差し替え用命令は、エラーレポートへの呼び出しを含む、
請求項2に記載の方法。 - 前記パターンは、2又はそれ以上の引数の間の関係を定義し、
前記アクションは、条件と、
前記命令が前記パターンによって特定される前記関係を有する2又はそれ以上の引数を含み、且つ
前記条件が満たされる
場合に前記中間表現における前記命令を置換する差し替え用命令とを特定する、
請求項1に記載の方法。 - 前記2又はそれ以上の引数は、第1の引数及び第2の引数を含み、
前記パターンは、前記第1の引数が前記第2の引数でメモリに格納されることを含み、
前記条件は、前記第2の引数がゼロに等しいことを含み、
前記差し替え用命令は、ヌルポインタアクセスレポートへの呼び出しを含む、
請求項4に記載の方法。 - 前記2又はそれ以上の引数は、第1の引数、第2の引数、及び第3の引数を含み、
前記パターンは、前記第3の引数を生成するよう前記第1の引数を前記第2の引数で割り算することを含み、
前記条件は、前記第2の引数がゼロに等しいことを含み、
前記差し替え用命令は、ゼロ除算レポートへの呼び出しを含む、
請求項4に記載の方法。 - 前記条件は、ユーザによって定義される条件を含み、前記差し替え用命令は、前記ユーザによって定義されるレポートへの呼び出しを含む、
請求項4に記載の方法。 - 更に、前記インストルメントされた中間表現の記号的実行に基づきレポートを生成し、該レポートは、前記ソフトウェアプログラム内の1又はそれ以上のエラーを示す、
請求項1に記載の方法。 - 更に、
複数のチェックパターンのうちの対応する1つにおいて夫々含まれる複数のパターンのいずれかに整合する命令を前記中間表現から探し、
前記複数のチェックパターンのうちの対応する1つに整合する夫々の命令について、前記複数のチェックパターンのうちの対応する1つにおいて特定されるアクションに従って前記中間表現からの対応する命令を変更し、
前記複数のパターンのいずれかに整合する命令を前記中間表現から探す前に、前記複数のチェックパターンの1つとして含めるよう利用可能なチェックパターンの組から少なくとも第1のチェックパターンを選択するのに有効なユーザ入力を受け取る
請求項1に記載の方法。 - 少なくとも前記第1のチェックパターンを選択するのに有効なユーザ入力を受け取る前に、更に、前記第1のチェックパターンを定義するのに有効なユーザ入力を受け取る
請求項9に記載の方法。 - ソフトウェアプログラムを解析するシステムであって、
処理装置と、
ソフトウェアプログラムを中間表現へとコンパイルするよう前記処理装置によって実行可能なコンパイラと、前記中間表現においてチェックパターンにおけるパターンと整合する命令を見つけ、前記チェックパターンにおいて特定されるアクションに従って前記命令が変更されるインストルメントされた中間表現を生成するよう前記処理装置によって実行可能なアサーション・インストルメンテーションモジュールとを記憶する非一時的なコンピュータ可読媒体と、
前記インストルメントされた中間表現を記号的に実行するよう前記処理装置によって実行可能な記号的実行モジュールと
を有するシステム。 - 前記中間表現における前記命令を置換する前記チェックパターンに含まれる差し替え用命令は、エラーレポートへの呼び出しを含む、
請求項11に記載のシステム。 - 前記パターンは、2又はそれ以上の引数の間の関係を定義し、
前記アクションは、条件と、
前記命令が前記パターンによって特定される前記関係を有する2又はそれ以上の引数を含み、且つ
前記条件が満たされる
場合に前記中間表現における前記命令を置換する差し替え用命令とを特定する、
請求項11に記載のシステム。 - 前記2又はそれ以上の引数は、第1の引数及び第2の引数を含み、
前記パターンは、前記第1の引数が前記第2の引数でメモリに格納されることを含み、
前記条件は、前記第2の引数がゼロに等しいことを含み、
前記差し替え用命令は、ヌルポインタアクセスレポートへの呼び出しを含む、
請求項13に記載のシステム。 - 前記2又はそれ以上の引数は、第1の引数、第2の引数、及び第3の引数を含み、
前記パターンは、前記第3の引数を生成するよう前記第1の引数を前記第2の引数で割り算することを含み、
前記条件は、前記第2の引数がゼロに等しいことを含み、
前記差し替え用命令は、ゼロ除算レポートへの呼び出しを含む、
請求項13に記載のシステム。 - ソフトウェアプログラムを解析する動作を実行するよう処理装置によって実行されるコンピュータ命令を記憶する非一時的なコンピュータ可読媒体であって、
前記動作は、
ソフトウェアプログラムを中間表現へとコンパイルし、
前記中間表現において、チェックパターンにおけるパターンと整合する命令を見つけ、
前記チェックパターンにおいて特定されるアクションに従って前記命令が変更されるインストルメントされた中間表現を生成し、
前記インストルメントされた中間表現を記号的に実行する
ことを含む、非一時的なコンピュータ可読媒体。 - 前記チェックパターンにおいて特定されるアクションに従って前記命令が変更されるインストルメントされた中間表現を生成することは、前記中間表現における前記命令を、前記チェックパターンに含まれる差し替え用命令により置換することを含む、
請求項16に記載の非一時的なコンピュータ可読媒体。 - 前記動作は、前記インストルメントされた中間表現の記号的実行に基づきレポートを生成することを更に含み、該レポートは、前記ソフトウェアプログラム内の1又はそれ以上のエラーを示す、
請求項16に記載の非一時的なコンピュータ可読媒体。 - 前記動作は、
複数のチェックパターンのうちの対応する1つにおいて夫々含まれる複数のパターンのいずれかに整合する命令を前記中間表現から探し、
前記複数のチェックパターンのうちの対応する1つに整合する夫々の命令について、前記複数のチェックパターンのうちの対応する1つにおいて特定されるアクションに従って前記中間表現からの対応する命令を変更し、
前記複数のパターンのいずれかに整合する命令を前記中間表現から探す前に、前記複数のチェックパターンの1つとして含めるよう利用可能なチェックパターンの組から少なくとも第1のチェックパターンを選択するのに有効なユーザ入力を受け取る
ことを更に含む、請求項16に記載の非一時的なコンピュータ可読媒体。 - 前記動作は、少なくとも前記第1のチェックパターンを選択するのに有効なユーザ入力を受け取る前に、前記第1のチェックパターンを定義するのに有効なユーザ入力を受け取ることを更に含む、
請求項19に記載の非一時的なコンピュータ可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/874,280 US9274925B2 (en) | 2013-04-30 | 2013-04-30 | Programmable symbolic execution based dynamic checker |
US13/874,280 | 2013-04-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014219969A true JP2014219969A (ja) | 2014-11-20 |
JP6303749B2 JP6303749B2 (ja) | 2018-04-04 |
Family
ID=51790457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014082583A Active JP6303749B2 (ja) | 2013-04-30 | 2014-04-14 | ソフトウェアプログラムを解析する方法及びシステム並びに非一時的なコンピュータ可読媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9274925B2 (ja) |
JP (1) | JP6303749B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10019995B1 (en) | 2011-03-01 | 2018-07-10 | Alice J. Stiebel | Methods and systems for language learning based on a series of pitch patterns |
US11062615B1 (en) | 2011-03-01 | 2021-07-13 | Intelligibility Training LLC | Methods and systems for remote language learning in a pandemic-aware world |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10261764B2 (en) * | 2014-05-13 | 2019-04-16 | Oracle International Corporation | Handling value types |
US10545739B2 (en) | 2016-04-05 | 2020-01-28 | International Business Machines Corporation | LLVM-based system C compiler for architecture synthesis |
CN106407104B (zh) * | 2016-08-24 | 2018-12-04 | 北京奇虎测腾安全技术有限公司 | 一种用于检测与内存空间释放相关的缺陷的方法及系统 |
CN109426723B (zh) * | 2017-09-01 | 2020-12-22 | 深圳市源伞新科技有限公司 | 使用释放后内存的检测方法、系统、设备及存储介质 |
US11074055B2 (en) * | 2019-06-14 | 2021-07-27 | International Business Machines Corporation | Identification of components used in software binaries through approximate concrete execution |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0981411A (ja) * | 1995-09-20 | 1997-03-28 | Fujitsu Ltd | コンパイラ |
JP2012150811A (ja) * | 2011-01-20 | 2012-08-09 | Fujitsu Ltd | 記号的実行を用いてc++プログラムを検証するための方法及びシステム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784553A (en) * | 1996-01-16 | 1998-07-21 | Parasoft Corporation | Method and system for generating a computer program test suite using dynamic symbolic execution of JAVA programs |
US6481008B1 (en) * | 1999-06-30 | 2002-11-12 | Microsoft Corporation | Instrumentation and optimization tools for heterogeneous programs |
US7281242B2 (en) * | 2002-01-18 | 2007-10-09 | Bea Systems, Inc. | Flexible and extensible Java bytecode instrumentation system |
US20050028132A1 (en) * | 2003-07-31 | 2005-02-03 | Srinivasamurthy Venugopal K. | Application specific optimization of interpreters for embedded systems |
US7788644B2 (en) * | 2005-03-24 | 2010-08-31 | Sap Ag | Method and system for monitoring performance on a mobile device |
US8161470B2 (en) * | 2007-08-31 | 2012-04-17 | International Business Machines Corporation | Systems, methods, and computer products for automated injection of java bytecode instructions for java load time optimization via runtime checking with upcasts |
US8234604B2 (en) * | 2008-09-02 | 2012-07-31 | International Business Machines Corporation | Co-optimization of embedded systems utilizing symbolic execution |
US8402444B2 (en) * | 2009-10-09 | 2013-03-19 | Microsoft Corporation | Program analysis through predicate abstraction and refinement |
US8595707B2 (en) * | 2009-12-30 | 2013-11-26 | Microsoft Corporation | Processing predicates including pointer information |
US8769518B1 (en) * | 2010-06-29 | 2014-07-01 | Ca, Inc. | Ensuring determinism during programmatic replay in a virtual machine |
US8732670B1 (en) * | 2010-06-29 | 2014-05-20 | Ca, Inc. | Ensuring determinism during programmatic replay in a virtual machine |
US8776026B2 (en) * | 2010-10-01 | 2014-07-08 | Ecole Polytechnique Federale De Lausanne | System and method for in-vivo multi-path analysis of binary software |
US8819649B2 (en) * | 2011-09-09 | 2014-08-26 | Microsoft Corporation | Profile guided just-in-time (JIT) compiler and byte code generation |
US9003382B2 (en) * | 2013-02-18 | 2015-04-07 | Red Hat, Inc. | Efficient just-in-time compilation |
US11347498B2 (en) * | 2013-02-26 | 2022-05-31 | Red Hat, Inc. | Bytecode modification |
US8954935B2 (en) * | 2013-03-14 | 2015-02-10 | Pivotal Software, Inc. | Method and system that filters byte-code instrumentation at the instrumentation level |
-
2013
- 2013-04-30 US US13/874,280 patent/US9274925B2/en active Active
-
2014
- 2014-04-14 JP JP2014082583A patent/JP6303749B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0981411A (ja) * | 1995-09-20 | 1997-03-28 | Fujitsu Ltd | コンパイラ |
JP2012150811A (ja) * | 2011-01-20 | 2012-08-09 | Fujitsu Ltd | 記号的実行を用いてc++プログラムを検証するための方法及びシステム |
Non-Patent Citations (2)
Title |
---|
GE,XI、他3名: "Dyta:Dynamic Symbolic Execution Guided with Static Verification Results", SOFTWARE ENGINEERING(ICSE), vol. 2011 33rd International Confere on, JPN6017045486, 21 May 2011 (2011-05-21), US, pages 992 - 994, XP032058331, DOI: doi:10.1145/1985793.1985971 * |
ZHAO,JIANZHOU、他3名: "Formalizing the LLVM Intermediate Representation for Verified Program Transformations", POPL'12 PROCEEDINGS OF THE 39TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LAN, vol. Volume 47, Issue 1, JPN7017003922, 25 January 2012 (2012-01-25), US, pages 427 - 439 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10019995B1 (en) | 2011-03-01 | 2018-07-10 | Alice J. Stiebel | Methods and systems for language learning based on a series of pitch patterns |
US10565997B1 (en) | 2011-03-01 | 2020-02-18 | Alice J. Stiebel | Methods and systems for teaching a hebrew bible trope lesson |
US11062615B1 (en) | 2011-03-01 | 2021-07-13 | Intelligibility Training LLC | Methods and systems for remote language learning in a pandemic-aware world |
US11380334B1 (en) | 2011-03-01 | 2022-07-05 | Intelligible English LLC | Methods and systems for interactive online language learning in a pandemic-aware world |
Also Published As
Publication number | Publication date |
---|---|
US9274925B2 (en) | 2016-03-01 |
JP6303749B2 (ja) | 2018-04-04 |
US20140325489A1 (en) | 2014-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6303749B2 (ja) | ソフトウェアプログラムを解析する方法及びシステム並びに非一時的なコンピュータ可読媒体 | |
EP3788490B1 (en) | Execution control with cross-level trace mapping | |
US9208057B2 (en) | Efficient model checking technique for finding software defects | |
Costa et al. | What's wrong with my benchmark results? Studying bad practices in JMH benchmarks | |
US9594553B2 (en) | Identifying semantic differences between source code versions | |
Gong et al. | Jitprof: Pinpointing jit-unfriendly javascript code | |
US8621441B2 (en) | System and method for software immunization based on static and dynamic analysis | |
US8954926B2 (en) | Code coverage detection with scriptable language unmodified source | |
Xu et al. | Go with the flow: Profiling copies to find runtime bloat | |
US9158514B2 (en) | Method and apparatus for providing change-related information | |
Yan et al. | Uncovering performance problems in Java applications with reference propagation profiling | |
US9658907B2 (en) | Development tools for refactoring computer code | |
Falke et al. | The bounded model checker LLBMC | |
US20110145799A1 (en) | Path-sensitive dataflow analysis including path refinement | |
US9336128B2 (en) | Method and system for code analysis using symbolic types | |
CN110741354A (zh) | 呈现代码实体调用之间的差异 | |
US20130179867A1 (en) | Program Code Analysis System | |
US20140215483A1 (en) | Resource-usage totalizing method, and resource-usage totalizing device | |
Reichelt et al. | PeASS: A tool for identifying performance changes at code level | |
JP2014053010A (ja) | 混合モードプログラムのソースコードエラー位置検出装置及び方法 | |
JP5923636B2 (ja) | モデル検査のためのループ抽象化 | |
Laguna et al. | Pinpointing scale-dependent integer overflow bugs in large-scale parallel applications | |
US8756580B2 (en) | Instance-based field affinity optimization | |
Lee et al. | Interactive program debugging and optimization for directive-based, efficient gpu computing | |
Lavoie et al. | A case study of TTCN-3 test scripts clone analysis in an industrial telecommunication setting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170110 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171110 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180110 |
|
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: 20180206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6303749 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |