High level languages like C are translated by the compiler into machine language which is instruction set specific. In the case of modern processors the machine code is then translated on chip into basically a lower level of machine language that is processor version specific. Many processors can run the same instruction set, but true machine language is usually specific to a particular version of a particular processor. This extra translation layer is usually 1:1 and was not present back in the olden days, so is usually ignored for the purposes of discussion.