# What is AI for Code?

As an artificial intelligence (AI) startup founded by a computer science professor at the University of Oxford, we are often asked about the “AI for Code” that powers our tools. To explain it properly, we first need to start with an explanation of some of the assumptions underpinning AI, because even though AI is a popular topic in the press and throughout the technology industry, it’s often misunderstood.

AI as a discipline is about understanding and creating reasoning. The research on this runs back many years, and there are a number of different approaches to reasoning that AI can focus on. Two of these, inductive reasoning and deductive reasoning, are particularly important to AI for Code.

## Inductive reasoning

Inductive reasoning attempts to infer an answer from a set of data points. This is very similar to how humans make decisions, either with incomplete knowledge or when the answer is likely but perhaps not always true. A computer might reason that rain follows thunder, lightning, and clouds, but meteorologists would tell us that this weather pattern is typically — but not always — the case.

To emulate this type of reasoning in machines, many AI researchers use a variety of machine learning algorithms, employing things like predictive analytics and unsupervised learning, to test and train datasets and to infer a result based on data. While popular and quite useful, machine learning is not the only type of AI used in the real world today.

## Deductive reasoning

This is reasoning that arrives at a definitive and absolute conclusion. This process is not based on a correlation, regardless of statistical significance. For example, if we are considering the English alphabet, we know for certain that C always follows B. Our team has done important work in the area of deductive reasoning about code bases in order to understand how to solve some of the problems plaguing developers today.

So should AI approximate human-like decisions? If so, is it all about inductive reasoning?

## Mixed Reasoning Approaches

In order for machines to make productive and intelligent choices, they must use a variety of reasoning patterns, much like humans, and we stand to learn and gain a lot from each of these types of reasoning and their combination.

Take, for instance, the work by Google’s DeepMind. DeepMind famously defeated the world champion at the game Go with their AlphaGo platform. They used a combination of inductive and deductive reasoning to arrive at answers.

Autonomous cars, game simulations or speech recognition all utilize a variety of AI methods. Similarly, in our research, we’re using appropriate data and models to solve problems like the automatic writing of unit tests, which we hope will revolutionize the way developers are able to write code.

Like the industry as a whole, AI for Code is just getting started.

Share