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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public From: pcg@aber.ac.uk (Piercarlo Grandi) Subject: Re: OO, C++, and something much better! Date: 1997/02/24 Message-ID: X-Deja-AN: 221174729 Sender: pcg@cassin.dcs.aber.ac.uk X-Disclaimer: Warning - Sender not verified References: <5de62l$f13$1@goanna.cs.rmit.edu.au> <32FB8B51.1759@concentric.net> <3302DB3E.F70@concentric.net> Organization: Prifysgol Cymru, Aberystwyth Newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object Date: 1997-02-24T00:00:00+00:00 List-Id: >>> "jsa" == Jon S Anthony writes: jsa> In article jsa> piercarl@sabi.demon.co.uk (Piercarlo Grandi) writes: >> >>> "jsa" == Jon S Anthony writes: >> [ ... on the role of operators and the interpration of "+", I would say >> ... ] piercarl> It was also perhaps not clear that by "maths" I meant piercarl> something like ``ordinary maths'', a not well defined but piercarl> hopefully intuitively perceivable notion; jsa> And? Presumably, by "ordinary maths" here you really mean jsa> arithmetic. piercarl> No, telepathy does not work over the net. I meant something piercarl> like ``the sort of maths ordinary people learn at ordinary piercarl> schools''. Which is rather fuzzy notion, for reasons piercarl> illustrated below. jsa> It's not fuzzy at all. It's simply completely irrelevant. .... jsa> That is a precisely and rigorously defined system. piercarl> Of course any given system of arithmetic is (hopefully) so; piercarl> but the notion of ``arithmetic'' *isn't*. jsa> Really? I don't believe you at all. The notion of arithmetic _is_ jsa> precisely defined. What's more, when it is taught, wherever it is jsa> taught, it will conform to the formal notion. Hahahahahahah! Perhaps a little familiarity with beginner level (primary school) level textbooks would help. What different people/educational systems call arithmetic varies widely; even the status of arithmetic is didfferent according to different mathematicians; to some it is the foundation of all mathematics, to some it is founded on set theory. Some people define ``numbers'' as primitive concepts; some people define them as the cardinality of some set; others as other things. There are _many_ different formal theories of arithmetic, and it makes no sense to speak of "the formal notion" as if the word "arithmetic" always mean the same thing, and there were a single theory of arithmetic. Similarly, the word "operator" is used to mean different things in different concepts; in the context of operator theory it indicates a certain type of function, in the context of notation is indicates a certain type of symbols. The question then is whether or how to relate the two distinct uses of the word "operator"... jsa> This isn't like CS/PL land where you can get all warm and fuzzy and jsa> start saying "Hey, I mean thus and such by arithemtic and my jsa> opinion is as good as anyone elses." You're opinion either a) jsa> matches up or b) you have some stunningly interesting reason why it jsa> shouldn't or c) (the most likely by far) your opinion is rubbish. If you are so sure, please provide evidence that the term "arithmetic" has been used by all mathematicians to means exactly the same formal system for the past say fifty years or so. piercarl> There is a large difference between a mathematical system like piercarl> a particular formalization of a particular arithmetic system piercarl> and the fuzzy notion of ``ordinary maths'', or even that of piercarl> ``arithmetic''; it is a fuzzy notion because while most piercarl> probably it includes *some* sort ofarithmetic, it may include piercarl> several other things. jsa> Really? Like what? Give one example of "ordinary" "maths" that jsa> isn't either a) EXACTLY what is meant in the formal sense or b) a jsa> slightly _confused_ notion which on reflection will turn out to be jsa> the same as a formal sense. Please provide a formal theory of the meaning of term "ordinary maths" first, as you insist that it is a formally defined notion that is unique as when you write "the formal sense". piercarl> Consider just this: suppose one wanted to say that ``ordinary piercarl> maths'' is the maths that most people learn at school; well, piercarl> different countries, and different types of school in the same piercarl> country, teach different extensions of ``ordinary piercarl> maths''. Then what type of school? High school? College? piercarl> University? And which subject? And so on. jsa> What's that have to do with it??? This is REALLY confused. In all jsa> of those cases, whatever is taught in the class will still conform jsa> to the particular part of the formal definitions. Which one? jsa> What's more, even the _notation_ used will be extremely close. Hahahaha! Have you have read more than one (or even just one) maths textbooks? The notation is often _radically_ different, especially in different countries, and often for rather profound reasons. I have seen maths texbooks from different countries, and there are different operators symbols to indicate even super-ordinary operations like division, even in books from the same country. There are often, as it is inevitable, many notational similarities, and even much overlap in what is discussed (usually the biggest difference is in *how* it is discussed). Mathematicians do invent notation all the time, and do mean different things by the same words. jsa> You're whole notion of "ordinary maths" here is completely silly. jsa> It is really simply: some people may learn different pieces of jsa> mathematics in different places and different times. jsa> So what? In the context at hand, who cares? What possible jsa> relevance could this have??? Well, it has an enormous :-) importance: that your idea that the notion of "ordinary maths" has one formal meaning ("THE formal sense", emphasis mine) is entirely bogus. In the present context it matters, because it is you argument that the word "operator", in the one and only formal system of mathematics you claim is used by everybody, is only used to label a type of function rather than a type of symbol. My argument is that there is wide diversity of mathematical lingos, notations, theories, even they are mostly related, and that the word "operator" commonly labels a type of symbols, while it indicates a type of functions only if in the context of discussions on operator theory. >From this recognition of wide diversity of approaches in ``maths'', and in ``computing'' for that matter, I also derive a warning about using similar notation to indicate rather different entities, such as mathematical and computational entities, which are never identical, and often only approximately related: piercarl> Thus my warning that using ``familiar'' looking syntax in programming piercarl> may be dangerous: for it gives a false sense of recognition of piercarl> notions like ``addition'' that are really quite ambiguous. Some piercarl> particular notion of ``addition'' can be well defined; but perhaps piercarl> ``surprisingly'': jsa> You're warning here may have some merit, but it _in no way jsa> whatsoever_ has anything to do with "ordinary arithmetic" being ill jsa> defined or something and it _certainly_ does not follow. Here you are misrepresenting my contention: it has never been that "ordinary arithmetic" (I have _never_ used this term as you seem to quote it, but this is minor quibble) is "ill defined", as you make it up; but that the very _notion_ of what is meant by "ordinary maths" is ambiguous, and as far as I can see operator theory is no at all part of it, for it is only studied as such in advanced level courses at university; still people speak of mathematical operators, and they mean some of the symbols used in mathematical notation, not the technical meaning of the term as used in operator theory etc. My warning has the merit of pointing out that certain operator symbols are ``ordinarily'' assosciated with certain functions, and that in ``ordinary'' programming languages they label procedures that compute rather different functions, and this _may_ fool the unwary, those that cannot appreciate that the string "a + b" may have radically different meanings in different domains of discourse. piercarl> Also, in order to be able to ignore the differences (and many piercarl> do, without realizing it), a non trivial amount of analysis piercarl> (for example range analysis) may have to be piercarl> performed. Particularly horrid subtleties happen with the piercarl> various ways that ``real'' numbers are approximated. jsa> So? This is true no matter what the representation system and no jsa> matter what the process for calculating, when you want actual jsa> numerical answers. You have the same sort of issue even if you are jsa> using paper and pencil. You're not being very convincing here. Stating what should be obvious is not very convincing? piercarl> (one favourite example is that "+" between 'unsigned' operands piercarl> in ``C'' computes the function ``addition module 2^N'' rather piercarl> than addition on nonnegative numbers). jsa> Why is congruential arithmetic not ordinary? piercarl> Get real! I doubt that for example the average MBA or the piercarl> average medical doctor would consider congruential arithmetic piercarl> ``ordinary'', even jsa> Ever use a clock? Tell time? You don't need an MBA to know that you usually must sell things for more than you bought them for, or a PhD in chemistry to understand that oil and water don't mix well... Your statement is based on a confusion between a rather narrow application of congruential arithmetic, which is taught in ad hoc way to kids, with the notion and theory of congruential arithmetic, which is hardly ever taught except to people attending university level degrees in ``maths''; such confusion is not that suprising: people who are not familiar with "maths" often make such confusions; probably your curious idea that "arithmetic" is a term that has exactly one meaning, which is defined formally in the same way by every author ("the formal sense") is also due to the same sort of confusion. jsa> Besides, given your definition of what counts as "ordinary" as what jsa> happens to be taught somewhere at some point to some people, jsa> congruential arthmetic could fit perfectly. Here you are misrepresenting again what I write: I wrote "ordinary people" and "ordinary schools", not "some point" and "some people". Some people get taught at some point congruential arithmetic, or for that matter things like interval arithmetic or Riemann manifolds or other curious things, that does not make them ``ordinary''. piercarl> that is not totally devoid of maths courses like history would piercarl> be) may not be that familiar with congruential arithmetic. jsa> So, now no one but PhDs in mathematics can tell time? I guess this confusion between applications of a theory with the theory is a good demonstration of what is ridiculous about your suggestion that (as I understand it) the only admissible use of the word "operator" in ``maths'' is the narrow one used in operator theory to indicate a particular type of function, and not of symbol. piercarl> Again, there is a difference between a rigorous definition and piercarl> theory of any particular mathematical subject, and the notion piercarl> of ``ordinariness'', jsa> Again, I think you are confused. Well, consider addition: ordinary people would be suprised to learn that adding 1 to 65536 gives may not give 65536 as a result. piercarl> Also, if one looks at two "congruential arithmetic" chapters piercarl> in two relevant texbooks, their scope will be rather piercarl> different. The notion of ``congruential arithmetics'' is piercarl> rather fuzzy itself, for there are _many_ possible "completely piercarl> precise and rigorous definition and theory." of it. jsa> First, where the scopes overlap, they will be in accord. This isn't jsa> opinion, my friend. But I am not quite sure I want be friends with people that display such a poor understanding of the understanding of the difference between the meaning of a term and the formalization of one particular meaning of that term, and that insistenlty misrepresent what I say, this time by innuendo: jsa> Second, all your supposedly different "theories" will in fact be jsa> equivalent. One derivable from the other. Do you really think you jsa> can just sit there and decide, "Hey, *I'm* going to come up with my jsa> own theory of congruence and it isn't going to be like the accepted jsa> one because *I* know better"? OK, sure if you're Gauss or jsa> something, but otherwise, you'd be better off sticking with jsa> fiddling with programming language design. I have never ever claimed, as you insinuate, that all those different theories, of different scopes, are in fact non-equivalent to some (usually large) degree; as I written clearly, and as you ignore, my only point is the obvious one that the meaning of the words "congruential arithmetic" is different depending on the author that uses it. piercarl> day-to-day in combinatorics, finite groups, arithmetic mod piercarl> 10^50, and so on, for example when figuring out their taxes or piercarl> planning next year's budget for their practice. :-). jsa> OK, show me how you would even be able to _tell_ one way or the jsa> other that someone was or wasn't using a congruence system with jsa> modulus 10^50 when doing his or her taxes. That's the point. For jsa> some reason you have _assumed_ something about what people are jsa> doing in your so called "ordinary" and you actually have no jsa> justification for doing this. You are again misrepresenting what I have written, for I have assumed nothing of the sort. I have stated that ordinary people don't even know that congruential artihmetic exists, not that they cannot use some aspects of it without realizing it. It's a bit like Moliere's character that discovered he had written all his life in prose... piercarl> Well, this is actually quite impossible as literally written piercarl> :-); the results of any particular "+" operation are in the jsa> Yes, I see the "smiley", but I'm not sure this distinction is true jsa> or of any use. piercarl> It is indeed very useful; for ``computational'' entities jsa> Well, now you'r just being a Platonist when it comes to "mathematical jsa> entities" and you are again showing a lot of presupposition with no jsa> justification. No, I have done nothing of the sort, as you assume and imply once again; I have just shown you a feat of an ability that people versed in mathematics posses, the ability to distinguish entities at different levels of abastraction. Such an ability does not imply, as you amazingly suggest, a belief in the ``reality'' of such distinct entities, as Platonism would have it, simply that they do not belong to the same level of discourse: piercarl> and``mathematical'' entities have really intrinsically piercarl> different properties. The notation may be the same, the syntax piercarl> even, but one forgetting that ``maths'' and ``computing'' are piercarl> very different things leads to overoptimism and eventually piercarl> (pretty quickly) mistakes. jsa> You realize of course that numerical analysis is a branch of applied jsa> mathematics don't you? If you say so... Some people think that it is a branch of applied computing (computing applied to ``maths''); for some incredibly silly reason the ACM for example publishes journals devoted to numerical analysis. Of course it may be fair to regard it as a combination of maths and computing, whatever that means. Some people even believe (quite correctly) that the whole of computing is a branch of applied maths (applied intensional logic). Different people look upon the terms "maths" and "computing" as having rather different meanings, and big battles have been though by foundationists on this subject. jsa> It would seem to imply that any set of "squiggles" on a blackboard jsa> or piece of paper are "implementation entities" and have not much jsa> to do with the mathematical entities they represent. I don't think jsa> so... piercarl> Well, let's say that "not much to do" is an unfair caricature piercarl> of what nI have written. They are related; the relationship may piercarl> even be straighforward; but they are rather different things piercarl> with rather different properties. jsa> Well, I think the big problem here is that you are uncritically jsa> presuming the truth of a Platonic view of mathematical entities. jsa> This is anything but obvious. And a number of great mathematicians jsa> would simply disagree with you. But I have said nothing of the sort -- you are again, making it entirely up for I have written nothing of the sort, implying something that I have not meant. Whether one believes in some sort of independent ``existence'' of mathematical entities, as ``Platonism'' would have, is a rather different question from mathemtical entities (say functions) and computational ones (say procedures) being distinct, and having very different properties _by construction_. The procedure described by: sqr(unsigned u) { return u * u; } and the function described by: x^2 mod 2^N : (x * x) mod 2^N are related, but they are very different sort of things _by construction_, not in force of any ``Platonic'' philosophical attitude as to their reality. jsa> What I meant was that you can't distinguish the two in any jsa> meaningful way even if they are "in some sense different". piercarl> I hope you don't really mean this, for this is quite gross! jsa> Of course I mean this - it's TRUE for crying out loud. There are jsa> cases where you can't distinguish in any meaningful way. First of all you have rather crassly changed your argument here: you have stated first that it is impossible to disntiguish the two things; then that there are some cases in which it impossible. But it does not matter: they can _always_ be distinguished meaningfully, and very much so. piercarl> If you mean it, well, an aversion at distinguishing different piercarl> sorts of entities, mathematical and computational entities, piercarl> for example, can be be quickly remedied by reading any sort of piercarl> nice introductory textbook, I would suggest "Structure and piercarl> Interpretation of computer programs". jsa> Well, I would suggest that you pick up a text or two on the jsa> foundations of mathematics before you start spouting this sort of jsa> silly stuff. Get a clue. Your abysmal ignorance of the simple distinction between a mathematical entity (say a function) and a computational one (say a procedure) is appalling. There are whole books devoted to such a relationship, which is often extremely complex, and in no case one of identity; computational entities denote/represent mathematical entities, and they are on _different levels of discourse_, and thus can/must be distinguished in some very meaningful way. But much of your arguments seems based on ignoring the distinction between levels of discourse/abstraction; previously you have based a number of inanities you have written on ignoring that the meaning of a word like "arithmetic" is not formally defined in a unique way, even if some particular theory of arithmetic is, thus demonstrating ignorance of the distinction between words and the concepts they label. Then here you demonstrate gross ignorance of the difference between a number, an abstract entity defined in the theory of mathematics, and its representation in a computer or on a screen or on a printout: jsa> Show me how you can distinguish between the answers you would get jsa> from a computer when computing in a congruence system with modulus jsa> 16 or 10 and what you'd expect from the same "operations" in the jsa> "mathematical version". But they are not the same operations; even beginners are taught that a computer cannot deal with any sort of mathematical entities like functions or numbers, only with their repesentations, for example procedures that compute functions. Such representations have very different properties from the mathematical entities they actually represent, and they often represent mathematical entities rather different from the ``ordinary'' ones they _look like_ representing. And even primary school kids, at least in the country I was educated in, is taught that the representation of a number (say a numeral, like the one represented by the "3" glyph that you see now on your screen) is not the same thing as a number; that mathematical entities and their representations in the computational domain can always be dinstuiguished easily, even if one denotes the other in some model of computation. You also seem to ignore that the ability to distinguish between levels of abstraction, between an entity and a representation of that entity, is not ``Platonism'': it is a basic concept of maths, and it is true _by construction_, not because of an assumption about the reality of mathematical ideas, as Platonism would have it.