To use a computer, a program must be created in a machine language consisting of numeric strings of 0s and 1s that the computer can understand. However, directly writing a program in machine language requires advanced techniques, and the normal approach is to first write a program in a programming language closer to human language and then translate that program to machine language. A compiler is software that performs this translation.