Maybe you should teach, I've clearly got this all wrong. All the same, if you don't like the Turing Machine definition we can go with the register machine (or lambda calculus, recursive domain equations, whatever you like), but you will find that I'm right...
A von Neumann architecture is not neccessary for a branch instruction (even though a random-access, rather than serial-access, program makes it easier to implement).
I'm not saying a program should modify its own instructions, just that it should be possible to execute computed instructions - that's what's necessary for a compiler to be useful.
Excuse me? The fact that one can, for a certain audience, show only weak equivalence, does not mean that what you're showing equivalence to is somehow 'weakly' (read: inexactly) defined. Please don't try to get personal and tell me what I know and don't know about computation theory. I know a formal definition when I see it... and don't!
It wouldn't have instructions to write to such a device, let alone to interject into its program to start running the result. My point is that you're talking about a Z4 (or if that's already defined, a Zn)...
Since Moses didn't bring down anything on stone defining 'programmable computer' I'm willing to hear discussion (even if it's TM-equivalence that I ultimately accept).
a computer must meet the requirements of a Turing machine [...]
A good definition of a programmable computer is having equivalent computing power to a Turing machine (usually shown via embedding). That's not quite what your 'definition' says.
I'd bet a dollar that you could implement the above in a PROM with a latch or two and some switches and lights
Nope, you're missing some of the very parts he listed - conditional choice!
Yeah, look, he should have stuck with the proper term 'programmable computer'. Of course computers were called computers because they did the job of Computers (people).
And as logn as you can punch holes in a strip of film, you can have your compiler and have it write a program.
Agreed... and if that was included in the Z4 (or Z200, or whatever), then we can compare notes on that. But still this was not part of the Z3 and is an important distinction (even if neither you or I accept that as definitional for a programmable computer).
Yet it does - it computes an output force from an input torque (I'm not just being facetious, this is the kind of thing analogue computers do... but not programmable digital computers).
I wouldn't have much use for a compiler that didn't produce executable code, would you?
(Btw, please see elsewhere that I personally think TM-equivalence is the more appropriate definition; I'm just saying that the adoption of a von Neumann architecture was also important and the poster had a point...)
Are you able to explain what effect the existence of ROMs (really no different, in the abstract, from punched cards... in fact that's not true, punched cards could be written by calculating/computing machines) has on my point?
The Universal Turing Machine stores a given arbitrary program, and its data, on the tape. This (ability to store and run an arbitrary computational process) is really the judge of a programmable computer.
Furthermore, the ability to store and write a program, as I said above, has been fundamental to how computers have developed (i.e. the development of compilers).
A more interesting distinction is the presence (or absence) of a conditional branch instruction. The real 'proof of the pudding', though, is having equivalent computational power to the Turing machine...
But when executable code is stored in memory it can be written too, enabling useful things like compilers...
I'm not sure I agree with the poster that this is a defining characteristic of a 'computer', but the von Neumann architecture was a fundamental step in modern computation.
Maybe you should teach, I've clearly got this all wrong. All the same, if you don't like the Turing Machine definition we can go with the register machine (or lambda calculus, recursive domain equations, whatever you like), but you will find that I'm right...
I didn't, you did!... See my other comment (once I actually read what you linked); you're mixing up the Turing Test and the Church/Turing Thesis...
That definition disallows most, if not all, analogue computers and so I do not accept it.
Btw, that's the Turing Test (of an artificial intelligence), not a definition of the Turing Machine (and hence computational completeness)!
The Z3 was Turing complete, as it goes.
A von Neumann architecture is not neccessary for a branch instruction (even though a random-access, rather than serial-access, program makes it easier to implement).
I'm not saying a program should modify its own instructions, just that it should be possible to execute computed instructions - that's what's necessary for a compiler to be useful.
Excuse me? The fact that one can, for a certain audience, show only weak equivalence, does not mean that what you're showing equivalence to is somehow 'weakly' (read: inexactly) defined. Please don't try to get personal and tell me what I know and don't know about computation theory. I know a formal definition when I see it... and don't!
It wouldn't have instructions to write to such a device, let alone to interject into its program to start running the result. My point is that you're talking about a Z4 (or if that's already defined, a Zn)...
Whose requirements?
Since Moses didn't bring down anything on stone defining 'programmable computer' I'm willing to hear discussion (even if it's TM-equivalence that I ultimately accept).
True. And, what's more, insofar as one accepts Babage's machines as programmable, the first computer programmer was a woman...
A good definition of a programmable computer is having equivalent computing power to a Turing machine (usually shown via embedding). That's not quite what your 'definition' says.
Nope, you're missing some of the very parts he listed - conditional choice!
Yeah, look, he should have stuck with the proper term 'programmable computer'. Of course computers were called computers because they did the job of Computers (people).
Agreed... and if that was included in the Z4 (or Z200, or whatever), then we can compare notes on that. But still this was not part of the Z3 and is an important distinction (even if neither you or I accept that as definitional for a programmable computer).
Yet it does - it computes an output force from an input torque (I'm not just being facetious, this is the kind of thing analogue computers do... but not programmable digital computers).
I wouldn't have much use for a compiler that didn't produce executable code, would you?
(Btw, please see elsewhere that I personally think TM-equivalence is the more appropriate definition; I'm just saying that the adoption of a von Neumann architecture was also important and the poster had a point...)
That your definition is so vague as to be meaningless. The good thing about Turing-equivalence is that it's a precise definition.
I'll sit in with my students then, shall I?
Are you able to explain what effect the existence of ROMs (really no different, in the abstract, from punched cards... in fact that's not true, punched cards could be written by calculating/computing machines) has on my point?
It might compute, but my calculator is not computationally complete - it cannot execute an arbitrary computable process (program)...
The Universal Turing Machine stores a given arbitrary program, and its data, on the tape. This (ability to store and run an arbitrary computational process) is really the judge of a programmable computer.
Furthermore, the ability to store and write a program, as I said above, has been fundamental to how computers have developed (i.e. the development of compilers).
I'm really not sure what you're trying to say here. I have heard of ROM, RAM, plastic bags and flowers... quite how do they affect the point?
A more interesting distinction is the presence (or absence) of a conditional branch instruction. The real 'proof of the pudding', though, is having equivalent computational power to the Turing machine...
But when executable code is stored in memory it can be written too, enabling useful things like compilers...
I'm not sure I agree with the poster that this is a defining characteristic of a 'computer', but the von Neumann architecture was a fundamental step in modern computation.
i'M wiTh yOu man... whaT i need PH.d 4?
Why should research training and experience - or even basic education - be necessary to develop on an inspired idea?
Shame the author didn't publish a torrent with the article so we could trust him not to have messed with it...