Researcher Resurrects the First Computer
aleph60 writes "A German researcher is about to resurrect the first fully electronic general-purpose stored-program computer, the Manchester Mark 1 (1948). The functional replica will run the source code of an original program from 1952 by Christopher Strachey, whose sole purpose was generating love letters; it is historically interesting as one of the first examples of a text-generating program. The installation will be shown at an art exhibition in Germany at the end of April." Here is researcher David Link's Manchester Mark I emulator home, which generates a new love poem on each page load. When the Mark I had been used to search for new Mersenne primes in 1949, a press account coined the phrase "electronic brain" to characterize it.
HONEY LOVE
YOU ARE MY DEAR PASSION: MY ADORABLE FERVOUR: MY ARDENT INFATUATION: MY ARDENT DEVOTION. MY PASSIONATE LUST BREATHLESSLY HOPES FOR YOUR LIKING.
YOURS BURNINGLY
M. U. C.
Now that's some vintage computer porn!
But seriously, I'm interested in how the Manchester Mark 1 implemented its random number instruction (to select the phrases for the love poems). Was it von Neumann's middle square method from 1946? Does anyone know?
I remember lengthy discussion in my undergrad days of how a completely logical computer could come up with a truly random number and talking about the theory that every software solution is pseudorandom. I'm just wondering what the first computer had implemented.
My work here is dung.
Strachey was also the lead programmer behind the programming language CPL, the great-grandfather of C (via BCPL and B). CPL was too ambitious and was never completely implemented - it tried to do everything; a bit like Perl 6 really.
The overview paper:http://comjnl.oxfordjournals.org/cgi/content/abstract/6/2/134 is quite interesting; sadly it is now behind a pay-wall. There are some features of the language, such as type inference, which have not become common until recently. It also has some obvious poor decisions with hindsight - the same character starts and ends blocks; all lower case letters are single-character variable names; multiple-character variable names must be capitalised (this is done to allow implicit multiplication, ie, xyz=x*y*z). I suspect it could be implemented without huge difficulty with modern tools. Unfortunately, the full definition was never published, and only exists in a few copies of 'The CPL Working papers' archived in university libraries. Perhaps one day google will scan it.
Scientists from the RAND Corporation have created this model to illustrate how a "home computer" could look like in the year 2004. However the needed technology will not be economically feasible for the average home. Also the scientists readily admit that the computer will require not yet invented technology to actually work, but 50 years from now scientific progress is expected to solve these problems. With teletype interface and the Fortran language, the computer will be easy to use.