Real computers do not run C programs, or C++ or even Java. They run machine programs consisting of millions of simple machine instructions like the ones in the CSC-1 that were discussed in the last two chapters. The reason for this is that machine instructions are closer to the actual hardware in terms of what happens: which registers are copied into which memory slots, which control wires to the ALU and shifter are turned on, and so forth. Programmers suffered writing machine language programs for about three years (from 1949, the birth of the Binac, to 1952) before they came up with a better system. In 1952, Captain Grace Murray Hopper of the U.S. Navy published a paper describing a program she worked on called a compiler. It was what we today call an assembler and a linker. Later, in 1957, the first modern compiler was written to translate FORTRAN programs to machine language. |