modlin at concentric.net writes:
>In <6hrkup$qrm at ux.cs.niu.edu>, rickert at cs.niu.edu (Neil Rickert) writes:
>>modlin at concentric.net writes:
>>>In <6hqseq$q8n at ux.cs.niu.edu>, rickert at cs.niu.edu (Neil Rickert) writes:
>>>[modlin] What is your definition of computation?
>>>>A computation is a set of causal operation which take place in the
>>>>world, and which have a certain kind of mathematical description.
>>>[modlin] Under your rules, is a Turing machine capable of computation?
>>>>No. It is capable of formal computation, but not of computation,
>>>>where formal computation is a mathematical idealization of
>>>>computation.
>>>Interesting. Your conflation of "computation" with notions of
>>>physically realized causality is something I've not encountered
>>>before... none of the classic works on computability uses it that way,
>>>and indeed I can't think of a single author who would balk at saying
>>>that a Turing machine computes.
>>I don't think I am conflating anything. Many big corporations have
>>been purchasing expensive computers for decades, because of the causal
>>operations that they perform.
>(Before responding, let me offer an apology for saying I wouldn't talk
>to you about this any more. I was frustrated. But now after a few
>hours sleep I wish I hadn't said it. <g>)
I was not offended by the comment. Of course you have a right to
decide what you will discuss, although perhaps it is unwise to
publicly declare how you will use that right.
>Anyway. The "causal operations" which make computers worth money to
>a business are outside the computers themselves.
No, I disagree. They are in the computer.
> A corporation would
>not care if the internal mechanisms of the computer used entirely
>different sets of causal operations to accomplish its computations,
That is about right, provided that the computation was actually
accomplished, including suitable external causal effects.
> , or
>even if it worked by some mystical acausal magic...
I think you don't know much about corporations.
>Thats where I see your words as conflating ideas which would be more
>usefully separated: you seem to me to be trying to use the external
>mapping of computational results to motivate arguments about the
>internal mechanisms of computation. The two are related only
>indirectly, through practical engineering issues of performance.
There could be no external results unless there were internal causal
operations.
You seem to have entirely missed a point I made. Namely, there might
be a completely different way of describing the internal operations
of a computer, such that under this different internal description the
computer is executing a completely different algorithm. If it is
the abstract computation that matters, then I am suggesting that the
abstract computation being performed is not determined by what happens
in the machine, in the sense that there are completely different
ways of assigning algorithmic descriptions to what happens physically.
>>I would use 'computability' in the same way as the works you refer
>>to. You have to remember that mathematics ain't real life.
>>Mathematicians work with idealized models of real life. The Turing
>>machine is an idealized model of computation. The mathematical
>>theory of computation is a theory of this idealized model, just as
>>the mathematics of the real numbers is about an idealization of the
>>decimal measurements we make.
>>In a context of talking about the mathematical theory of computation,
>>I would also have no problem with saying that a Turing machine
>>computes. But in that case the context reminds us that we are
>>actually talking about a mathematical idealization of computation.
>But when I as a programmer try to design a procedure to accomplish some
>useful computation, I'm looking at as a mathematical idealization. I'm
>certainly not concerned with the causal details of NAND gates etched in
>silicon. I work in terms of an idealized machine, an abstract language
>virtual "computing device" such as that defined by the C language, and I
>seldom care how that abstraction might be physically realized.
I think you are looking at this wrongly. Instead of thinking of
yourself programming an abstract machine, you should be thinking of
what you are doing as using a specification language to specifify the
causal operations of the machine at a relatively high level (at a
level well above NAND gates). In fact, most computer programs contain
parts which are machine specific. There is a cottage industry involved
in porting software from one hardware platform to another. If we
were really dealing with mathematical idealizations, there should be
no need for such porting.
>The normal working environment for anyone concerned with computation is
>an "idealized model of real life", linked only at its periphery with
>anything actually real.
When I program, I have to concern my self with the bit size of
integers; with the precision of floating point numbers; with the best
way of representing decimal data in this particular machine; with
converting between the machine byte order of data and the network
byte order; with whether files are organized as a stream of bytes or
a sequence of records; with whether file locking protocols apply to a
region of bytes within a file, to physical stored record block, or to
the whole file; with whether output data is immediately transmitted
or is held in a buffer for delayed processing. None of these things
would matter if I were working with an idealized abstract
computation.
> The word computation is never used in the sense
>you are contrasting with the mathematical, in reference to some process
>intimately wedded to its particular realization.
I think you are deceiving yourself.