Intel on Thursday unveiled ControlFlag, a machine programming research system that can autonomously detect errors in code, during its Labs Day 2020.
In preliminary tests, ControlFlag trained and learned novel defects on over 1 billion unlabelled lines of production-quality code. The tool shows promise as a powerful productivity tool to assist software developers with the labour-intensive task of debugging, according to Intel.
Intel said that it’s estimated that of the $1.25 trillion that software development costs the IT industry every year, 50 percent is spent debugging code.
“We think ControlFlag is a powerful new tool that could dramatically reduce the time and money required to evaluate and debug code. According to studies, software developers spend approximately 50% of the time debugging. With ControlFlag, and systems like it, I imagine a world where programmers spend notably less time debugging and more time on what I believe human programmers do best — expressing creative, new ideas to machines,” Justin Gottschlich, Principal Scientist and Director/Founder of Machine Programming Research at Intel Labs.
ControlFlag is enabled by a mix of machine programming, machine learning, formal methods, programming languages, compilers and computer systems. It specifically operates through a capability known as anomaly detection.
ControlFlag learns from verified examples to detect normal coding patterns, identifying anomalies in code that are likely to cause a bug. Further, if anomalies in code are found, the tool can detect these anomalies regardless of programming language. The most important benefit of ControlFlag’s unsupervised approach to pattern recognition is that it can intrinsically learn to adapt to a developer’s style and identify stylistic variations in a programming language.
The programming tool learns to identify and tag these stylistic choices and can customize error identification and solution recommendations based on its insights. This minimizes ControlFlag’s characterizations of code in error that may simply be a stylistic deviation between two developer teams as an error, according to Intel.
When Intel tested ControlFlag, it was able to identify errors in production-quality code. One of these codebases that was analysed by the tool was cURL. It was able to identify an anomaly in a cURL code that had not been previously recognized.
Currently, Intel has is using ControlFlag internally to identify bugs in its own software and firmware product development. It is a key element of Intel’s Rapid Analysis for Developers project, which aims to accelerate velocity by providing expert assistance.