On 2011 Jan 25, at 3:33 PM, Evan Koblentz wrote:
wasn't a universal machine
Please elaborate.
In the Universal Turing Machine sense, from computing theory. A UTM
can compute a certain class of functions. Any machine with a certain
set of capabilities can be shown to be a UTM equivalent .... I think
it would be difficult to construe the ENIAC into a UTM equivalent.
Oh. That's what I thought you meant, but I figured maybe you actually
meant something else, because ENIAC * was * Turing-complete.
I wouldn't normally use Wikipedia as a credible source, but since you
already did .... says here in the first paragraph:
http://en.wikipedia.org/wiki/ENIAC.
The chart (scroll down the Wiki page) shows how, except for the
limited Mark 1, * all * general-purpose programmable computers are
Turing-complete. (not counting theoretical impossibilities like
infinite memory.)
Yes, one does has to be careful about Wikipedia. To be clear, I wasn't
using wikipedia as a proof or evidence source.
I had never seen ENIAC characterised as Turing-complete, I thought
there was some limitation to it's programmibility and addressability
that would inhibit it, there are certain requirements for a machine to
be Turing-complete. Although as I alluded with the Minsky ref, I'm not
entirely surprised that it _might_ be possible. I will nonetheless wait
for the proof or explanation to give it credence, as well as see how
tortured the characterisation is (what it takes to accomplish it).
I do have to wonder if whoever made the characterisation is confusing
Turing-complete with a notion of programmibility or 'general-purpose'
(another ambiguous phrase).
The ENIAC page links to the "Turing completeness" page. There, Conway's
"The Game of Life" is stated to be Turing-complete. The point being, it
is interesting to look at these things from a strict or theoretical
point of view, and there is a wide range of things that can be
characterised as Turing-complete. So not to take away from the
Turing-complete matter (I introduced it), but let me put it another
way: there is a very large distinction between the architecture and
practical capabilities of the ENIAC (or an ENIAC-like machine) and the
stored-program machines that came after.
Or let me express it a little more practically: I can reasonably
imagine writing an Algol compiler or a word processor to run on the
EDVAC, even without knowing the instruction set of the EDVAC. Even the
lack of character handling could be worked around without much
difficulty. Doing so on the ENIAC is another matter, and I'm allowing
for having a large number of accumulators (data memory), as one would
in a Turing-completeness assessment. If it's Turing-complete, yes, one
can do it, but how tortured is it?
--
There are some curious things going on in the wikipedia "Turing
completeness" article. Looking at the revision history, the article
starts out with no ref to ENIAC, then this is added:
"The first machine known to be Turing-complete was ENIAC"
Later, to account for the paper on the earlier Z3 it becomes:
"Previously, the first machine known to be Turing-complete was ENIAC"
Somebody changes (reverts) that to:
"Globally however, the first machine known to be Turing-complete
continues to be ENIAC (1946)"
Whatever that means.
In Feb 2010 (and currently) it becomes:
"but the first machine explicitly designed to be Turing complete and
widely
appreciated as being universal was the 1946 ENIAC. This machine was
able to
solve a wide range of effective problems in the 1940s, many related
to
atomic bomb design."
That first bit is a rather strong statement of intent. Strikes me as a
little bit of revisionist history. I'd be rather surprised if Mauchly
and Eckert knew what Turing-complete meant when they designed the
ENIAC. The second sentence is a nice promotional statement about the
ENIAC, its presence in the Turing-completeness article is questionable.