JP5908374B2 - コンパイラ評価装置、方法及びプログラム - Google Patents

コンパイラ評価装置、方法及びプログラム Download PDF

Info

Publication number
JP5908374B2
JP5908374B2 JP2012188008A JP2012188008A JP5908374B2 JP 5908374 B2 JP5908374 B2 JP 5908374B2 JP 2012188008 A JP2012188008 A JP 2012188008A JP 2012188008 A JP2012188008 A JP 2012188008A JP 5908374 B2 JP5908374 B2 JP 5908374B2
Authority
JP
Japan
Prior art keywords
execution
program
test data
source program
range
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
JP2012188008A
Other languages
English (en)
Other versions
JP2014044678A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012188008A priority Critical patent/JP5908374B2/ja
Publication of JP2014044678A publication Critical patent/JP2014044678A/ja
Application granted granted Critical
Publication of JP5908374B2 publication Critical patent/JP5908374B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、ソースプログラムを実行プログラムにコンパイルするコンパイラの評価技術に関する。
プログラミング言語で記述されたソースプログラムは、内容が完全に一致した状態で、ターゲットマシンに直接理解される実行プログラムにコンパイルされることが望まれる。
ソースプログラムと、このソースプログラムからコンパイルされた実行プログラムとの一致又は不一致は、例えば次のようにして確認することができる。
つまり、ソースプログラムのコンパイラを複数用意し、互いに異なる動作環境で動作する複数の実行プログラムを生成する。そして、生成された複数の実行プログラムに対し、同一の入力値を与え、得られた出力値のそれぞれを比較することによって、コンパイラのバグを間接的に検出することができる。
この2種類のコンパイラにおいて、共通の箇所に同じバグが存在する可能性は極めて低い。このため、出力結果に不一致が存在すれば、いずれか一方のコンパイラにバグの存在が推定される(例えば、特許文献1,2)。
特開2005−141406号公報 特開2004−227129号公報
上述したソースプログラムと実行プログラムとの一致・不一致の確認作業は、バグ位置が不一致であることが期待される、製造元の異なる2種類のコンパイラが必要となる。
しかし、CPUによっては、このように2種類のコンパイラを入手することが困難な場合があり、この場合は、ソースプログラムと実行プログラムの一致・不一致を確認することが不可能である。
本発明はこのような事情を考慮してなされたもので、単独のコンパイラで、ソースプログラムと実行プログラムとの一致・不一致を確認することができるコンパイラ評価技術を提供することを目的とする。
コンパイラ評価装置において、プログラミング言語で記述されたソースプログラムを保持する第1保持部と、前記ソースプログラムをプロセッサで実行できるようにコンパイルした実行プログラムを保持する第2保持部と、前記ソースプログラム及び前記実行プログラムの少なくとも一方に基づいてテストデータを生成するテストデータ生成部と、前記テストデータを保持し前記実行プログラムの実行手段に送出する第3保持部と、前記テストデータを入力し前記ソースプログラムを実行するインタープリタと、前記実行プログラムの実行手段の実行結果及び前記インタープリタの実行結果を対比して一致するか否かを判定する判定部と、前記ソースプログラムを構成する関数の内部範囲を設定するとともにこの内部範囲に対応する前記実行プログラムの比較範囲を設定する範囲設定部と、を備え、前記テストデータ生成部は、前記ソースプログラムの内部範囲及び前記実行プログラムの比較範囲の少なくとも一方に基づいてテストデータを生成することを特徴とする。
本発明により、単独のコンパイラで、ソースプログラムと実行プログラムとの一致・不一致を確認することができるコンパイラ評価技術が提供される。
本発明の第1実施形態に係るコンパイラ評価装置を示すブロック図。 ソースプログラムを構成する関数の一例を示す図。 図2に示すソースプログラムの関数に対応する実行プログラムを示す図。 第1実施形態におけるテストデータ生成部のアルゴリズムを示すフローチャート。 第1実施形態におけるテストデータを示す表。 インタープリタのアルゴリズムを示すフローチャート。 判定部のアルゴリズムを示すフローチャート。 第1実施形態におけるテストデータに基づく判定結果を示す表。 第2実施形態におけるテストデータ生成部のアルゴリズムを示すフローチャート。 第2実施形態におけるテストデータを示す表。 第2実施形態におけるテストデータに基づく判定結果を示す表。 本発明の第3実施形態に係るコンパイラ評価装置を示すブロック図。 第3実施形態におけるターゲットCPUエミュレータのアルゴリズムを示すフローチャート。 本発明の第4実施形態に係るコンパイラ評価装置を示すブロック図。 第4実施形態に係るコンパイラ評価装置の変形例を示すブロック図。 内部範囲(a,b)が設定されたソースプログラムの一例を示す図。 比較範囲(A,B)が設定された実行プログラムの一例を示す図。 第4実施形態における範囲設定部のアルゴリズムを示すフローチャート。 第4実施形態において範囲設定されたプログラム(範囲a,A)における実行結果の判定結果を示す表。 第4実施形態において範囲設定されたプログラム(範囲b,B)における実行結果の判定結果を示す表。 第5実施形態における範囲設定部のアルゴリズムを示すフローチャート。 第5実施形態において範囲設定されたプログラム(範囲a,A)における実行結果の判定結果を示す表。 第5実施形態において範囲設定されたプログラム(範囲b,B)における実行結果の判定結果を示す表。 (A)実行プログラムから入力変数を抽出する方法において実行プログラムから入力変数を抽出するアルゴリズムを示す図、(B)実行プログラムから入力変数を抽出する方法において実行プログラムから入力変数を抽出する例を示す図。
(第1実施形態)
以下、本発明の実施形態を添付図面に基づいて説明する。
図1に示すように第1実施形態に係るコンパイラ評価装置10は、プログラミング言語で記述されたソースプログラムを保持する第1保持部11と、このソースプログラムをプロセッサで実行できるようにコンパイルした実行プログラムを保持する第2保持部12と、このソースプログラム及び実行プログラムの少なくとも一方に基づいてテストデータを生成するテストデータ生成部15と、このテストデータを保持し実行プログラムの実行手段(ターゲットCPU21)に送出する第3保持部13と、テストデータを入力しソースプログラムを実行するインタープリタ17と、実行プログラムの実行手段(ターゲットCPU21)の実行結果及びインタープリタ17の実行結果を対比して一致するか否かを判定する判定部18とを、備えている。
第1保持部11は、プログラミング言語で記述されたソースプログラムを外部入力し保持するものである。
図2は、ソースプログラムを構成する関数の一例を示し、図3はこの図2に示すソースプログラムの関数に対応する実行プログラムを示している。
ソースプログラムは、プログラマが読み書きすることを前提に作成されたもので、一連の処理を実行する関数を単位として、複数の関数が羅列して構成されている。
そして、関数は、if, while, do-while, for, switch等で定義されるプログラムパスの組み合わせからなり、入力変数を受け取って、実行結果を引き渡す。
コンパイラ14は、第1保持部11からソースプログラムを取得して、プロセッサ(ターゲットCPU21)において実行可能な実行プログラムにコンパイルするものである。
プロセッサは、ソースプログラムを直接理解することができないために、図3で示されるようなバイナリコードで表される実行プログラムにより処理がなされる。
第1実施形態におけるテストデータ生成部15は、ソースプログラムを構成する関数(図2)を単位として抽出された入力変数(int a, int b)の組み合わせに基づくテストデータ(図5)を生成するものである。
そして、生成されたテストデータ(図5)は、第3保持部13に保持される。
図4のフローチャートに基づいて第1実施形態におけるテストデータ生成部15のアルゴリズムを説明する(適宜、図1,図2参照)。
テストデータ生成部15は、第1保持部11からソースプログラムを読み込み(S11)、ソースプログラムの入力変数(int a, int b)を抽出する(S12)。
そして、第2保持部12から実行プログラムを読み込み(S13)、実行プログラムの入力変数(R1,R2)を抽出する(S14)。
図24(A)は、実行プログラムから入力変数を抽出するアルゴリズムを示す図である。図24(A)に示すように、実行プログラムを逆アセンブルし、ソースプログラムと実行プログラムを比較して、ソースプログラムの入力変数に対応する実行プログラムの入力変数を決定する。
図24(B)は、実行プログラムから入力変数を抽出する例を示す図である。図24(B)の例のように、"c = 0"に対応するアセンブラは"LDI R10,0"でありcとR10が対応し、"a++"に対応するアセンブラは"ADDI R1,R1,1"でありaとR1が対応し、"while(a < b)"に対応するアセンブラは"CMP R1,R2"でありbとR2が対応することを決定する。
さらに、図5に示すように、テストデータ生成部15は、入力変数の全ての組み合わせについて、テストデータ出力する(S15)。
変数aおよびbが8ビットの場合、変数a、bの値の範囲は、-128〜+127であるので、入力変数の全ての組合せは、
(a,b) : (-128,-128) , (-128,-127), ... , (+127,+127)
となる。テストデータは、2の16乗通り必要である。
変数aおよびbが16ビットの場合、変数a、bの値の範囲は、-32768〜+32767であるので、入力変数の全ての組合せは、
(a,b) : (-32768,-32768) , (-32768,-32767), ... , (+32767,+32767)
となる。テストデータは2の32乗通り必要である。
このテストデータの生成は、上述の方法でソースプログラムおよび実行プログラムから抽出した入力変数のいずれか一方に基づいて生成することができる。
なお、図5において、多数あるテストデータがのうち一部を示している。
第3保持部13は、保持しているテストデータをインタープリタ17及び実行プログラムの実行手段(ターゲットCPU21)に送出する。
第1実施形態における実行プログラムの実行手段(ターゲットCPU21)は外部機器20に設けられている。
このために、第1実施形態のコンパイラ評価装置10は、外部機器20に接続して、ソースプログラム及び実行プログラムの一致・不一致を判定する。
ターゲットCPU21は、第2保持部12から実行プログラムを取得し、第3保持部13から入力変数の組み合わせの異なる複数のテストデータを入力して実行する。そして、ターゲットCPU21は、この実行結果を判定部18に出力する。
インタープリタ17は、第1保持部11からソースプログラムを取得し、第3保持部13から入力変数の組み合わせの異なる複数のテストデータを入力して実行する。そして、インタープリタ17は、この実行結果を判定部18に出力する。
図6のフローチャートに基づいてインタープリタ17のアルゴリズムを説明する(適宜、図1参照)。
インタープリタ17は、第1保持部11からソースプログラムを読み込み(S21)、ソースプログラムの構文解析を行って中間コードを生成する(S22)。
そして、インタープリタ17は、第3保持部13からテストデータを読み込み(S23)、中間コードを実行し(S24)、実行結果を判定部18に出力する(S25)。
判定部18は、実行プログラムの実行手段(ターゲットCPU21)の実行結果及びインタープリタ17の実行結果を対比して一致するか否かを判定する。
ここで、複数のテストデータについての実行結果のうち、同一のテストデータについてのソースプログラムと実行プログラムの実行結果を対比するためには、同一のテストデータを順にソースプログラムと実行プログラムに入力して実行させて実行結果を順に比較する方法や、実効結果にテストデータの識別情報を付加することでソースプログラムと実行プログラムの実行結果を同一のテストデータについてソートし比較する方法等を適用することができる。
そして、判定部18は、一致又は不一致の判定結果を結果出力部19に送出し、さらにこの判定結果に基づいてコンパイラ14にバグが含まれるか否かの認定結果も結果出力部19に送出する。
図7のフローチャートに基づいて判定部18のアルゴリズムを説明する(適宜、図1及び図8参照)。ここで図8は、第1実施形態におけるテストデータに基づく判定結果を示す表である。
判定部18は、実行プログラムの実行手段(ターゲットCPU21)及びインタープリタ17から、入力変数の組み合わせ([int a, int b], [R1, R2])が同一のテストデータの実行結果(c, R10)をそれぞれ読み込む(S31)。
そして、これら二つの実行結果(c, R10)を対比して一致しているか否かを判定し(S32)、「一致」又は「不一致」の判定結果を出力する(S33,S34)。
そして、生成したテストデータのうち一つでも「不一致」の判定結果が得られた場合はコンパイラ14にバグが含まれると認定され、全てが「一致」の場合はバグが発見されないと認定され、その旨が表示される(S35)。
(第2実施形態)
次に図1を参照して本発明における第2実施形態について説明する。
なお第2実施形態におけるコンパイラ評価装置10において、テストデータ生成部15の作用を除くその他の構成は、第1実施形態と共通するために重複する説明を省略する。
第2実施形態におけるテストデータ生成部15は、ソースプログラムを構成する関数(図2)を単位として抽出されたプログラムパスの実行又は不実行の組み合わせに基づくテストデータ(図10)を生成するものである。
ここで、プログラムパスとは、if, while, do-while, for, switch等により規定されたデータ処理の実行順番を制御す命令である。
図9のフローチャートに基づいて第2実施形態におけるテストデータ生成部15のアルゴリズムを説明する(適宜、図1参照)。
ここで、図9のステップS41からステップS44は、図4のステップS11からステップS14に対応するので重複する説明を省略する。
ソースプログラムの関数を構成するif, switch, while, do-while, for等で規定されるプログラムパスの構造解析が行なわれる(S45)。
なお、制御構造の条件分岐に用いられる変数については、全てのプログラムパスを実行するテストデータを生成する。この場合、ランダムに値を割り当てて全てのプログラムパスを実行する値を用いる方法、条件分岐の条件から全てのプログラムパスを実行する値を求める方法、などを用いる。
そして、図10に示すように、テストデータ生成部15は、プログラムパスの実行又は不実行の全ての組み合わせについて、対応するテストデータ出力する(S46)。
図7のフローチャートに基づいて第2実施形態における判定部18のアルゴリズムを説明する(適宜、図1及び図11参照)。図11は、第2実施形態におけるテストデータに基づく判定結果を示す表である。
判定部18は、実行プログラムの実行手段(ターゲットCPU21)及びインタープリタ17から、プログラムパスの実行又は不実行の組み合わせ([int a, int b], [R1, R2])が同一のテストデータの実行結果(c, R10)をそれぞれ読み込む(S31)。
そして、これら二つの実行結果を対比して一致しているか否かを判定し(S32)、「一致」又は「不一致」の判定結果を出力する(S33,S34)。
そして、生成したテストデータのうち一つでも「不一致」の判定結果が得られた場合はコンパイラ14にバグが含まれると認定され、全てが「一致」の場合はバグが発見されないと認定され、その旨が表示される(S35)。
第2実施形態によれば、一致・不一致の判定を行うテストデータの数を削減することができ、コンパイラ14にバグが含まれるか否かの認定を簡素化できる。
(第3実施形態)
次に図12を参照して本発明における第3実施形態について説明する。
なお第3実施形態におけるコンパイラ評価装置10は、実行プログラムの実行手段がターゲットCPUをエミュレートするために内蔵されたエミュレータ22である点を除き、その他の構成は、第1実施形態及び第2実施形態と共通する。なお、図12において図1と共通の構成又は機能を有する部分は、同一符号で示し、重複する説明を省略する。
このエミュレータ22は、第2保持部12から実行プログラムを取得し、第3保持部13から複数のテストデータを入力して実行する。そして、エミュレータ22は、この実行結果を判定部18に出力する。
図13のフローチャートに基づいてターゲットCPUのエミュレータ22のアルゴリズムを説明する(適宜、図12参照)。
エミュレータ22は、第2保持部12から実行プログラムを読み込む(S51)。そして、第3保持部13からテストデータを読み込んで実行プログラムを実行し(S52)、実行結果を判定部18に出力する(S53)。
第3実施形態によれば、一つのコンピュータのみで、ソースプログラムと実行プログラムの一致・不一致を判定することができる。
(第4実施形態)
次に図14を参照して本発明における第4実施形態について説明する。
図14は第4実施形態におけるコンパイラ評価装置の基本構成を示す構成図を示し、図15は第4実施形態の変形例を示している。そして、図14及び図15は、それぞれ図1及び図12に対応している。
なお、図14及び図15において図1及び図12と共通の構成又は機能を有する部分は、同一符号で示し、重複する説明を省略する。
第4実施形態に係るコンパイラ評価装置10は、ソースプログラムを構成する関数(図16)の内部範囲(a,b)を設定するとともにこの内部範囲(a,b)に対応する前記実行プログラム(図17)の比較範囲(A,B)を設定する範囲設定部16をさらに備えている。
図18のフローチャートに基づいて第4実施形態における範囲設定部16のアルゴリズムを説明する(適宜、図14参照)。なお図19は第4実施形態において範囲設定されたプログラム(範囲a,A)における実行結果の一致・不一致の判定結果を示し、図20は範囲設定されたプログラム(範囲b,B)における実行結果の一致・不一致の判定結果を示している。
範囲設定部16は、第1保持部11からソースプログラムを読み込み(S61)、関数の内部範囲(a,b)を設定する(S62)。
なお、この内部範囲の設定方法は、ソースプログラムに#pragma命令で指定する方法、ソースプログラムの何行目〜何行目と別ファイル指定する方法等が挙げられる。
そして、第2保持部12から実行プログラムを読み込み(S63)、内部範囲(a,b)に対応する実行プログラムの比較範囲(A,B)を設定する(S64)。
テストデータ生成部15は、ソースプログラムの内部範囲(a,b)及び前記実行プログラムの比較範囲(A,B)の少なくとも一方に基づいてテストデータを生成する。
第4実施形態によれば、プログラムを構成する関数にさらに内部範囲を設定するので、一致・不一致の判定を行うテストデータの数を削減することができ、コンパイラ14にバグが含まれるか否かの認定を簡素化できる。
(第5実施形態)
次に図21を参照して本発明における第5実施形態について説明する。
なお第5実施形態におけるコンパイラ評価装置10は、範囲設定部16(図14,図15)が、ソースプログラムのプログラムパスを単位として内部範囲(a,b:図16)及び比較範囲(A,B:図17)を設定する点を除き、その他の構成は、第4実施形態と共通するために重複する説明を省略する。
図21のフローチャートに基づいて第5実施形態における範囲設定部16のアルゴリズムを説明する(適宜、図14参照)。なお図22は第5実施形態において範囲設定されたプログラム(範囲a,A)における実行結果の一致・不一致の判定結果を示し、図23は範囲設定されたプログラム(範囲b,B)における実行結果の一致・不一致の判定結果を示している。
範囲設定部16は、第1保持部11からソースプログラムを読み込み(S71)、ソースプログラムの関数を構成するif, switch, while, do-while, for等で規定されるプログラムパスを抽出する(S72)。
そして、第2保持部12から実行プログラムを読み込み(S73)、内部範囲(a,b)に対応する実行プログラムの比較範囲(A,B)を設定する(S74)。
テストデータ生成部15は、ソースプログラムの内部範囲(a,b)及び前記実行プログラムの比較範囲(A,B)の少なくとも一方に基づいてテストデータを生成する。
第5実施形態によれば、プログラムを構成する関数にさらにプログラムパスを単位として内部範囲を設定するので、一致・不一致の判定を行うテストデータの数を削減することができ、コンパイラ14にバグが含まれるか否かの認定を簡素化できる。
以上述べた少なくともひとつの実施形態のコンパイラ評価装置によれば、生成したテストデータに対し、ソースプログラムから直接得られる実行結果と実行プログラムから直接得られる実行結果とを対比することにより、コンパイラのバグの有無を評価することが可能となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組み合わせを行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
また、コンパイラ評価装置の構成要素は、コンピュータのプロセッサで実現することも可能であり、コンパイラ評価プログラムにより動作させることが可能である。
10…コンパイラ評価装置、11…第1保持部、12…第2保持部、13…第3保持部、14…コンパイラ、15…テストデータ生成部、16…範囲設定部、17…インタープリタ、18…判定部、19…結果出力部、20…外部機器、21…ターゲットCPU、22…エミュレータ。

