[QUOTE]\nO-level computer science class. The teacher held up a calculator, my\ncalculator as a matter of fact, which is why I remember the lesson.\n"Is this a computer?". "No," said someone, "it doesn't have a memory".\nIt had a "mem" button, so he pressed it and showed it had a memory.\n"No," he said, "it doesn't have a backing store. So sorry, McLean,\nbut not a computer". And he handed it back to me.\n\nA computer has state, an internal memory of N bits, giving it 2^N\nstates, and it's got a backing store, usually a literal "tape head"\nwhich is indeed moved up or down a position depending on the state\nof the memory. So it's a Turing machine.[/QUOTE]\n\nNo. First off, a Turing machine is a computer - a computer is not a\nTuring machine. Here are some pictures of Turing machines, since you\napparently don't like to look at Wikipedia for a formal definition:\n\n<[URL]https://www.google.com/search?q=turing+machine&source=lnms&tbm=isch[/URL]>\n\nSecondly, there is no precise or concrete definition of a "computer",\nexcept perhaps "something that computes". ("Computable functions" have\na precise definition.) Before electronic computers, a "computer" was a\nperson who did a lot of calculations. So your teacher got it wrong -\nyour calculator /is/ a computer, even though we generally use the term\nfor more general-purpose computers. Backing store certainly doesn't\ncome into it.\n[QUOTE]\nBut it's not a universal Turing machine, not yet. In order to do\nthat, we've got to be able to adjust the backing store to put\nit into any internal state we want, or at least a rich enough\nsubset of internal states to allow it to compute any function.[/QUOTE]\n\nYour calculator is not a Turing machine. It is not approximately Turing\nequivalent, because it has limitations (besides memory) that prevent it\nfrom executing different algorithms. (A calculator with a user is\nTuring equivalent, however.)\n\nThere is no such thing as a "universal Turing machine", though the term\nis sometimes used - a Turing machine is unlimited, so there is no need\nfor a "universal" one. Conversely, one could talk about a "finite\nTuring machine" with a limited memory.\n[QUOTE]\nSo it needs a programming language. A computer in a random\ninternal state might not be able to be used as a universal\nTuring machine, and in fact that frequently happens - a crashed\ncomputer is in a state from which the rich set of internal\nstates are not accessible, regardless of what input we give it.\nAll the computers are Turing machines, they all have 2^N possible internal\nstates and a backing store.[/QUOTE]\n\nHow many mistakes can be made in one sentence, I wonder?\n\nAs I said above, computers are not Turing machines, any more than birds\nare ducks.\n\nThere is absolutely no restriction to having 2^n possible states in a\ncomputer - while base 2 representations are the most practical for\nelectronic computers, they are not essential. There have been computers\nmade using base 3 and base 5 elements, or whose states are enumerated as\ndecimals.\n\nAnd as noted above, a backing store is not needed.\n[QUOTE]\nSo they can all compute exactly the same\nfunctions.[/QUOTE]\n\nAll Turing equivalent systems of computer and programming language can\ncompute the same functions (bare memory limitations).\n[QUOTE]\nSo in the literal, narrow, mathematical sense, all programming\nlanguages are equivalent.[/QUOTE]\n\nNo, all Turing complete or Turing equivalent programming languages (on\nsuitable targets) are equivalent in the single aspect of being able to\ncompute the same functions. They are not equivalent in "/the/\nmathematical sense", because there is no such single thing - and they\nwill often be very different in real mathematical aspects, such as time\nand space efficiency.\n[QUOTE]\nit's inherently impossible to write a program\nin one language which cannot be written in another.[/QUOTE]\n\nThat is an alternative statement of the Church-Turing conjecture.\n[QUOTE]\nBut what if we say the registers are the "internal state" of the computer,\nand the main memory the "backing store". Now we've got a near Turing\nmachine, and usually it's better to think that way. So, as well as\nhaving the fundamental, literal, mathematical equivalence, all non-\nperverse (not designed to expose the fact that the main memory is\nbounded), languages are going to have a another level of deep similarity.[/QUOTE]\n\nFirst, there are lots of programming languages that are not perverse,\nand are still not Turing complete. It is extremely common for\ndomain-specific languages.\n\nSecondly, in many cases the Turing equivalence of programming languages\nis /very/ deep. Yes, Prolog and APL /can/ compute the same functions -\nbut that is an irrelevant fact in practical usage, and the languages are\nused for wildly different kinds of problems.\n[QUOTE]\nAnd there's far more similarity, because again few people who design\ncomputers or computer languages are perverse.[/QUOTE]\n\nI take it you have never met a computer or computer language designer.\nMost of them are more than a little weird :-)\n[QUOTE]\nVirtually all languages\nare going to take advantage of the fact the main memory is not a\ntape, but allows random access, for example. Yes, you could write a\nperverse language that didn't, and call it something like "lisp" (to\nindicate that it's a sort of sub-language). But very few people\nuse or write languages like that.[/QUOTE]\n\nYou have such a narrow view of programming languages. Have you ever\nreally looked at any programming languages other than C and perhaps\nassembly?\n[QUOTE]\nPossibly. However I've used "theorem" in an acceptably accurate sense\nfor general discussion.[/QUOTE]\n\nNo you haven't - you have used it in an incorrect sense, and argued\nrepeatedly that you were being accurate despite being corrected.\n[QUOTE]\nI know that there's a lot of philosophical\nwork on the nature of mathematical proof and the relationship between\nmaths and formal logic which I don't understand. But I don't think\nanyone except maybe Ben understands it either, and I wasn't trying to\ngo there.\n[/QUOTE]\n\nThen accept it when people are telling you the correct terms to use.\nThere is nothing wrong with ignorance - even the oldies here don't know\neverything. But there is something very wrong with wilful and stubborn\nignorance, and a refusal to accept that you have been corrected,\nespecially when it is all so easy to check.