The 1401 Fortran is a tour de force that deserves a historical note! Fortunately I have just found this page which includes most and perhaps all that I remember about the compiler. The compiler ran on a 4kB machine with no working store except for the code of the compiler itself. There were never more than 300 instructions in core (RAM) at any time! I recall that a source program larger than a page was likely to exhaust memory. The compiler’s code was read from magnetic tape for the (63?) successive passes over the data which was retained in core between passes. A typical pass would move the data from one end of core to the other, transforming the data accordingly.

There were compilers for the Univac which had 1000 words of main memory (which was mercury delay lines). There were two instructions per word. I do not know of any record of the organization of such compilers. There were few Univac applications that did not use magnetic tape as working storage. Most substantial application were likely to use tape sorts and merges for which there were good libraries. The 1401 Fortran did no tape sorts.

The art of organizing your algorithms around sequential memory access was already disappearing when I began to program in 1955. It had begun when data was in card decks.