A program that can change its performance in response to its environment English: self-adapting program