英特尔发布 ControlFlag 1.2,一种检测源代码异常的工具

英特尔发布了 ControlFlag 1.2 版本,该工具包允许您使用经过大量现有代码训练的机器学习系统来识别源代码中的错误和异常。 与传统的静态分析器不同,ControlFlag 不应用现成的规则,很难提供所有可能的选项,而是基于对大量现有项目中各种语言结构的使用情况进行统计。 ControlFlag 代码是用 C++ 编写的,并在 MIT 许可证下开源。

新版本的显着之处在于对基于 C++ 语言通用代码模式的异常检测和学习的全面支持。 在以前的版本中,为 C 和 PHP 语言提供了类似的支持。 该系统适用于识别代码中的各种类型的问题,从识别拼写错误和类型不匹配,到识别 if 语句中的异常和指针中缺少 NULL 检查。 该系统是通过构建 C、C++ 和 PHP 开源项目现有代码数组的统计模型来训练的,这些项目发布在 GitHub 和类似的公共存储库中。

在训练阶段,系统确定在代码中构建结构的典型模式,并构建这些模式之间连接的语法树,反映程序中代码执行的流程。 结果,结合了所有分析的源代码的开发经验,形成了参考决策树。 正在审查的代码经历了类似的识别模式的过程,并根据参考决策树进行检查。 与相邻分支的较大差异表明正在检查的模式中存在异常。

英特尔发布 ControlFlag 1.2,一种检测源代码异常的工具


来源: opennet.ru

添加评论