gcg00467
C言語検証
最終更新:
gcg00467
-
view
思い立って,C言語の検証関係を調べてみた.まだまだ調査は足りない.
Wikipediaの「静的コード解析」のページから
BLASTとSLAM
もちろん,BLAST と SLAM はある.
SLAMは Wikipedia にはでていない....
SLAMは Wikipedia にはでていない....
VARVEL
- NECの検証ツール.2009年発売予定??
- 基本的には有界モデル検査. ただし,assertion, pre/post condition も書けるように拡張している.静的解析を併用して探索空間を少なくする,といった工夫があるらしい.
- 以前は,F-test と言っていた.
F. Ivancic et al:Model checking C programs using F-Soft. Invited. paper in the Proceedings of the IEEE International Conference on. Computer Design (ICCD), October 2005.
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1524168
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1524168
橋本ほか: 形式手法によるC言語検証ツール 「VARVEL」
http://www.google.com/search?client=opera&rls=ja&q=Model+Checking+C+Programs+Using+F-SOFT&sourceid=opera&ie=utf-8&oe=utf-8
http://www.google.com/search?client=opera&rls=ja&q=Model+Checking+C+Programs+Using+F-SOFT&sourceid=opera&ie=utf-8&oe=utf-8
QAC
メーカーのウェブページ
http://www.programmingresearch.com/QAC_MAIN.html#1_4
を見た感じだと,コーディングスタンダードをenforceする,ということみたい.
http://www.programmingresearch.com/QAC_MAIN.html#1_4
を見た感じだと,コーディングスタンダードをenforceする,ということみたい.
Coverity
Coverity (http://www.coverity.com/) は会社の名前.
製品は,Coverity Prevent for C/C++ など,いろいろある.
原理がちゃんと書いてあるものは見つからなかったが,以下のようなことができる,
と書いてある.
製品は,Coverity Prevent for C/C++ など,いろいろある.
原理がちゃんと書いてあるものは見つからなかったが,以下のようなことができる,
と書いてある.
Concurrency Issues
. Double locks, missing locks
. Locks acquired in incorrect order
. Locks held by blocking functions
Memory Corruption and
Mismanagement
. Resource leaks
. Calls to freeing functions using
invalid arguments
. Excessive stack use in memoryconstrained
systems
Crash-causing pointer errors
. Dereference of null pointers
. Failure to check for null return values
. Misuse of data contained within
wrapper data types
. Double locks, missing locks
. Locks acquired in incorrect order
. Locks held by blocking functions
Memory Corruption and
Mismanagement
. Resource leaks
. Calls to freeing functions using
invalid arguments
. Excessive stack use in memoryconstrained
systems
Crash-causing pointer errors
. Dereference of null pointers
. Failure to check for null return values
. Misuse of data contained within
wrapper data types
CQUAL
Caduceus
おなじみの Caduceus.
http://caduceus.lri.fr/
http://caduceus.lri.fr/