如何构建静态代码分析工具?

cod*_*er 17 static-analysis

我正在为大公司的专有语言理解和构建静态代码分析工具.这样做的原因,我必须检查一个相当大的代码库,静态代码分析将有很多帮助,到目前为止他们没有一个语言.

我想知道如何构建静态代码分析工具,例如Lint或SpLint for C.

任何书籍,文章,博客,网站......都会有所帮助.

谢谢.

Ton*_*rds 5

我知道这是一篇过时的文章,但答案似乎并不令人满意。 本文很好地介绍了静态分析工具背后的技术,并提供了一些示例链接。

一本好书是Brian Chest和Jacob West撰写的“使用静态分析进行安全编程”。


Yan*_*min 0

  1. 显然你需要一个该语言的解析器。良好的高级 AST 很有用。
  2. 您需要列举该语言中的一组“错误”。如果不了解有关相关语言的更多信息,我们无法提供帮助。示例:C 中未分配的指针等。
  3. 将 AST 与 #2 中的错误结合起来。

  • @codeanalysisr:几乎你不这样做(或者你追逐琐碎的事情)。对于任何类型的有趣分析,您需要的不仅仅是 AST。请参阅 www.semanticdesigns.com/Products/DMS/LifeAfterParsing.html。 (2认同)