Each CPU has its own internal machine language. Programming at this
internal machine level is usually carried out in Assembly language which
is machine specific and relates on an instruction to instruction basis
to the internal machine language.
High-level languages are translated by a compiler program
into internal machine language. The compiled code is linked with any system
libraries required and the final program loaded into memory before execution
of the program can take place.
If an agreed standard is produced for a high-level language then any
program which conforms to the standard should be able to run on any
computer after compiling it with a machine-specific compiler. This gives
the advantage of portability of programs.