ControlFlag:代码调试工具

英特尔发布了 发布重要版本 控制标志 1.0, 这是一个 软件控制系统 检测代码中的错误和异常 使用在大量现有代码上训练的机器学习系统的源代码。

与传统的静态分析器不同, ControlFlag 不应用预定义的规则, 其中很难预见所有可能的选择,而是 各类建筑使用统计的一部分 大量现有项目中的语言。

根据研究,查找和删除代码中的错误通常是手动完成的,占用了开发人员 50% 以上的工作时间。 

该工具学习识别和标记这些风格选项,您可以根据您的知识自定义错误识别和修复建议,最大限度地减少 ControlFlag 不良代码特征,这可能只是两个开发人员团队之间的风格偏差。

关于控制标志

系统 通过从现有源代码矩阵构建统计模型来训练 open 发布在 GitHub 和类似的公共存储库上。 在训练阶段,系统确定典型模板来构建代码中的结构,并构建这些模板之间的连接句法树,反映程序中代码执行的流程。

从而形成了参考决策树,它结合了所有分析源文本的开发经验。 对被测代码执行类似的模式设置过程,并将其与参考决策树进行比较。 与相邻分支的巨大差异表明正在验证的模式中存在异常。

的特点 版本 ControlFlag 1.0,突出显示对C模板的全面支持 和检测能力 条件“if”语句中的异常。

例如,在解析代码片段“if (x = 7) y = x;”时系统会检测到“if”语句中一般使用结构“variable == number”来比较数值,因此“if”语句中出现“variable = number”的提示很可能是排版错误造成的。

套件 提供一个脚本,允许下载 GitHub 上可用的 C 存储库 并使用它们来构建模型。 还提供现成的模型,让您可以立即开始检查代码

系统 是机器编程研究项目的一部分 (MPR) 来自 Intel,其主要目标是通过自动化将软件开发所需的时间减少 1000 倍。

特别是,英特尔目前正在努力训练 Controlflag 以自动纠正检测到的错误。 同样在 2020 年,该公司发布了与 MIT 实验室联合开发的 MISIM 工具,该工具可以研究代码片段以了解一段代码的用途。 该系统旨在为开发人员提供提高代码效率的方法。

“调试预计会对开发人员和整个行业造成更大的损害,”英特尔表示。 公告……“完全实施后,ControlFlag 可以通过自动化软件开发的麻烦(例如测试、监控和调试)来帮助缓解这一挑战。”

“ControlFlag 无监督模式识别方法的主要优势在于,您基本上可以学会适应开发人员的风格。 因为该程序对您需要评估的控制工具的输入有限。 ControlFlag 可以识别编程语言中的排版变化,就像读者可以识别单词之间的完全差异并使用英文缩写一样,”英特尔写道。

最后 如果您有兴趣了解更多有关它的信息 关于 ControlFlag,你应该知道它是用 C++ 编写的,并且是在 MIT 许可下开源的及其代码 托管在 GitHub 上。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。