Tuesday, June 26, 2012

Alan Turing Centenary

If you are not a computer science student chances are you don't know who Alan Turing was. This year we celebrate Turing Centenary, that is the 100th anniversary of his birthday. Since computers are such ubiquitous devices today, I believe that every computer user should know who Alan Turing was.
He is often considered to be the father of Computer Science. However, it would be more accurate to say that Turing is the grand-father of Computer Science while John von Neumann is its father. So I shall write a few words about John von Neumann as well.
Alan Mathison Turing invented the so-called Turing machine in the 1930s, which is the abstract model of a modern computer, before any real computer was built in the 20th century. The Turing machine was exclusively built on paper (as a mathematical construct) and it was the preliminary theoretical step that permitted the building of the first general-purpose electronic computer, ENIAC, in 1946.
One of his most profound achievement is "the principle of a universal machine that makes logic rather than arithmetic the computer's driving force", writes the University of Oxford's Andrew Hodges. Turing also defined the concept of computability, which is still very important for the theory of Computer Science.
"And what is a Turing machine?" you might ask. It is an abstract machine and it has a precise mathematical definition, which I am not going to write here. Imagine you have a black box with two tapes attached. One is a so-called input tape and the other tape is used for computation (a computer must be able to compute, right?). We establish a bunch of allowed input characters (for examples all the letters of the English alphabet, or just the digits 0 and 1.) Then we write a sequence of arbitrary input characters on the input tape. The Turing machine is capable of reading each input character, one by one. It is allowed to read them (the input) as many times as it needs to, back and forth.
Now the other tape is extremely long, actually you should imagine it to be infinite. (The input tape is finite.) The machine also has a state. It is a black box (you don't know much about its contents) but at every moment this box is in a certain state. Like a door that may be open or closed, or like a semaphore that may be red, yellow or green. The number of possible states of the Turing machine is finite.
Imagine also that somewhere inside the black box there is a set of rules used by the machine to compute. (As you see, the machine computes using symbols, not necessarily numbers. But this is similar to algebra where you compute using letters and numbers.) Each rule says something like this: if the state of the machine is s and if the input character the machine just read is a, then write a certain character on the infinite tape and move the writing head one cell to the left.
I should add that each tape is divided into "cells" and each cell may contain only one character, or no character at all. In the beginning, the cells of the infinite tape contain no characters and the writing head points to the first cell on the infinite tape. Also, the writing head may delete the character in the cell to which it currently points. So that's it. The machine reads one character from the input, chooses the applicable rule, and then it may write one character on the infinite tape and move its writing head one cell to the left or one cell to the right. It then repeats this kind of "step" many times. It may stop eventually, or it may work for ever. The result of the computation is the sequence of characters found on the infinite tape when the machine stops.
Sounds complicated? It is, I agree. But a real computer is even more complicated! Now the most amazing thing about Turing machines is that they can compute whatever a real computer computes (only it could take much, much more time to do the job.)
Also Turing, who was born on 23 June 1912, led British war-time efforts to crack German encryption codes. Although he was by then a distinguished scientist, he was convicted of homosexuality-related offences in the 1950s, and he committed suicide two years later. In 2009, the United Kingdom then-prime minister Gordon Brown issued an official apology, but the pardon was rejected earlier this year on the grounds that the convictions were for something that at the time was regarded as a criminal offence.
Since I mentioned John von Neumann, let me write a few words about his contribution to computer science. John von Neumann was a great mathematician with important contributions to computer science. He is known (among other scientific contributions) for the "von Neumann architecture" which is basically the same architecture of the current modern computers. In 1948-1949 he consulted for the programming part of the ENIAC and EDVAC computers, the first computers with a stored program. That is, computers where the data and the program were both stored in the computer's memory. He actually devised the instruction set for the modified ENIAC computer.
Although John von Neumann was older than Alan Turing, it is von Neumann who is citing Turing in his work "The Computer and the Brain" published posthumously:
"The English logician A. M. Turing showed in 1937 (and various Computing machine experts have put this into practice since then in various particular ways) that it is possible to develop code instruction systems for a computing machine which cause it to behave as if it were another, specified, computing machine."
John von Neumann was born in 1903 and died of bone cancer in 1957. Both von Neumann and Turing are among the computer science pioneers. We owe them all the wonderful conveniences of computers, whether they are desktop, laptop, PCs or Macs.
Monica Marcus writes for college students on her blog at the College Needs Corner. If you found this article interesting then you might want to read about other big names in computer science and Information Technology.

View the original article here

Related Post



No comments:

Post a Comment