EDSAC – First Bootloader and Assembler

The EDSAC was an early computer in the mathematics laboratory at Cambridge in the UK. I have just read an old article on the machine and how it was programmed, from a 1998 issue of the IEEE Annals of the History of Computing.

There are many fascinating aspects to the machine and its utter simplicity, but one that struck me as I read the paper was that so many of the fundamental ideas of programming and practical computing were invented then and there. Indeed, the EDSAC was designed as a machine to experiment with programming, rather than as a machine for maximal computing performance.

In particular, the way programs were entered into the machine was much more sophisticated (or desperate due to a lack of computing resources) than any other contemporary system. In hindsight, the “initial orders” of the EDSAC merged three major inventions:

  • The use of a “bootloader”, a program that starts the machine and then loads the “real” program into memory. Other machines of that era seems to have had special loader hardware, or just used Hollerith punched cards and put the results into memory.
  • The use of a symbolic code for instructions on the input tapes, not just a binary. Thus, the initial order also constituted an assembler. The binary instruction format of the EDSAC was never seen outside of the machine itself.
  • The relocation and rewriting of the program as it was being loaded, essentially making it the first program loader and linker.

All of this was achieved in 40 instructions and 1 constant in the last version. A very impressive feat of programming, maybe one of the most impressive in the history of computing.

1 thought on “EDSAC – First Bootloader and Assembler”

  1. What can I say : it seems whatever you use the computers for is up to you. Things will mainly become more feature rich and complicated. There is not end in sight for the technological advancement. Technology only produces even more technology. Can you think of a time when technology improvements stop? I can not.

Leave a Reply

Your email address will not be published. Required fields are marked *