self-adapting program: a program that can change its performance in response to its environment
program: (computer science) a sequence of instructions that a computer can interpret and execute
machine gun: a rapidly firing automatic gun (often mounted)