A computer program that converts an entire program into machine language is called a/an