Claims (7)

  1. プログラミング言語で記述されたソースプログラムを保持する第1保持部と、
    前記ソースプログラムをプロセッサで実行できるようにコンパイルした実行プログラムを保持する第2保持部と、
    前記ソースプログラム及び前記実行プログラムの少なくとも一方に基づいてテストデータを生成するテストデータ生成部と、
    前記テストデータを保持し前記実行プログラムの実行手段に送出する第3保持部と、
    前記テストデータを入力し前記ソースプログラムを実行するインタープリタと、
    前記実行プログラムの実行手段の実行結果及び前記インタープリタの実行結果を対比して一致するか否かを判定する判定部と、
    前記ソースプログラムを構成する関数の内部範囲を設定するとともにこの内部範囲に対応する前記実行プログラムの比較範囲を設定する範囲設定部と、を備え、
    前記テストデータ生成部は、前記ソースプログラムの内部範囲及び前記実行プログラムの比較範囲の少なくとも一方に基づいてテストデータを生成することを特徴とするコンパイラ評価装置。
  2. 前記テストデータ生成部は、前記ソースプログラムを構成する関数を単位として抽出された入力変数の組み合わせに基づく前記テストデータを生成する請求項1に記載のコンパイラ評価装置。
  3. 前記テストデータ生成部は、前記ソースプログラムを構成する関数を単位として抽出されたプログラムパスの実行又は不実行の組み合わせに基づく前記テストデータを生成する請求項1に記載のコンパイラ評価装置。
  4. 前記実行プログラムの実行手段は、ターゲットCPUをエミュレートするために内蔵されたエミュレータ又は外部機器に設けられた前記ターゲットCPUである請求項1から請求項3のいずれか1項に記載のコンパイラ評価装置。
  5. 前記範囲設定部は、前記ソースプログラムのプログラムパスを単位として前記内部範囲及び前記比較範囲を設定する請求項1から請求項4のいずれか1項に記載のコンパイラ評価装置。
  6. プログラミング言語で記述されたソースプログラムを保持するステップと、
    前記ソースプログラムをプロセッサで実行できるようにコンパイルした実行プログラムを保持するステップと、
    前記ソースプログラム及び前記実行プログラムの少なくとも一方に基づいてテストデータを生成するステップと、
    前記テストデータを保持しこのテストデータを前記実行プログラムの実行手段に送出するステップと、
    前記テストデータを入力し前記ソースプログラムを実行するステップと、
    前記実行プログラムの実行結果及び前記ソースプログラムの実行結果を対比して一致するか否かを判定するステップと
    前記ソースプログラムを構成する関数の内部範囲を設定するとともにこの内部範囲に対応する前記実行プログラムの比較範囲を設定するステップと、を含み、
    前記テストデータを生成するステップでは、前記ソースプログラムの内部範囲及び前記実行プログラムの比較範囲の少なくとも一方に基づいてテストデータを生成することを特徴とするコンパイラ評価方法。
  7. コンピュータに、
    プログラミング言語で記述されたソースプログラムを保持させるステップ、
    前記ソースプログラムをプロセッサで実行できるようにコンパイルした実行プログラムを保持させるステップ、
    前記ソースプログラム及び前記実行プログラムの少なくとも一方に基づいてテストデータを生成させるステップ、
    前記テストデータを保持させこのテストデータを前記実行プログラムの実行手段に送出させるステップ、
    前記テストデータを入力させ前記ソースプログラムを実行させるステップ、
    前記実行プログラムの実行結果及び前記ソースプログラムの実行結果を対比させて一致するか否かを判定させるステップ
    前記ソースプログラムを構成する関数の内部範囲を設定するとともにこの内部範囲に対応する前記実行プログラムの比較範囲を設定するステップ、を実行させ、
    前記テストデータを生成するステップでは、前記ソースプログラムの内部範囲及び前記実行プログラムの比較範囲の少なくとも一方に基づいてテストデータを生成することを特徴とするコンパイラ評価プログラム。
