The microcontroller operates by electrical signals.
The machine language is a language that combines the signals "High and Low, that is, the binary number 1 and 0", and is the only language that a microcontroller can understand.
The program written in C language or the assembly language cannot operate the microcontroller as it is.
Therefore, it is necessary to convert a program written in C language or the assembly language into the machine language.
Each microcontroller manufacturer has a compiler for converting C language to the machine language and an assembler for converting the assembly language to the machine language.