Today, the company made its open sourced code Infer freely available to any independent developer or any company looking to debug their apps in new ways.
Peter O’Hearn, Infer’s co-creator said “It looks at the program and makes guesses or hypotheses about the program, the way a human might.”
However, in contrast to a human, it can read thousands of lines of code in just minutes to locate potential bugs. Facebook asserts that it has a repairing bug rate of about 80 percent, which is considerably good for such an automated system.
The debuggers, many of them, run a program and search or scan through the code line by line and look for errors. Infer has the ability to methodically examine the code and search for problems without actually finishing it, a concept called “static program analysis.”
Based on the concept, static analysis, both commercial and open source testing tools are available and has been around for decades. However, these tools cannot do deep code analysis at the level that Infer can says O’Hearn. In contrast to other tools, Infer is able to crack down large code bases, methodically examine the smaller parts, and then join the results together, keeping the trade off between speed and depth.
O’Hearn says “I think of it as AI.” However, he says it is very close to the symbolic artificial intelligence branch of the field than the more brain-inspired neural networking techniques other researchers at Facebook are inventing.
Infer was developed out of academic research that O’Hearn had begun with the late computer scientist John Reynolds, along with him developed a computer science concept called separation logic. The next important discovery came later, when O’Hearn became aware that he could apply a concept called abductive reasoning to static analysis.
O’Hearn worked with Dino Distefano, who was his research assistant and Cristiano Calcagno, who was one of his PhD students at the Queen Mary University of London. Distefano and Calcagno went on to different institutes and persisted with their research. However, in the end, they found themselves wanting to make an impression on the world of software development outside of academia. They made a decision and founded startup called Monoidics and requested O’Hearn to join them.
The original plan was to develop a commercial product depending on their work. However, when they received an offer from Facebook to buy the company, the team realized that they would not be able to make a larger impact as a small startup than they would be able to make on Facebook says O’Hearn. The team is now able to give the entire platform away free of charge. “It took some time to come to that decision, but that was always the ideal situation,” he says.
O’Hearn is hopeful that by making Infer freely available for all, the team would be able to help other companies, gather reactions from them, and draw attention to contributions from academics.
“Static analysis is full of great ideas but also unsolved problems,” he says. “We hope this can boost collaboration between industry and academia, and get research flowing in both directions.”