In most computer programming, a programmer keeps a program's intended results in mind and painstakingly constructs a program to achieve those results. Inferential programming refers to (still mostly hypothetical) techniques and technologies enabling the inverse. This would allow describing an intended result to a computer, using a metaphor such as a fitness function, a test specification, or a logical specification, and then the computer, on its own, would construct a program needed to meet the supplied criteria.

During the 1980s, approaches to achieve inferential programming mostly involved techniques for logical inference. Today the term is sometimes used in connection with evolutionary computation techniques that enable a computer to evolve a solution in response to a problem posed as a fitness or reward function.

Inferential programming

In July 2022, GitHub Copilot was released, which is an example of inferential programming.

Inferential programming

Closely related concepts and technologies

Logic programming

Prolog

Constraint programming

Artificial intelligence

Genetic programming

Machine learning

Artificial life

Evolution

Metaprogramming

See also

Automated reasoning

Compiler theory

Unit testing

References

External links

First steps towards inferential programming

Programming paradigms

Inferential programming