Hacker News new | ask | show | jobs
by fermienrico 2755 days ago
When I think of a computer, the first thing that pops up in my mind is whether the Antikythera computer is Turing complete? The article makes no mention of this.

To give it a title as the first computing device, I think there should be some analysis of operations that it can perform and whether they can constitute as a universal turing machine.

Otherwise, we can call stones as computers. They can do addition and subtraction by the virtue of counting. I am not familiar with Turing's thesis on a theoretical basis (having only read the popular "Turing's Vision" by Chris Bernhardt), is it possible to determine turing completeness of this mechanism?

6 comments

> whether the Antikythera computer is Turing complete?

Of course it isn't. Just like many analogue computers put together for the computation of ballistic trajectories or some other physical modeling task are not Turing complete. That doesn't mean they are not computers, just not general purpose computers.

By that definition the abacus is the first computer. I don’t disagree with you that Turing completeness isn’t a good definition of a computer (especially since the word itself is quite old and has been in use longer than even Babbage’s computer).
> By that definition the abacus is the first computer.

It isn't. The abacus does not compute anything at all unless used as a tool by a human that executes the algorithm. The Antikythera has its algorithm built in, it will compute the same numbers no matter who turns the crank. It's a stored program computer where the program is stored in the proportions of the gears in its gearbox.

Think of an abacus as an aid to manual computation, and a Antikythera as something that actually computes.

As others have pointed out, it is certainly not turing complete. The spectacular technical achievement of the antikythera mechanism, apart from its overall complexity, is the presence of differential gearing. Specifically, a differential turntable allows it to add or subtract angular velocities: you subtract the effect of the suns movement from the lunar movement to compute the lunar cycle.

PS Gears and cog wheels were only invented a century or two before the antikythera mechanism; scientific progress during the Hellenistic era was very rapid! Then the decline after the roman conquest was quite rapid as well - by the imperial period (eg Heron's writings) techniques like differential gears had already been lost, and they wouldn't be reinvented till (i think?) the 18th century!

Not even our modern computers are Turing complete as they do not have unbounded tape.
Yes they do, they have jump statements which is (practically) the same thing. Turing meant could the thing run forever.
No, Turing complete means that whatever we are talking about can solve all the problems that a Turing machine can solve. A language that has only jump statements and absolutely nothing else is not Turing complete even though its programs can run forever.

We only equate running forever with Turing completeness in contexts where something would be Turing complete iff it did not miss an instruction or something that would allow it to run forever (consider a language that has addition, subtraction, if statements, etc but no jump or function) or if it has something that does not allow it to run forever (such as a type system, consider simply typed lambda calculus).

Our modern computers do not have unbounded tape nor are they infinite state machines - with their limited memory and finite amount of states they can't solve all the problems that a Turing machine can. They are basically glorified finite state machines with a lot of states.

No, infinity is an actual requirement... there's no way to run out of stack space on an infinite machine, so there's no limit to the depth of recursion.
It depends on how "computer" is defined. Being there is a wide range of mechanical devices that can count and/or "execute" formulas based on variables/parameters, the boundary is pretty fuzzy.

But "Turing Complete" is relatively clear cut. To make a long story short, it means it has the equivalent of IF statements and loops. The first such device proposed is probably one of Charles Babbage's devices, which he was never able to complete. The first known to be actually completed is the German electromechanical "Z3" by Konrad Zuse in the early 1940's. In theory you could run Windows programs on both devices; IF you have tons of patience, storage tape, and time. (And want to build an x86 emulator for them.)

Thanks for the insight. I think it is the concept that is so very appealing that if a machine is turing complete, it can solve any problem that any other turing machine can solve (just takes longer or needs more memory).

It elevates the machine to a common capability level that can solve any computable problem. Therefore, it is important to understand turing completeness.

I tend to think of the Antikythera mechanism as a calculator as opposed to a computer. I save the term computer for things that are Turning complete (ignoring physical limits). Thus, computers have features like branching and looping. Calculators generally lack these features or have them in very restricted forms. By this definition, which I grant is somewhat arbitrary, the Antikythera mechanism is a calculator.
It’s not that kind of computer. It calculates astronomical events.