JP2012188008A 2012-08-28 2012-08-28 コンパイラ評価装置、方法及びプログラム Expired - Fee Related JP5908374B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012188008A JP5908374B2 (ja) 2012-08-28 2012-08-28 コンパイラ評価装置、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012188008A JP5908374B2 (ja) 2012-08-28 2012-08-28 コンパイラ評価装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2014044678A JP2014044678A (ja) 2014-03-13
JP5908374B2 true JP5908374B2 (ja) 2016-04-26

Family

ID=50395877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012188008A Expired - Fee Related JP5908374B2 (ja) 2012-08-28 2012-08-28 コンパイラ評価装置、方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5908374B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11449410B2 (en) 2020-03-23 2022-09-20 Tmaxsoft Co., Ltd Universal runtime verification system between source language and language converted through transpiler

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01155438A (ja) * 1987-12-12 1989-06-19 Hitachi Ltd コンパイラ試験方式
CN1567222A (zh) * 2003-07-09 2005-01-19 松下电器产业株式会社 程序生成装置
JP2005141406A (ja) * 2003-11-05 2005-06-02 Toyota Motor Corp コンパイラ検査システムおよび同プログラム
JP2007041804A (ja) * 2005-08-02 2007-02-15 Sharp Corp プログラム生成装置、プログラム検証装置および検証プログラム
JP5303531B2 (ja) * 2010-09-28 2013-10-02 株式会社日立製作所 組込システムの保守支援装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11449410B2 (en) 2020-03-23 2022-09-20 Tmaxsoft Co., Ltd Universal runtime verification system between source language and language converted through transpiler

