首页 信息安全软件 系统软件 软件开发 物联网应用 人工智能应用
发布信息
登录/注册

  1. 1 查看联系方式
  2. 2 沟通洽谈
  3. 3 项目执行
  4. 4 验收结算

专业解决代码检测工具

联系人:张先生 电话咨询

联系方式: 138****5225

联系公司:点点新深圳科技有限公司

联系地址:深圳市宝安区福海街道桥头社区宝安大道6093号中正财富大厦413

内容描述:


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

简要技术说明

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

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


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

ControlFlag可以在Linux和MacOS上构建。

要求CMake3.4.3或以上C++17兼容编译器Tree-sitter 解析器(作为cmake的一部分自动下载)GNUparallel(可选,如果您想生成自己的训练数据)

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

CentOS-7.6/Ubuntu-20.04withg++-v10.2.0forx86_64

在MacOS上测试构建配置

MacOSMojavev10.14.6withclang-1001.0.46.4(AppleLLVMversion10.0.1)forx86_64(从命令行工具包获得)构建$cdcontrolflag$cmake.$make-j$maketest

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


1.jpg2.jpg2.jpg

Copyright © 2025 powered by 深圳市宇宙空间文化传媒有限公司 备案号:粤ICP备2024232334号   公司地址:深圳市龙岗区坂田街道马安堂社区中兴路4号互联e时代601-c26