A program-by-example paradigm in which the interpreter learns and grows, rather than being given explicit direction