what folks don't seem to grasp is that hardware
is (conceptually) software, except it much harder to change...
And it works the other way, too, c.f. Lisp Machine.
And then there were mainframes B6700 had loadable microcode that 'swapped in' different instructions depending on the higher-level language being run: http://www.retrocomputingtasmania.com/home/projects/burrough...