The language where the computer is told what the problem is, not how to solve the problem. So given a database or a set of rules, the computer tries to find a solution matching all the desired properties.
Example 1 (format: input vars => expected output)
Set of rules:
2, 2 => 4; 2, 4 => 6; 4, 4 => 8
, etc.
Then program learns that it needs to add all the input variables.