Depending on what you read, all modern computers are described as either "von Neumann Machines" or Turing Machines". Both terms describe modern computers. A Turing Machine consists of: memory, represented by an infinite tape divided into cells; the machine which reads and writes on the tape; a record which keeps track of the machine's state; and a table of rules or instructions for the machine. This is extended into a Universal Turing Machine, which is able to emulate any other Turing machine if given the right instructions; therefore the Universal Turing Machine is a general purpose computer1. A von Neumann Machine, also a general purpose computer, is described by its architecture; it consists of the arithmetic-logic unit, control unit, memory, Input/Output, and a means of communication (a bus)2. Many articles debate whether to credit von Neumann or Turing with the invention of the computer, and with the stored program concept, where a computer's program is stored in memory in the same form as data. Those questions don't seem to have definitive answers, but in any case both men were important to computing, and left a lot of interesting work.
1. David Barker-Plummer. "Turing Machines." The Stanford Encyclopedia of Philosophy. Ed. Edward N. Zalta. 11/5/2004. Stanford University. 6/3/2007 http://plato.stanford.edu/archives/spr2005/entries/turing-machine/
2. William Stallings. Computer Organization and Architecture. Upper Saddle River: Pearson Prentice Hall, 2006. 18-20.
J. A. N. Lee. "John Louis von Neumann." The History of Computing. Ed. J. A. N. Lee. 2/9/2002. Virginia Tech/Norfolk State University. 6/2/2007 http://ei.cs.vt.edu/~history/VonNeumann.html
John von Neumann was born in Hungary on December 28, 1903. Von Neumann was a child prodigy, performing mental division of eight-digit numbers at the age of six. He studied Chemical Engineering and mathematics in Europe. In 1933 von Neumann became a professor of mathematics at Princeton's Institute for Advanced Studies (IAS). Interestingly, Turing was a graduate study at Princeton from 1936 to 1938. Von Neumann offered Turing an assistantship, but Turing declined. Von Neumann took an interest in the Harvard Mark I calculator and ENIAC. Toward the end of World War II, he served on various committees and was involved with the Los Alamos National Laboratory. Von Neumann and the Institute for Advanced Studies built the IAS computer, which was applied toward the building of the hydrogen bomb. Von Neumann introduced the stored program concept in a draft report in 1945. This concept was meant to be used in the EDVAC computer, successor to ENIAC. In 1954, von Neumann objected to the new high-level language FORTRAN, saying, "Why would you want more than machine language?" He died in 1957.
J. J. O'Connor and E. F. Robertson. "Alan Mathison Turing." The History of Computing. Eds. J. J. O'Connor and E. F. Robertson. Oct 2003. School of Mathematics and Statistics, University of St. Andrews, Scotland. 6/2/2007 http://www-history.mcs.st-andrews.ac.uk/Biographies/Turing.html
Alan Turing was born in 1912 in London. His father was in the Indian Civil Service, and Turing was raised in England, apart from his parents who mostly stayed in India. Turing did poorly in school, preferring to follow his own interests rather than take direction. He performed better in King's College in Cambridge. It was here that he read von Neumann's 1932 quantum mechanics text, and also developed an interest in mathematical logic. In 1936, Turing published On Computable Numbers, with an application to the Entscheidungsproblem. It was in this paper that he developed his description of the Turing machine. Turing went to Princeton in 1936 for graduate work. He returned to Cambridge in 1938, and in 1939 began work for the Government Code and Cypher School. There, he helped develop the Bombe, a machine used to decode messages encrypted by Germany's Enigma machine. Later, Turing designed the Automatic Computing Engine for the National Physical Laboratory in London. He was offered a readership at the University of Manchester. Turing continued to publish. In 1951, he was elected a fellow of the Royal Society of London, an influential group of scientists. The following year, Turing was arrested for being a homosexual. He was sentenced to receive estrogen injections for a year. Turing died in 1954, apparently having eaten half of an apple tainted with cyanide. The death was ruled suicide, but Turing's mother claimed the death was accidental.
A. M. Turing. "On Computable Numbers, with an Application to the Entschiedungsproblem." The History of Computing Project. Ed. Cornelius Robat. 1936. The History of Computing Foundation. 6/4/2007 http://www.thocp.net/biographies/papers/turing_oncomputablenumbers_1936.pdf
Turing defines a computable number as a real number which can be calculated in a finite number of steps. He uses arguments about the computable numbers to show that there is no solution to the Entschiedungsproblem (German for "decision problem," posed by Hilbert, which seeks an algorithm which will determine whether a mathematical statement is true or false, without offering a proof. Such an algorithm could show the truth of unproven hypotheses). This paper presents Turing's machine, which exists in a finite number of states, uses a tape to write and read data, and follows a table of instructions. This machine is comparable to a computer (by which he means a human) working with an unlimited supply of paper, performing computations according to a list of rules. Turing presents example programs and describes them. He states that the calculation of any computable number can be programmed with his machine. Turing describes the universal computing machine (which we call the Universal Turing Machine), which can be programmed to duplicate the same function as any other Turing Machine. Turing uses the concept of his machine to prove that there is no solution to the Entschiedungsproblem.
Buena Vista University Java Team. "Ye Olde Turing Machine." Ed. Ken Schweller. 2/9/2002. Buena Vista University. 6/2/2007 http://web.bvu.edu/faculty/schweller/Turing/Turing.html
This Turing Machine Applet simulates a Turing machine. A Turing machine consists of three parts: the Input/Output tape, which is a paper tape divided into cells, onto which symbols may be read and written (the memory); the actual Turing machine, which reads and writes those symbols; and the Rule List, or program for the machine. Actions by the machine are determined by the machine's internal state, the symbols present on the tape, and the program. Depending on those, the machine will change its internal state, write or erase a symbol on the tape, or move the head left or right. The applet includes sample programs which write a message, or perform an addition or multiplication.
John von Neumann. The Computer and the Brain. New Haven: Yale University Press, 1958.
Von Neumann intended this text as a lecture series he was to give at Yale University in 1956. He had been honored with an invitation to give Yale's Silliman Lectures for that year, but he became ill with bone cancer and was unable to deliver them. In the book, von Neumann compares analogue machines and digital machines. He compares them in terms of basic operations, logical control, the organs or components used for basic operations, and memory. Von Neumann discusses the stored program concept, which offers greater flexibility than older methods. Computer instructions are stored in memory alongside data. Because the computer can't distinguish between instructions and data, each instruction must have a way of specifying its successor with an address, and may include branching. He extends the analogue/digital comparison to the nervous system. He describes the neuron, and goes on to compare it to various computer components in terms of size, speed, and energy consumption.
John von Neumann. "The General and Logical Theory of Automata." The World of Mathematics, Volume 4. Ed. James R. Newman. New York: Simon and Schuster, 1956. 2070-2098.
This covers some similar material as in von Neumann's book The Computer and the Brain. He points out that living organisms are much more complex than automata, but that elements of each can be viewed as black boxes, and the function of the parts and the whole of each can be compared. A key difference is that while automata have a very low tolerance (essentially zero) for mistakes, living organisms can self-correct. He compares digital and analogue procedures in biological systems and in automata. He also compares the sizes of the two types. Von Neumann states the need for a logical theory of automata, the lack of which may be limiting size, component reliability, and most importantly, the complexity of automata, because of the inability to control errors. He observes that biological organisms must inherently possess systems to correct errors, because they function throughout their normal lifetimes without outside intervention. However, a single error in an automaton requires immediate attention by an operator. Errors in automata must be as conspicuous as possible so that an operator can find the problem as quickly as possible. He goes on to compare the methods of representing continuous quantities in organisms and automata, and the possibilities of emulating biological systems with neural networks. Finally, von Neumann discusses the possibility of self-reproduction by automata. He makes reference to Turing, who proved that it is possible for an automaton to produce another automaton, even one more complex than itself (because a Universal Turing Machine can be programmed to perform any programmable function).
A. M. Turing. "Can a Machine Think?" The World of Mathematics, Volume 4. Ed. James R. Newman. New York: Simon and Schuster, 1956. 2099-2123.
Turing proposes an imitation game, played by three people. Two players, a man and a woman, go into separate rooms, and the third player, the interrogator, tries to determine which of the other players is the man and which is the woman. The interrogator asks questions, and the answers of the other players are conveyed by typewritten notes. Turing asks whether a machine could take the part of, for example, the man, and whether the interrogator would be able to distinguish between the machine and the human. He decides that the type of machine which should be used is a digital computer, and states that a computer could be made which would do well in the imitation game. Turing reviews the nature of digital computers. They consist of three parts: store, executive unit, and control. He discusses the basics of programming, as well as the idea that digital computers are considered discrete state machines (they jump from one state to another with essentially no intermediate state). Turing reviews objections to the idea that machines could “think,” including theological objections, mathematical objections, and arguments that a machine could never do something such as enjoy strawberries or be friendly. Turing predicts that by the end of the twentieth century, a machine could be developed that would do well in the imitation game. The machine could be programmed to simulate a child’s mind, and have the ability to learn, so it could advance to something like an adult mind. He discusses how a machine might learn, lacking legs and eyes and ears, and the use of punishments and rewards. Turing suggests using a random element in the machine, which would help it come up with novel solutions to a problem.
John von Neumann. "First Draft of a Report on the EDVAC." June 30, 1945. Virtualtravelog.net. 6/5/2007 http://www.virtualtravelog.net/entries/2003-08-TheFirstDraft.pdf
This is the paper in which von Neumann introduces the stored program concept and describes what we call the von Neumann architecture. He defines an automatic computing system and the essential parts to such a system. These include: an organ to perform operations such as addition and multiplication (the ALU); a control organ; memory; and input and output organs. He makes comparisons between neurons and the elements of the machine. He discusses the logic of the ALU, and states that binary is the best system for making calculations. He discusses ways of making logical operations faster. Von Neumann specifies the use of a clock, and describes the circuits to be used for arithmetic operations. He discusses details of the memory. Finally he describes the code which controls the machine, and specifies that it will be contained in memory, and describes the way that instructions will be distinguished from data.
A. M. Turing. "Proposed Electronic Calculator." The Turing Project. Eds. Jack Copeland and Gordon Aston. 1946. AlanTuring.net. 6/5/2007 http://www.alanturing.net/turing_archive/archive/p/p01/P01-001.html
This is the paper in which Turing presents the stored program concept. In this proposal, he outlines the construction of the Automatic Computing Engine. This computer will function in binary, and will include: erasable memory; fast temporary memory; input and output organs; logical control; a central arithmetic part (ALU); and a clock. He discusses problems with the construction and function of storage. Turing describes the circuits to be used. He specifies the need for logical control to be in the form of instructions stored in erasable memory. Turing discusses issues with input and output, and the need to convert from binary to decimal for the humans. Turing discusses the scope of the machine (the range of problems to which it could be applied). He discusses strategies to prevent and correct errors, and the logistics of building the machine. He discusses details of the logical control for the computer, including notation, and how the machine would be operated. He gives examples of instruction tables, and more issues about materials used in the machine's construction, particularly for memory.