From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: *** X-Spam-Status: No, score=3.2 required=5.0 tests=BAYES_00,RATWARE_MS_HASH, RATWARE_OUTLOOK_NONAME autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fc89c,97188312486d4578 X-Google-Attributes: gidfc89c,public X-Google-Thread: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,97188312486d4578 X-Google-Attributes: gid103376,public From: "Tim Behrendsen" Subject: Re: What's the best language to start with? [was: Re: Should I learn C or Pascal?] Date: 1996/09/11 Message-ID: <01bb9fe6$7299d800$87ee6fce@timpent.a-sis.com> X-Deja-AN: 179938521 references: <01bb8df1$2e19d420$87ee6fce@timpent.airshields.com> <515o3b$d7h@goanna.cs.rmit.edu.au> content-type: text/plain; charset=ISO-8859-1 organization: A-SIS mime-version: 1.0 newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada Date: 1996-09-11T00:00:00+00:00 List-Id: Richard A. O'Keefe wrote in article <515o3b$d7h@goanna.cs.rmit.edu.au>... > "Tim Behrendsen" writes: > > >However, this still requires time. You make a claim above that > >"...and since it is non-discrete, with no 'time axis'...". Perhaps > >you could explain why non-discrete means it does not require a time > >axis, and give an example of *any* algorithm that does not require > >a time axis, i.e., does not require time. > > You have misquoted me and distorted what I was saying. Yes, we are > talking about physical devices, so things happen in time. But what > I wrote was "with no "time axis" THAT IS USEFUL IN UNDERSTANDING HOW IT > WORKS", and that is a very different claim. The optical bench does not > vary through time. The original progenitor of this thread is my assertion that the most important thing a student can learn is the fundamental procedural nature of the the computer. Time is extremely useful in understanding how something works, although you don't normally invoke it's name. Even in your optical computer, you have light-encoded information flowing through mirrors, etc. *This is time*. If you are explaining to a student how it works, your finger will trace a path through the machine. My entire point before we went down this road is that I think many teachers take it for granted that cause-and-effect and procedure are so obvious they don't need to be learned, and that's not true. > >> If you _do_ regard optical computing as procedural, then you have > >> stretched the term to the point where you are no longer saying anything. > > >Procedural means "has a procedure." > > Yes, but fundamental to what everyone in computing except you means by > "procedure" is "a discrete sequence of steps". No, fundamental to *you*, perhaps, but I have never heard this definition before. Of course, your optical computer fits this definition, since it has a discrete sequence of steps (mirrors, etc.), and you claim that *it* doesn't. > >Nothing in the real world is not procedural, > > In short, you have have stretched the words 'procedure' and 'procedural' > until _everything_ is procedural, _everything_ "has a procedure". > This is a good way to win an argument, by ensuring that you are saying > nothing. If I re-define 'is blue' to mean 'is a physical object', > than I can be sure that no-one can prove me wrong when I say "every > phsyical object is blue", but then I haven't _said_ anything. No, the definition is very clear. The point is that non-procedural *expressions* are an abstract concept. I have no problem with saying that algorithms can be abstractly expressed non-procedurally, but they cannot be implemented non-procedurally. > > but we can *express* algorithms non-procedurally. > If you are right that _everything_ is procedural, then this cannot be true. > If I write down an equation like > Del R = 0 > [a bc]de > (the Bianchi identity, equation 4.10.1 in Penrose & Rindler), > then since "nothing in the real world is not procedural" (according to > you), and since the picture of that equation before your eyes is "in the > real world" (I say the _picture_ of the equation, not the equation), then > that picture must be procedural. (I do not know what it means for a > picture to be procedural, but we have your word that it is so.) So that > picture is procedural, and the attempt to express something "non-procedurally" > has failed. Now you're arguing worthless semantics. Obviously that's not what I'm saying. How about "No algorithm implementation is not procedural", which is what you know that I meant. A mathematical expression is non-procedural, because it is a statement of truth, and not an algorithmic sequence. An SQL expression is not procedural, because it is not an algorithmic sequence, it is a mathematical transformation. In other words, procedural mechanisms have a start, middle, and end. Non-procedural expressions do not. > In short, the discussion with you has been a waste of time, because > you were never making any claim with empirical content, only playing > language games. Well, I'm sorry you feel that way, but you are wrong. You prove my point that programmers take the procedural nature of the computer as so obvious as to be beneath discussion, but it's not. I cannot stress this enough: THIS MUST BE LEARNED BY STUDENTS. This is the primary, fundamental axiom of computers. How many questions do we get in this newsgroup where a student simply didn't follow the flow of the program to see what happens? This is so obvious to you and I that we don't think about it, but *they didn't*! Because they have only a vague feeling of flow, and are still looking at the program as a kind of weird combination of a solid object and something with a flow of time. Take recursion. How can you not understand recursion if you understand in your soul that computers execute a flow of instructions? You can't, and that's the point. Understanding the time axis is the key. -- Tim Behrendsen (tim@a-sis.com)