First programmable electronic computer

First programmable electronic computer
Who
ENIAC
Where
United States
When
10 December 1945

The first computer that could be reconfigured (or programmed) to tackle any computational task was ENIAC, a computer at the University of Pennsylvania that carried out its first calculations on 10 Dec 1945. The computer consisted of many modules, each designed to perform specific mathematical operations or control tasks, and was set up by technicians who rewired the connections between these modules to create a "path" for the data, complete with points where the process could branch or loop. Once set up, the computer would run through the sequence (or program) laid out by the operators automatically, with no human assistance.

In 1945, mathematician John von Neumann, who had worked with the ENIAC team, wrote a document called "The First Draft of a Report on the EDVAC". In this highly-influential essay, he laid out the design principles for ENIAC's proposed successor. This included something now known as von Neumann Architecture, a way of designing a computer so as to avoid the manual reconfiguration and time-consuming set-up of machines like ENIAC.

In a Von Neumann machine, the computer is fed a set of instructions (a program) which it carries out one at a time, routing data to different modules, and configuring those modules, automatically based on the specific instructions on each line.

In early 1948, the ENIAC team decided to rebuild their computer to operate along similar lines. The complex distributed control system of the original ENIAC, with its cable routing and module-level settings, was replaced by a set of function tables. These were banks of rotary switches that could be set to represent a value from 0 to 9. The computer's control system would perform its operations based on the instructions encoded in these stored values. What previously required manual reconfiguration was now handled automatically by the computer itself.

ENIAC ran its first program from this manually-entered read only memory (ROM) on 12 April 1948.

This isn't quite a true von Neumann machine as the program instructions weren't stored in the same rewriteable memory as the data it was working with, but it is nonetheless a program in the sense that we'd understand it today. This mode of operation – programs stored in ROM – is still used by many microprocessors today.

The first machine to run a program that was stored in rewritable memory was the Manchester Baby, which executed a simple 17-line test program from memory on 21 June 1948.