What is a compiler?

A. A compiler does a conversion line by line as the program is run

B. A compiler converts the whole of a higher level program code into machine code in one step

C. A compiler is a general purpose language providing very efficient execution

D. None of the above

Please do not use chat terms. Example: avoid using "grt" instead of "great".