※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Splint is a tool for statically checking C programs for security vulnerabilities and programming mistakes.
Splint does many of the traditional lint checks including unused declarations, type inconsistencies, use before definition, unreachable code, ignored return values, execution paths with no return, likely infinite loops, and fall through cases.
More powerful checks are made possible by additional information given in source code annotations.
Annotations are stylized comments that document assumptions about functions, variables, parameters and types.
In addition to the checks specifically enabled by annotations, many of the traditional lint checks are improved by exploiting this additional information.

Splintは、Cプログラムに対し、セキュリティ脆弱さとプログラミングの誤りを静的にチェックするためのツールです。
Splintは、未使用の宣言、タイプの不一致、定義前の使用、到達できないコード、無視された戻り値、リターン無しの実行経路、無限ループと思われる箇所、異常になりそうな箇所など従来からのLintのチェックも含みます。
より強力なチェックは、ソースコードの注釈において与えられる情報によって可能になります。
注釈は、関数、変数、パラメータ、タイプについて、仮定を記録する定型化されたコメントです。
注釈によって有効となるチェックに加えて、従来のLintチェックはこの追加情報を利用することによって改善されます。


As more effort is put into annotating programs, better checking results.
A representational effort-benefit curve for using Splint is shown in Figure 1.
Splint is designed to be flexible and allow programmers to select appropriate points on the effort-benefit curve for particular projects.
As different checks are turned on and more information is given in code annotations the number of bugs that can be detected increases dramatically.

より多くの注釈をプログラムに入れることにより、よりよいチェック結果が得られます。Splintを使うための代表的な努力-利点カーブは、図1に示されます。
Splintは、柔軟で、プログラマーが特定のプロジェクトのために、努力-利点カーブで適当な点を選ぶことができるように設計されています。
異なる複数のチェックを有効にし、ソースコードに注釈を記載すると、見つけられるバグの数は劇的に増加します。