JP2008242737A - プログラム検証仕様生成装置、方法およびプログラム - Google Patents
プログラム検証仕様生成装置、方法およびプログラム Download PDFInfo
- Publication number
- JP2008242737A JP2008242737A JP2007081612A JP2007081612A JP2008242737A JP 2008242737 A JP2008242737 A JP 2008242737A JP 2007081612 A JP2007081612 A JP 2007081612A JP 2007081612 A JP2007081612 A JP 2007081612A JP 2008242737 A JP2008242737 A JP 2008242737A
- Authority
- JP
- Japan
- Prior art keywords
- verification
- program
- finite state
- state machine
- transition
- 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
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
【解決手段】本発明の一態様としてのプログラム検証仕様生成装置は、イベントの発生による複数の各状態間の遷移を表す第1有限状態マシンを記述した第1仕様を入力する第1の入力手段と、(1)オブジェクト型と、(2)第1有限状態マシンの識別子と、(3)検証対象プログラムにおいて前記オブジェクト型をもつオブジェクトを操作する関数と前記識別子をもつ第1有限状態マシンに含まれるイベントとの対応と、の組を記述した第2仕様を入力する第2の入力手段と、前記関数の呼び出しによる、前記オブジェクト型をもつオブジェクトの各状態間の遷移を表す第2有限状態マシンを記述した、前記検証対象プログラムを検証するための検証仕様を生成する検証仕様生成手段と、を備える。
【選択図】図1
Description
Dawson Engler, Benjamin Chelf, Andy Chou, and Seth Hallem. "Checking System Rules Using SystemSpecific, Programmer-Written Compiler Extensions." In Proceedings of the Fourth Symposium on Operating Systems Design and Implementation, San Diego, CA, October 2000. Manuvir Das, Sorin Lerner, and Mark Seigle. Esp: Pathsensitive program verification in polynomial time. In Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation. Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of AspectJ. In Proceedings of the European Conference on Object-Oriented Programming, Budapest, Hungary, 18--22 June 2001.
1. 複数の異なるオブジェクトが類似の状態遷移をする場合が多く、この場合に個別に検証仕様を記述すると重複する記述の量が多くなる。
2. 有限状態マシンの状態数が多いと検証仕様を誤り無く記述することが困難となる。
3. 型状態検証の報告した反例が現実に起き得るか否かの判断が困難である。
イベントの発生による複数の各状態間の遷移を表す第1有限状態マシンを記述した第1仕様を入力する第1の入力手段と、
(1)オブジェクト型と、(2)第1有限状態マシンの識別子と、(3)検証対象プログラムにおいて前記オブジェクト型をもつオブジェクトを操作する関数と前記識別子をもつ第1有限状態マシンに含まれるイベントとの対応と、の組を記述した第2仕様を入力する第2の入力手段と、
前記関数の呼び出しによる、前記オブジェクト型をもつオブジェクトの各状態間の遷移を表す第2有限状態マシンを記述した、前記検証対象プログラムを検証するための検証仕様を生成する検証仕様生成手段と、
を備える。
イベントの発生による複数の各状態間の遷移を表す第1有限状態マシンを記述した第1仕様を入力し、
(1)オブジェクト型と、(2)第1有限状態マシンの識別子と、(3)検証対象プログラムにおいて前記オブジェクト型をもつオブジェクトを操作する関数と前記識別子をもつ第1有限状態マシンに含まれるイベントとの対応と、の組を記述した第2仕様を入力し、
前記関数の呼び出しによる、前記オブジェクト型をもつオブジェクトの各状態間の遷移を表す第2有限状態マシンを記述した、前記検証対象プログラムを検証するための検証仕様を生成する。
イベントの発生による複数の各状態間の遷移を表す第1有限状態マシンを記述した第1仕様を入力する第1ステップと、
(1)オブジェクト型と、(2)第1有限状態マシンの識別子と、(3)検証対象プログラムにおいて前記オブジェクト型をもつオブジェクトを操作する関数と前記識別子をもつ第1有限状態マシンに含まれるイベントとの対応と、の組を記述した第2仕様を入力する第2ステップと、
前記関数の呼び出しによる、前記オブジェクト型をもつオブジェクトの各状態間の遷移を表す第2有限状態マシンを記述した、前記検証対象プログラムを検証するための検証仕様を生成する第3ステップと、
をコンピュータに実行させる。
----- 例1:検証対象 -----
file f; // ファイル
mutex m; // 排他変数
int x;
f.fopen("test.txt");
m.init();
while (*) {
m.lock();
if (*) {
x = f.read(..);
}
else {
x = f.write(..);
if (x < 0) break;
}
m.unlock();
}
f.fclose();
m.destroy();
-----
----- 例2:検証仕様1 -----
sm mutex_check1 {
state decl { mutex } v;
decl any_fn_call call;
decl any_args args;
start:
{ v } ==> v.undef;
v.undef:
{ v.init() } ==> v.valid
| { v.call(args) } ==> { err("1") };
v.valid:
{ v.lock() } ==> v.valid
| { v.unlock() } ==> v.valid
| { v.destroy() } ==> v.undef
| { v.call(args) } ==> { err("2") };
}
-----
----- 例3:検証仕様2 -----
sm mutex_check2 {
state decl { mutex } v;
decl any_fn_call call;
decl any_args args;
start:
{ v } ==> v.undef;
v.undef:
{ v.init() } ==> v.valid
| { v.call(args) } ==> { err(“error1") };
v.valid:
{ v.lock() } ==> v.locked
| { v.destroy() } ==> v.undef
| { v.call(args) } ==> { err(“error2") };
v.locked:
{ v.unlock() } ==> v.valid
| { v.call(args) } ==> { err(“error3") };
}
-----
----- 例4:抽象仕様1 -----
// 汎用オブジェクト
fsm object {
state: undef, valid;
event: ini, fin, use;
delta:
(undef, ini -> valid),
(valid, fin -> undef),
(valid, use -> valid);
}
-----
----- 例5:抽象仕様2 -----
// 排他制御変数
fsm mutex {
state: undef, valid, locked;
event: ini, fin, lock, unlock;
delta:
(undef, ini -> valid),
(valid, fin -> undef),
(valid, lock -> locked),
(locked, unlock -> valid);
}
-----
----- 例6:具象仕様 1-----
// ファイル操作
spec file {
fsm(object): type(file) {
ini: call(open(..));
fin: call(close(..));
use: call(read(..)) || call(write(..));
} f;
}
-----
----- 例7:具象仕様 2-----
// ロック操作
spec lock1 {
fsm(object): type(mutex) {
ini: call(init(..));
fin: call(destroy(..));
use: call(lock(..)) || call(unlock(..));
} m;
}
-----
(1)オブジェクト型(file)と、(2)第1有限状態マシンの識別子(object)と、(3)検証対象プログラムにおいて前記オブジェクト型をもつオブジェクトを操作する関数(open(..),close(..)など)と前記識別子(object)をもつ第1有限状態マシンに含まれるイベント(ini,finなど)との対応と、の組と、
(1)オブジェクト型(mutex)と、(2)第1有限状態マシンの識別子(mutex)と、(3)検証対象プログラムにおいて前記オブジェクト型をもつオブジェクトを操作する関数(init(..),destroy(..)など)と前記識別子(mutex)をもつ第1有限状態マシンに含まれるイベント(ini,finなど)との対応と、の組と、
の2つの組が記述されている。
----- 例8:具象仕様3 -----
// ロック付ファイル操作
spec locked_file {
fsm(object): type(file) {
ini: call(open(..));
fin: call(close(..));
use: call(read(..)) || call(write(..));
} f;
fsm(mutex): type(mutex) {
ini: call(init(..));
fin: call(destroy(..));
lock: call(lock(..));
unlock: call(unlock(..));
} m;
assert(!f.use || (f.use && m@locked)); ←表明式
}
-----
----- 定義1:有限状態マシン -----
Q :state文の状態集合(エラー状態以外の全ての状態(受理状態)の集合)
Q': 全状態 = Q∪{error}
error : エラー状態
Σ : event文の記号集合
δ : 状態マシンの遷移関数
Q' * Σ → Q'
delta文に明記されない遷移はerror遷移と見なす。
error状態からの遷移先は全てerror状態とする。
q0 : 初期状態(state文の最初に宣言される状態)
----- 手順1:仕様合成 -----
機能:仕様合成
入力:有限状態マシンM[1]、,,,M[n]、表明expr
出力:有限状態マシンM
事例:図10の表
(1) 有限状態マシンM[i]の状態集合Q[i](エラー状態は含まない)の直積を生成し、エラー状態を加えて、状態集合Q'を得る。
すなわち、有限状態マシンMの状態集合はQ'=Q∪{error}とする。
Q := (Q[1] * Q[2] * ... * Q[n])
= { (q1,q2,...,qn) | q1 in Q[1] ∧ ... ∧ qn in Q[n] }
(2) 有限状態マシンM[i]のイベント集合Σ[i]の和を生成し、Mのイベント集合Σとする。
Σ := Σ[1] ∪ Σ[2] ∪ ... ∪ Σ[n]
= { a | a in Σ[1] ∨ ... ∨ a in Σ[n] }
(3) 表明exprを考慮しない遷移関数trans(q,a)を手順2の通り定義し、遷移表を計算する。
(4) 表明exprの真偽値表valid(q,a)を生成する。
(5) 表明expr(q,a)の真偽値表の値valid(q,a)が真とき遷移先trans(q,a)を用い、偽のとき遷移先errorとする。
(6) この遷移表delta(q,a)を有限状態マシンMの遷移関数δとする。
-----
----- 手順2:表明式を考慮しない遷移関数 -----
機能:表明式を考慮しない有限状態マシンの遷移delta(q,a)を計算する
入力:q:Q'、a:Σ、delta[i]:Q'[i] * Σ[i] → Q'[i]
出力:p:Q'
事例:図9の表
trans(q:Q', a:Σ):Q' :=
let q = (q[1],q[2],...,q[n])
var p = (p[1],p[2],...,p[2])
for each i in [1,2,...,n] do
if a in Σ[i] then
p[i] := delta[i](q[i],a)
else
p[i] := q[i]
endif
if p[i] = error then
return error
endif
endfor
return p
-----
----- 手順3:表明式を考慮した遷移関数 -----
機能:表明式を考慮した有限状態マシンの遷移表を計算する。
入力:表明式を考慮していない遷移表trans(q,a)、表明表valid(q,a)
出力:表明式を考慮した遷移表delta:Q' * Σ → Q'
事例:図10の表
delta(q:Q, a:Σ):Q :=
if valid(q,a) then
return trans(q,a)
else
return error
endif
-----
---- 定義2:表明式(表明の論理式) -----
以下のBNF記法で定義される論理式とし、記号"&&"は論理積、記号"||"が論理和、記号"!"が論理否定を意味し、状態変数"v@state"やイベント記号"v.event"は状態とイベントに応じて真偽値を取る。
expr ::= v@state | v.event | expr && expr | expr || expr | !expr
例)expr = (x@valid && y.use) && !(x@valid && z@locked)
----- 手順4:表明式の評価 -----
機能:状態qとイベントaに対する表明式の真偽値を計算する。
入力:表明式e、状態q、イベントa
出力:真偽値(trueまたはfalse)
事例:図8の表
valid(e:Exp, q:Q, a:Σ):bool :=
match e with
e1 && e2 => and(valid(e1,q,a), valid(e2,q,a))
e1 || e2 => or(valid(e1,q,a), valid(e2,q,a))
! e1 => not(valid(e1,q,a))
v@state => if q[v] = state then true else false
v.event => if a = v.event then true else false
endcase
-----
----- 手順5:入力検証仕様生成 -----
入力:中間仕様M=(Q',Σ,δ,q0,Q)
出力:有限状態マシンを実装するアスペクトモジュール
(1) 適当な検証仕様名Idのアスペクトaspectを修飾子pertarget(obj())で生成する
aspect Id pertarget(target(Type)) { ... }
(2) アスペクトのメンバに、状態Qを保持する変数qを宣言し、初期状態q0に初期化する
aspect ... { int q; ... }
(3) アスペクトのメンバに配列delta[][]を宣言し遷移δを格納する
aspect ... { ...; int delta[N][M]; ... }
(4) アスペクトのメンバに対象型Typeに対応するpointcut文を宣言する
aspect ... { ...; pointcut obj(): target(Type); ... }
(4) アスペクトのメンバにイベントΣに対応するpointcut文を宣言する
aspect ... { ...; pointcut evt(): call(...); ... }
(5) アスペクトのpointcut文に対応するアドバイスを宣言し、状態遷移を記述する
aspect ... { ...; before() : evt() { ... } ... }
a in Σに対応するアドバイス
before() : evt() { q = delta[q][a]; if (q == error) err(); }
-----
----- 例9:入力検証仕様(AspectJ言語の形式) -----
aspect Id pertarget(obj()) {
int q = q0;
int delta[][] = { ... };
pointcut obj() : target(Type);
pointcut evt1() : call(..); // イベントa1
...
before() : ev1() { q = delta[q][a1]; if (q == error) err(); }
...
}
-----
Claims (15)
- イベントの発生による複数の各状態間の遷移を表す第1有限状態マシンを記述した第1仕様を入力する第1の入力手段と、
(1)オブジェクト型と、(2)第1有限状態マシンの識別子と、(3)検証対象プログラムにおいて前記オブジェクト型をもつオブジェクトを操作する関数と前記識別子をもつ第1有限状態マシンに含まれるイベントとの対応と、の組を記述した第2仕様を入力する第2の入力手段と、
前記関数の呼び出しによる、前記オブジェクト型をもつオブジェクトの各状態間の遷移を表す第2有限状態マシンを記述した、前記検証対象プログラムを検証するための検証仕様を生成する検証仕様生成手段と、
を備えたプログラム検証仕様生成装置。 - 前記第1の入力手段は、複数の第1有限状態マシンが記述された前記第1仕様を入力し、
前記第2の入力手段は、複数の前記組が記述された前記第2仕様を入力し、
前記検証仕様生成手段は、各前記組に含まれる関数の呼び出しによる、各前記オブジェクトの状態の組み合わせ間の遷移を表す第3の有限状態マシンを記述した検証仕様を生成することを特徴とする請求項1に記載のプログラム検証仕様生成装置。 - 前記第2の入力手段は、前記オブジェクトの状態とイベントの発生とに基づく制約を表す論理式がさらに記述された前記第2仕様を入力し、
前記検証仕様生成手段は、前記制約に反する関数呼び出しに対してあらかじめ指定された状態へ遷移することを表す第3の有限状態マシンを記述した検証仕様を生成する、
ことを特徴とする請求項2に記載のプログラム検証仕様生成装置。 - 前記あらかじめ指定された状態はエラー状態であることを特徴とする請求項3に記載のプログラム検証仕様生成装置。
- 前記オブジェクトと、前記オブジェクトを操作する関数とを含む検証対象プログラムを前記検証仕様に基づいて検証するプログラム検証部をさらに備えたことを特徴とする請求項1に記載のプログラム検証仕様生成装置。
- イベントの発生による複数の各状態間の遷移を表す第1有限状態マシンを記述した第1仕様を入力し、
(1)オブジェクト型と、(2)第1有限状態マシンの識別子と、(3)検証対象プログラムにおいて前記オブジェクト型をもつオブジェクトを操作する関数と前記識別子をもつ第1有限状態マシンに含まれるイベントとの対応と、の組を記述した第2仕様を入力し、
前記関数の呼び出しによる、前記オブジェクト型をもつオブジェクトの各状態間の遷移を表す第2有限状態マシンを記述した、前記検証対象プログラムを検証するための検証仕様を生成する、
プログラム検証仕様生成方法。 - 複数の第1有限状態マシンが記述された前記第1仕様を入力し、
複数の前記組が記述された前記第2仕様を入力し、
各前記組に含まれる関数の呼び出しによる、各前記オブジェクトの状態の組み合わせ間の遷移を表す第3の有限状態マシンを記述した検証仕様を生成する、
ことを特徴とする請求項6に記載のプログラム検証仕様生成方法。 - 前記オブジェクトの状態とイベントの発生とに基づく制約を表す論理式がさらに記述された前記第2仕様を入力し、
前記制約に反する関数呼び出しに対してあらかじめ指定された状態へ遷移することを表す第3の有限状態マシンを記述した検証仕様を生成する、
ことを特徴とする請求項7に記載のプログラム検証仕様生成方法。 - 前記あらかじめ指定された状態はエラー状態であることを特徴とする請求項8に記載のプログラム検証仕様生成方法。
- さらに、前記オブジェクトと、前記オブジェクトを操作する関数とを含む検証対象プログラムを前記検証仕様に基づいて検証することを特徴とする請求項6に記載のプログラム検証仕様生成方法。
- イベントの発生による複数の各状態間の遷移を表す第1有限状態マシンを記述した第1仕様を入力する第1ステップと、
(1)オブジェクト型と、(2)第1有限状態マシンの識別子と、(3)検証対象プログラムにおいて前記オブジェクト型をもつオブジェクトを操作する関数と前記識別子をもつ第1有限状態マシンに含まれるイベントとの対応と、の組を記述した第2仕様を入力する第2ステップと、
前記関数の呼び出しによる、前記オブジェクト型をもつオブジェクトの各状態間の遷移を表す第2有限状態マシンを記述した、前記検証対象プログラムを検証するための検証仕様を生成する第3ステップと、
をコンピュータに実行させるためのプログラム。 - 前記第1ステップでは、複数の第1有限状態マシンが記述された前記第1仕様を入力し、
前記第2ステップでは、複数の前記組が記述された前記第2仕様を入力し、
前記第3ステップでは、各前記組に含まれる関数の呼び出しによる、各前記オブジェクトの状態の組み合わせ間の遷移を表す第3の有限状態マシンを記述した検証仕様を生成する、
ことを特徴とするプログラム。 - 前記第2ステップでは、前記オブジェクトの状態とイベントの発生とに基づく制約を表す論理式がさらに記述された前記第2仕様を入力し、
前記第3ステップでは、前記制約に反する関数呼び出しに対してあらかじめ指定された状態へ遷移することを表す第3の有限状態マシンを記述した検証仕様を生成する、
ことを特徴とする請求項12に記載のプログラム。 - 前記あらかじめ指定された状態はエラー状態であることを特徴とする請求項8に記載のプログラム。
- 前記オブジェクトと、前記オブジェクトを操作する関数とを含む検証対象プログラムを前記検証仕様に基づいて検証する第4ステップをさらに前記コンピュータに実行させることを特徴とする請求項11に記載のプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007081612A JP4607918B2 (ja) | 2007-03-27 | 2007-03-27 | プログラム検証仕様生成装置、方法およびプログラム |
US12/040,987 US20080250427A1 (en) | 2007-03-27 | 2008-03-03 | Apparatus and method for generating verification specification of verification target program, and computer readable medium |
CNA2008100878650A CN101276308A (zh) | 2007-03-27 | 2008-03-26 | 验证目标程序的验证规范的产生装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007081612A JP4607918B2 (ja) | 2007-03-27 | 2007-03-27 | プログラム検証仕様生成装置、方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008242737A true JP2008242737A (ja) | 2008-10-09 |
JP4607918B2 JP4607918B2 (ja) | 2011-01-05 |
Family
ID=39828112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007081612A Expired - Fee Related JP4607918B2 (ja) | 2007-03-27 | 2007-03-27 | プログラム検証仕様生成装置、方法およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20080250427A1 (ja) |
JP (1) | JP4607918B2 (ja) |
CN (1) | CN101276308A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010055293A (ja) * | 2008-08-27 | 2010-03-11 | Fujitsu Ltd | 検証支援プログラム、検証支援装置、および検証支援方法 |
JP2012137938A (ja) * | 2010-12-27 | 2012-07-19 | Internatl Business Mach Corp <Ibm> | リソース保護処理プログラムとリソース保護処理装置とリソース保護処理方法 |
US8586437B2 (en) | 2009-04-23 | 2013-11-19 | Renesas Electronics Corporation | Semiconductor device and method of manufacturing the semiconductor device |
JP2015056180A (ja) * | 2013-09-13 | 2015-03-23 | 富士通株式会社 | Guiに基づいたアプリケーションの決定性有限状態マシンモデルの抽出方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2199956A1 (en) * | 2008-12-18 | 2010-06-23 | Siemens Aktiengesellschaft | Method and system for managing results of an analysis process on objects handled along a technical process line |
US9400887B2 (en) * | 2011-11-15 | 2016-07-26 | Japan Science And Technology Agency | Program analysis/verification service provision system, control method for same, computer readable non-transitory storage medium, program analysis/verification device, program analysis/verification tool management device |
EP3370150B1 (en) | 2015-11-25 | 2020-02-19 | Huawei Technologies Co., Ltd. | Program generation method and system for accelerator |
CN109508540B (zh) * | 2018-09-12 | 2023-06-23 | 成都奥卡思微电科技有限公司 | 一种芯片安全监视方法和安全监视芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06295253A (ja) * | 1993-04-07 | 1994-10-21 | Hitachi Ltd | マイクロプログラム検証方法および装置 |
JPH09160763A (ja) * | 1995-12-05 | 1997-06-20 | Ricoh Co Ltd | プログラム解析方法及び装置 |
JP2007011605A (ja) * | 2005-06-29 | 2007-01-18 | Kansai Electric Power Co Inc:The | ソフトウェア動作仕様のモデル検査支援装置およびこれを備えたモデル検査システム並びにモデル検査支援プログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5481717A (en) * | 1993-04-12 | 1996-01-02 | Kabushiki Kaisha Toshiba | Logic program comparison method for verifying a computer program in relation to a system specification |
US5920718A (en) * | 1997-03-21 | 1999-07-06 | The Boeing Company | Method and apparatus for creating executable code for object-oriented objects having finite state machine |
US6938186B2 (en) * | 2002-05-28 | 2005-08-30 | Microsoft Corporation | System and method for performing a path-sensitive verification on a program |
US7979849B2 (en) * | 2004-10-15 | 2011-07-12 | Cisco Technology, Inc. | Automatic model-based testing |
JP2008171296A (ja) * | 2007-01-15 | 2008-07-24 | Fujitsu Ltd | モデル作成プログラム、モデル作成装置、モデル作成方法 |
-
2007
- 2007-03-27 JP JP2007081612A patent/JP4607918B2/ja not_active Expired - Fee Related
-
2008
- 2008-03-03 US US12/040,987 patent/US20080250427A1/en not_active Abandoned
- 2008-03-26 CN CNA2008100878650A patent/CN101276308A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06295253A (ja) * | 1993-04-07 | 1994-10-21 | Hitachi Ltd | マイクロプログラム検証方法および装置 |
JPH09160763A (ja) * | 1995-12-05 | 1997-06-20 | Ricoh Co Ltd | プログラム解析方法及び装置 |
JP2007011605A (ja) * | 2005-06-29 | 2007-01-18 | Kansai Electric Power Co Inc:The | ソフトウェア動作仕様のモデル検査支援装置およびこれを備えたモデル検査システム並びにモデル検査支援プログラム |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010055293A (ja) * | 2008-08-27 | 2010-03-11 | Fujitsu Ltd | 検証支援プログラム、検証支援装置、および検証支援方法 |
US8586437B2 (en) | 2009-04-23 | 2013-11-19 | Renesas Electronics Corporation | Semiconductor device and method of manufacturing the semiconductor device |
JP2012137938A (ja) * | 2010-12-27 | 2012-07-19 | Internatl Business Mach Corp <Ibm> | リソース保護処理プログラムとリソース保護処理装置とリソース保護処理方法 |
JP2015056180A (ja) * | 2013-09-13 | 2015-03-23 | 富士通株式会社 | Guiに基づいたアプリケーションの決定性有限状態マシンモデルの抽出方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101276308A (zh) | 2008-10-01 |
JP4607918B2 (ja) | 2011-01-05 |
US20080250427A1 (en) | 2008-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4607918B2 (ja) | プログラム検証仕様生成装置、方法およびプログラム | |
Almeida et al. | Jasmin: High-assurance and high-speed cryptography | |
Beyer et al. | Witness validation and stepwise testification across software verifiers | |
Beyer et al. | Correctness witnesses: Exchanging verification results between verifiers | |
Boespflug et al. | The λΠ-calculus Modulo as a Universal Proof Language. | |
Maksimović et al. | Gillian, part II: real-world verification for javascript and C | |
Ermis et al. | Splitting via interpolants | |
Ipate et al. | Test generation from P systems using model checking | |
Blech et al. | On formal reasoning on the semantics of PLC using Coq | |
Bourbouh et al. | Automated analysis of Stateflow models | |
Jakobsson et al. | Replicated synchronization for imperative BSP programs | |
Mateescu et al. | Quantifying the parallelism in BPMN processes using model checking | |
Backes et al. | Automatically verifying typing constraints for a data processing language | |
JP4959784B2 (ja) | 生成装置、生成方法、および、生成プログラム | |
Zirkel et al. | Automated verification of Chapel programs using model checking and symbolic execution | |
Ubar | Overview about low-level and high-level decision diagrams for diagnostic modeling of digital systems | |
Yang et al. | A verified transformation: from polychronous programs to a variant of clocked guarded actions | |
Ambal et al. | Certified derivation of small-step from big-step skeletal semantics | |
Ressouche et al. | Modular compilation of a synchronous language | |
Dausend et al. | Introducing Aspect–Oriented Specification for Abstract State Machines | |
Lefticaru et al. | Model checking based test generation from P systems using P-lingua | |
Li et al. | Automated transformations from UML behavior models to contracts | |
Wang et al. | Umc4m: A verification tool via program execution | |
Wypych et al. | Extension of Alvis compiler front-end | |
Harrison et al. | Check for updates Formalized High Level Synthesis with Applications to Cryptographic Hardware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090327 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090911 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091110 |
|
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: 20100917 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101007 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131015 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |