The idea of relieving the burden on a main program by using sub-programs has been carried out in electronic computers for a long time. Almost every extensive calculation process contains parts which have to be repeated again and again. These recurring operations - often groups of ten, twenty or a hundred separate consecutive counts - are handed over to sub-programs or sub-routines.
A gigantic musical box with one big cylinder and many small ones could very well carry a main program and several subsidiary ones. But the manufacturers of electronic computers are not in the least interested in using musical boxes, for these amusing toys are far too slow. Even when they play a fast gavotte, the pins do not improve on the speed of a very athletic snail. To be able to do justice to the calculating speed of an electronic computer, the prickly program cylinders would have to rotate at a rate of about 300 miles per hour, and that we cannot reasonably expect them to do.
Experiments have been made with punched tapes, the same punched tapes, as those used for the data input. Old timers among computer builders look back with deep emotion to the days when the sub-routines consisted of a piece of punched tape, its ends stuck together to make a neat little ring, which ran interminably through the tape reader. But even punched tapes we too slow for the program control.
So we make use today of magnetic memories for programming and sub-routining. The best instruction points for programs are to be found among the core storages. They give instructions as speedily as the arithmetic unit carries out its operations. Collaboration functions ideally. But what happens in practice?
It would be best to return to the example of the payroll and try to understand just how a program is played through in detail.