Three machines have been promoted at various times as the first electronic computers. These machines used electronic
Taking Computer for Granted
switches, in the form of vacuum tubes, instead of electromechanical relays. In principal the electronic switches would be more reliable, since they would have no moving parts, that would wear out, but the technology was still new at that time and the tubes were comparable to relays in reliability. Electronic components had one major benefit, however: they could «open» and «close» about 1000 time faster than mechanical switches.
The earliest attempt to build an electronic computer was realized in 1937, when a machine was created that could solve systems of partial differential equations. Later, by 1941, the scientists succeeded in building a machine that could solve 29 simultaneous equations with 29 unknowns. However, the machine was not programmable, and was more of an electronic calculator.
A second early electronic machine was Colossus, designed for the British military in 1943. This machine played an important role in breaking codes used by the German army in World War II.
Turing's main contribution to the field of computer science was the idea of the Turing machine, a mathematical formalism widely used in the study of computable functions.
The first general purpose programmable electronic computer was the Electronic Numerical Integrator and Computer (ENIAC) built at the University of Pennsylvania. Work began in 1943, founded by the Army Ordnance Department, which needed a way to compute ballistics during World War II.
The machine wasn't completed until 1945, but then it was used extensively for calculations during the design of the hydrogen bomb. By the time it was decommissioned in 1955 and used for solving different civil tasks including weather prediction a group of scientists began work on a new machine. The main contribution of their new project, was the notion of stored program. There is some controversy over who deserves the credit for this idea, but none over how important the idea was to the future of general purpose computers. Through the use of a memory that was large enough to hold both instructions and data, and using the program stored in memory to control the order of arithmetic operations, this machine was able to run orders of magnitude faster
UNIT3
than it was done before. By storing instructions in the same medium as data, designers could concentrate on improving the internal structure of the computer without worrying about matching it to the speed of an external control.
By recognizing that functions, in the form of a sequence of instructions for a computer, can be encoded as numbers, the scientists realized the instructions could be stored in the computer's memory along with numerical data.
Software technology during this period was very primitive. The first programs were written out in the machine code, i.e. programmers directly wrote down the numbers that corresponded to the instructions they wanted to store in memory. By the 1950s programmers were using a symbolic notation, known as assembly language, than hand-translating the symbolic notation into machine code. Later programs known as assemblers performed the translation task.
As primitive as they were, these first electronic machines were quite useful in applied science and engineering. One of the scientists estimated that it would take eight hours to solve a set of equations with eight unknowns using a previous calculator, and 381 hours to solve 29 equations for 29 unknowns. The up to time computer was able to complete the task in under an hour. The first problem run on it, a numerical simulation used in the design of the hydrogen bomb, required 20 seconds, as opposed to forty hours using mechanical calculators. Later the first commercially successful computer was developed. In 1952, 45 minutes after the polls closed and with 7% of the vote counted, it predicted Eisenhower would defeat Stevenson with 438 electoral votes (he ended up with 442).
Second generation (1954-1962)
The second generation saw several important developments at all levels of computer system design, from the technology used to build the basic circuits to the programming languages used to write scientific applications.
Taking Computer for Granted
Electronic switches in this era were based on discrete diode and transistor technology with a switching time of approximately 0.3 microseconds. The first machines were built with this technology at Bell- and Lincoln Laboratories. Memory technology was based on magnetic cores which could be accessed in random order as opposed to the previous devices.
During this second generation many high level programming languages were introduced, including FORTRAN (1956), ALGOL (1958), and COBOL (1959). Important commercial machines of this era include the IBM 704 and its successors, the 709 and 70094.
The second generation also saw the first supercomputers designed specifically for numeric processing in scientific application. The term «supercomputer» is generally reserved for a machine that is an order of magnitude more powerful than other machines of this era.