Before the B5900

The B5900 implemented a computer architecture that was embodied in a specification John McClintock and I named “E-mode”. Not a great name, but better than the one that preceded it, which was no name. Yes, it was sort of like Prince in his symbol days, you could describe it, but it did not have a name. The symbols of E-mode were the B6000 and B7000 series large computer systems from Burroughs. John McClintock and I decided it was important to name the architecture of these computers, especially since the underlying hardware of our new computer would be different than anything which preceded it.

E-mode was the end product of a computer architecture that was first implemented in a machine called the B5000 shipped in 1960. One could describe the B5000 as a stack architecture computer, but it was more than that. The concept of the computer was to implement the Algol procedure-oriented language in hardware. In effect the goal was that each construct in Algol would map as closely as possible to one, or a few, machine instructions. The computer would have no “Assembler”, or machine language compiler, because the machine language was essentially Algol. This was very different than all other computers of the day. Those computers were primarily programmed in Assembler, or machine language. Compilers for languages like Algol, COBOL, and FORTRAN existed to make end user programming easier, but each construct of those languages would require many machine instructions. Those languages could not be used for operating system programming.

Why was it important that the B5000 was an Algol machine? Because Algol supported many of the programming concepts and constructs that form the basis of general purpose computing, up to and including today’s modern systems. Algol concepts included security (segregation of data and code), procedure-oriented programming, object-oriented programming, strong typing, reentrant code, multi-treaded operation, multitasking, virtual memory, and much more. You can read more about these concepts in “Organick, Elliott I., “Computer system Organization: The B5700/B6700 Series”, Academic Press Inc., New York, 1973”.