|Intel Open Sources AI Bug Checker|
|Written by Kay Ewbank|
|Monday, 01 November 2021|
Intel has made its AI-powered bug checker open source. ControlFlag uses machine learning and works with any programming language with control structures.
The tool was developed by Intel Labs’ Machine Programming Research (MPR) team. The developers say it uses advanced self-supervised machine-learning techniques to detect coding anomalies.
It has now been made open source and the team says they are:
"excited to give developers the opportunity to develop on it and see what more can be done using this extremely valuable and innovative technology."
Intel has tested ControlFlag on production-level software and widely used open-source software systems, and last year identified a code anomaly in Client URL (cURL), a computer software project transferring data using various network protocols over one billion times a day. After reporting the anomaly to the cURL team, they agreed with ControlFlag’s findings and have subsequently patched their code.
ControlFlag's pattern anomaly detection system can be used for various problems such as typographical error detection or flagging a missing NULL check. The software has two main phases, a pattern mining phase that is followed by a secondary phase where the software scans for anomalous patterns.
The pattern mining phase is a training phase that mines typical patterns in the user-provided GitHub repositories and then builds a decision-tree from the mined patterns. The scanning phase then applies the mined patterns to flag anomalous expressions in the user-specified target repositories.
In a paper presented to the Proceedings of the 5th ACM SIGPLAN International Symposium on Machine Programming describing the software, Niranjan Hasabnis and Justin Gottschlich of Intel Labs say that to their knowledge, the software is the first-of-its-kind self-supervised idiosyncratic programming pattern detection system. They also say that while they only demonstrate ControlFlag for C/C++, they have designed it to be programming language agnostic. As such, it should be capable of learning idiosyncratic signatures of any type of control structure.
or email your comment to: email@example.com