ControlFlag 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
ControlFlag 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
ControlFlag 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
开发语言 C/C++ 查看源码 »
操作系统 Linux
软件类型 开源软件
开源组织 Intel
地区 不详
投 递 者 Alias_Travis
适用人群 未知
收录时间 2021-10-21

软件简介

ControlFlag 是一个自监督的特殊模式检测系统,它通过从开源存储库(在 GitHub 和其他版本控制系统上)挖掘这些模式来学习高级编程语言(如 C/C++)控制结构中出现的典型模式。然后应用学习到的模式来检测用户代码中的异常模式。

简要技术说明

ControlFlag 的模式异常检测系统可用于解决各种问题,例如排版错误检测、标记缺失的 NULL 检查等等。

下图显示了 ControlFlag 的两个主要阶段:(1)模式挖掘阶段,以及(2)异常模式扫描阶段。模式挖掘阶段是一个“训练阶段”,它在用户提供的 GitHub 仓库中挖掘典型模式,然后从挖掘的模式中构建决策树。另一方面,扫描阶段应用挖掘的模式来标记用户指定的目标仓库中的异常表达式。

目录结构(不断发展)

  • src: 用于排版错误检测系统的 ControlFlag 的源代码
  • scripts: 用于模式挖掘和扫描异常的脚本
  • quick_start:运行快速启动测试的脚本
  • github:用于下载 GitHub 仓库的脚本和数据。它还包含预处理的训练数据,其中包含使用 C 作为主要语言从 6000 个 GitHub 仓库中挖掘的模式。
  • tests: 单元测试

安装

ControlFlag 可以在 Linux 和 MacOS 上构建。

要求

  • CMake 3.4.3 或以上
  • C++17 兼容编译器
  • Tree-sitter 解析器(作为 cmake 的一部分自动下载)
  • GNU parallel(可选,如果您想生成自己的训练数据)

在基于 Linux 的系统上测试构建配置

  • CentOS-7.6/Ubuntu-20.04 with g++-v10.2.0 for x86_64

在 MacOS 上测试构建配置

  • MacOS Mojave v10.14.6 with clang-1001.0.46.4 (Apple LLVM version 10.0.1) for x86_64(从命令行工具包获得)

构建

$ cd controlflag
$ cmake .
$ make -j
$ make test

所有测试都make test应该通过,但目前 Verilog 的测试由于版本不匹配问题而失败。Verilog 支持是 WIP。

 

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(2)
发表了资讯
05/11 07:46

全面支持 C++,英特尔代码检测工具 ControlFlag 1.2 发布

ControlFlag 1.2 现已发布。ControlFlag 是英特尔推出的一个基于机器学习的代码检测工具,通过人工智能和超过 10 亿行代码的训练结合,可以做到自动扫描存储库的源代码中的错误,英特尔已经将它应用到软件和硬件的生产。 ControlFlag 是一个自监督的特殊模式检测系统,就是通过从开源的存储库(在 GitHub 和其他 Git 平台)挖掘经典模式来学习高级编程语言(如 C/C++)的控制结构(if 等),然后用学到的经典结构来检测用户自己...

1
10
04/14 07:44

全面支持 PHP,英特尔代码检测工具 ControlFlag 1.1 发布

ControlFlag 1.1 现已发布。ControlFlag 是英特尔推出的一个基于机器学习的代码检测工具,通过人工智能和超过 10 亿行代码的训练结合,可以做到自动扫描存储库的源代码中的错误,英特尔已经将它应用到软件和硬件的生产。 ControlFlag 是一个自监督的特殊模式检测系统,就是通过从开源的存储库(在 GitHub 和其他 Git 平台)挖掘经典模式来学习高级编程语言(如 C/C++)的控制结构(if 等),然后用学到的经典结构来检测用户自己...

4
13
发表了资讯
2021/11/20 08:01

英特尔已发布代码检测工具 ControlFlag 1.0 版本

11 月 19 日,由英特尔实验室开发的 ControlFlag 发布了 1.0 版本,ControlFlag 通过人工智能和超过 10 亿行代码的训练结合,可以做到自动扫描存储库的源代码中的错误,英特尔已经将它应用到软件和硬件的生产。 ControlFlag 是一个自监督的特殊模式检测系统,就是通过从开源的存储库(在 GitHub 和其他 Git 平台)挖掘经典模式来学习高级编程语言(如 C/C++)的控制结构(if 等),然后用学到的经典结构来检测用户自己代码的异常...

3
12
2021/10/22 08:19

英特尔开源基于机器学习的代码检测工具 ControlFlag

去年,英特尔推出了一个基于机器学习的代码检测工具 ControlFlag,可以帮助开发者发现代码中的错误,减少调试应用程序和软件所需的时间。英特尔在用超过 10 亿行的代码对 ControlFlag 进行训练后取得令人印象深刻的结果,ControlFlag 在已达到 "生产质量" 的软件中发现了数百个错误,证明了其在代码检测方面的实用性。而且在去年年底,英特尔就已将该工具部署至公司内部,用于检查从固件到软件应用的代码库。 如今时隔一年时间,...

2
10
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
2 评论
18 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部