You ask a good question. Why doesn't a CPU just execute say C++ directly? Why go to the trouble of translating it first (i.e. compiling or interpreting) into some arcane machine language (Intel x86)?
The answer is all to do with flexibility. Computer hardware architectures are designed to be able to execute a broad range of programs. To enable this flexibility there needs to be a kind of lowest common denominator - a common language to execute all those different programs.
The biggest hurdle to flexibility is that hardware is fixed in terms of operation. This means that the possible range of instructions it can execute is fixed. Yes, you could have a system whereby a microcoded CPU is reprogrammed on the fly, but there would still need to be a core set of immutable instructions that could do the re-programming.
Once you have have a fixed set of instructions, there's no possibility for upgrade or bug fixing and so on. You would have to release new hardware for every upgrade. This does happen, but constantly upgrading hardware is expensive. In other words for every new release of say the C++ standard, you would need a new C++ CPU and hardware. 77
And for every different type of language you would need a different processor: a Pascal or C or Erlang processsor.
Of course, the way to improve the flexibility of a fixed instruction set architecture is to use emulation. <PERSON> said that all computing machines are equivalently powerful (i.e. can run the same programs), as long as they can be made to emulate a Turing Machine. This is called Turing Completeness.
This means that one language (as long as it is Turing Complete) can emulate another language without loss of fidelity. The consequence being that all languages can be emulated by a generic CPU no matter what instruction set architecture it has, as long as it is Turing Complete.
So in practice the CPU instruction set is chosen so that it most closely fits the hardware model (bits and bytes) and then languages (C++ etc.) are emulated by it principally through a translation process (either compilation or interpretation). This gives you the most bang for your buck. You can upgrade and tweak and bug fix your translator to your heart's content and all the time keep the same hardware.
In practice this works both ways, hardware is made so that it is backwards compatible, so even new hardware can run older languages. It's win win.
But. My own personal opinion is: why not have a C language CPU? The whole world runs on C right? Compilers would then be very simple, but CPUs orders of magnitude more complex. Software is cheap, hardware is not. 634