A Compiler translates all the source code for a program into machine code before it is executed. This process is carried out by the developer when they are ready to ship their program.
A compiler produces an executable which contains the machine code instructions which allows it to run its instructions on a CPU. This can be ran without the source code or the compiler being installed. Due to being converted into machine code ahead of time compiled programs tend to be more performant.
Executables cannot be shared between different types of CPU. A different executable must be compiled for each type of CPU or platform it needs to run on. If download a program off the internet you may find various versions of an executable, for example x86, x86_64 and ARM64.