Intel Releases ControlFlag – An AI Code Debugging System
12-12-2020 | By Robin Mitchell
The importance of software in the electronics industry cannot be overstated, and most electronic engineers are required to code at some point in their life. What issues does software cause in the development of modern systems, what does Intel’s ControlFlag system do, and how is AI playing a greater role in modern life?
The Growing Importance of Software
Several decades ago, it was the job of an electronics engineer to design circuits, and these could either be built using standard cookbook circuits or by designing unique circuits for unique solutions. Either way, an electronic engineer rarely, if at all, saw code. However, the introduction of low-cost computing systems such as microprocessors and microcontrollers now see electronic engineers having to deal with both circuits and the code that they run.
But, the rate at which software is becoming important is mind-boggling, and the introduction of software-defined systems is causing a paradigm shift to designs. Instead of determining how logic gates and controllers should connect, this can all be defined in software which is then expected on a programmable hardware system (such as FPGAs). Even analogue systems can now be defined in software, with no need for careful selection of transistors, resistors, or capacitors.
Now, entire cloud-based platforms, all designed in code, control the flow of data, while virtual radio networks, also defined in code, control how radio devices communicate. From there, IoT systems run code to control how they interpret data, while the use of SoCs reduces the complexity of many designs to just a few ICs. However, all of the code driving these systems requires human coders, and the use of humans can lead to bugs which cause entire projects to grind to a halt until they are found. In fact, it is estimated that up to 50% of the time on a software-related project is devoted to finding these errors.
Intel Introduces ControlFlag
Understanding the importance of code, and the need to improve productivity, Intel has recently announced their latest debugging system, ControlFlag. Unlike other debuggers, ControlFlag is based on AI and can learn from its users over time to recognise coding patterns.
Using this information, ControlFlag can look at written code and identify potential bugs and errors without needing to compile the code. ControlFlag can do this by comparing written code to how a coder usually programs code. For example, a coder may use variable names with lowercase to start. Still, any variables identified with an upper case as their first letter could cause the ControlFlag system to warn the user that the code may not execute correctly.
ControlFlag not only understands how its user’s code, but it also understands the general nature of coding languages, and as such does not need to be taught about each coding language; it can be used with any language regardless. In other words, ControlFlag is designed to look for anomalies in code; phrases, functions, variable names, or spellings that don’t occur often, or only once. These types of anomalies can often be the cause of unexpected errors or bugs.
Putting ControlFlag to the test, Intel turned their system to cURL, a computer programming library and command-line tool. The result of the analysis showed an anomalous piece of code that prompted the development team of cURL to provide a better solution. Intel is now using ControlFlag on their own code to try and find bugs before they become a problem in future software releases.
How AI is Extending its Reach to all Areas of Life
The use of AI to search for anomalies is not new and is one of the useful features of AI. While AI is unable to explain why it concludes, it is very good at finding relationships between datasets that would normally be difficult to see.
One example of where AI is heavily deployed in the industrial sector; machinery all over is being fitted with sensor monitoring which can look for abnormalities in operation. From there, the abnormalities are then checked to see what they reflect, whether it is a faulty gear or a worn bearing. Such systems allow for intelligent monitoring that can detect problems before they occur, and thus allow processes to plan for future maintenance; this, in turn, increases productivity as well as profitability.
Read More