Also Published As

Publication number Publication date
JP2014044678A (ja) 2014-03-13

Similar Documents

Publication Publication Date Title
Wang et al. Reassembleable disassembling
US8898647B2 (en) Method and apparatus for test coverage analysis
CN103197942B (zh) 一种补丁的生成方法、打补丁的方法及装置
EP3244306B1 (en) A computer-implemented method for allowing modification of a region of original code
KR101053104B1 (ko) 전산기기 소프트웨어 테스트 방법 및 시스템
TW201405424A (zh) 編譯系統以及編譯方法
JP6759851B2 (ja) プログラム生成プログラム、プログラム生成方法、プログラム生成装置及びコンパイルプログラム
JP4905480B2 (ja) プログラム難読化プログラム及びプログラム難読化装置
JP5908374B2 (ja) コンパイラ評価装置、方法及びプログラム
JP6790869B2 (ja) コンパイル方法、コンパイルプログラム及び情報処理装置
JP2013152559A (ja) プログラム比較解析装置およびプログラム比較解析方法
JP2016128941A (ja) 出力判定装置、出力判定方法、出力判定プログラム、及び、静的解析装置
Gerasimov et al. Reachability confirmation of statically detected defects using dynamic analysis
WO2017204139A1 (ja) データ処理装置、データ処理方法、およびプログラム記録媒体
JP6326838B2 (ja) プログラム処理装置、プログラム処理方法、及びプログラム処理プログラム
Zakharov et al. Compositional environment modelling for verification of GNU C programs
KR102524627B1 (ko) 중간언어를 활용한 바이너리 프로그램 난독화 시스템 및 그 방법
Gregor et al. Using LLVM-based JIT compilation in genetic programming
JP6072714B2 (ja) プログラム照合装置
DeVries Mapping of UML Diagrams to Extended Petri Nets for Formal Verification
Cao et al. Compiler backend generation for application specific instruction set processors
JP2022118310A (ja) コンパイル方法、開発支援装置および制御システム
JP5120166B2 (ja) 組込みソフトウェア開発支援システム、支援方法およびプログラム
JP2002259121A (ja) ソースラインデバッグ装置
Li et al. Concolic Testing of JavaScript using Sparkplug

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151014

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: 20160223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160323

R151 Written notification of patent or utility model registration

Ref document number: 5908374

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees