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: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public From: jsa@alexandria (Jon S Anthony) Subject: Re: OO, C++, and something much better! Date: 1997/02/21 Message-ID: X-Deja-AN: 220585795 Distribution: world References: <5de62l$f13$1@goanna.cs.rmit.edu.au> Organization: PSI Public Usenet Link Newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object Date: 1997-02-21T00:00:00+00:00 List-Id: In article 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. > > No, telepathy does not work over the net. I meant something like ``the > sort of maths ordinary people learn at ordinary schools''. Which is > rather fuzzy notion, for reasons illustrated below. It's not fuzzy at all. It's simply completely irrelevant. > jsa> That is a precisely and rigorously defined system. > > Of course any given system of arithmetic is (hopefully) so; but the > notion of ``arithmetic'' *isn't*. Really? I don't believe you at all. The notion of arithmetic _is_ precisely defined. What's more, when it is taught, wherever it is taught, it will conform to the formal notion. This isn't like CS/PL land where you can get all warm and fuzzy and start saying "Hey, I mean thus and such by arithemtic and my opinion is as good as anyone elses." You're opinion either a) matches up or b) you have some stunningly interesting reason why it shouldn't or c) (the most likely by far) your opinion is rubbish. > There is a large difference between a mathematical system like a > particular formalization of a particular arithmetic system and the fuzzy > notion of ``ordinary maths'', or even that of ``arithmetic''; it is a > fuzzy notion because while most probably it includes *some* sort > ofarithmetic, it may include several other things. Really? Like what? Give one example of "ordinary" "maths" that isn't either a) EXACTLY what is meant in the formal sense or b) a slightly _confused_ notion which on reflection will turn out to be the same as a formal sense. > Consider just this: suppose one wanted to say that ``ordinary maths'' is > the maths that most people learn at school; well, different countries, > and different types of school in the same country, teach different > extensions of ``ordinary maths''. Then what type of school? High school? > College? University? And which subject? And so on. What's that have to do with it??? This is REALLY confused. In all of those cases, whatever is taught in the class will still conform to the particular part of the formal definitions. What's more, even the _notation_ used will be extremely close. You're whole notion of "ordinary maths" here is completely silly. It is really simply: some people may learn different pieces of mathematics in different places and different times. So what? In the context at hand, who cares? What possible relevance could this have??? > Thus my warning that using ``familiar'' looking syntax in programming > may be dangerous: for it gives a false sense of recognition of notions > like ``addition'' that are really quite ambiguous. Some particular > notion of ``addition'' can be well defined; but perhaps ``surprisingly'': You're warning here may have some merit, but it _in no way whatsoever_ has anything to do with "ordinary arithmetic" being ill defined or something and it _certainly_ does not follow. > jsa> Presumably you simply mean here that "computer arithmetic" or the > jsa> specification of arithmetic operations in a programming language > jsa> definition is not the same as standard arithmetic (even though in > jsa> many practical cases you can ignore the differences). Well, sure. > > Well, sure, but the important thing is that in many practical cases one > *cannot* ignore the differences, not that in others one *can*, for it > when one cannot that problems arise. Shrug. > Also, in order to be able to ignore the differences (and many do, > without realizing it), a non trivial amount of analysis (for example > range analysis) may have to be performed. Particularly horrid subtleties > happen with the various ways that ``real'' numbers are approximated. So? This is true no matter what the representation system and no matter what the process for calculating, when you want actual numerical answers. You have the same sort of issue even if you are using paper and pencil. You're not being very convincing here. > 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? > > Get real! I doubt that for example the average MBA or the average > medical doctor would consider congruential arithmetic ``ordinary'', even Ever use a clock? Tell time? Besides, given your definition of what counts as "ordinary" as what happens to be taught somewhere at some point to some people, congruential arthmetic could fit perfectly. > that is not totally devoid of maths courses like history would be) may > not be that familiar with congruential arithmetic. So, now no one but PhDs in mathematics can tell time? > Again, there is a difference between a rigorous definition and theory of > any particular mathematical subject, and the notion of ``ordinariness'', Again, I think you are confused. > Also, if one looks at two "congruential arithmetic" chapters in two > relevant texbooks, their scope will be rather different. The notion of > ``congruential arithmetics'' is rather fuzzy itself, for there are > _many_ possible "completely precise and rigorous definition and theory." > of it. First, where the scopes overlap, they will be in accord. This isn't opinion, my friend. Second, all your supposedly different "theories" will in fact be equivalent. One derivable from the other. Do you really think you can just sit there and decide, "Hey, *I'm* going to come up with my own theory of congruence and it isn't going to be like the accepted one because *I* know better"? OK, sure if you're Gauss or something, but otherwise, you'd be better off sticking with fiddling with programming language design. > day-to-day in combinatorics, finite groups, arithmetic mod 10^50, and so > on, for example when figuring out their taxes or planning next year's > budget for their practice. :-). OK, show me how you would even be able to _tell_ one way or the other that someone was or wasn't using a congruence system with modulus 10^50 when doing his or her taxes. That's the point. For some reason you have _assumed_ something about what people are doing in your so called "ordinary" and you actually have no justification for doing this. > 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. > > It is indeed very useful; for ``computational'' entities Well, now you'r just being a Platonist when it comes to "mathematical entities" and you are again showing a lot of presupposition with no justification. > and``mathematical'' entities have really intrinsically different > properties. The notation may be the same, the syntax even, but one > forgetting that ``maths'' and ``computing'' are very different things > leads to overoptimism and eventually (pretty quickly) mistakes. You realize of course that numerical analysis is a branch of applied mathematics don't you? > 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... > > Well, let's say that "not much to do" is an unfair caricature of what I > have written. They are related; the relationship may even be > straighforward; but they are rather different things with rather > different properties. Well, I think the big problem here is that you are uncritically presuming the truth of a Platonic view of mathematical entities. This is anything but obvious. And a number of great mathematicians would simply disagree with you. > 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". > > I hope you don'tq really mean this, for this is quite gross! Of course I mean this - it's TRUE for crying out loud. There are cases where you can't distinguish in any meaningful way. > If you mean it, well, an aversion at distinguishing different sorts of > entities, mathematical and computational entities, for example, can be > be quickly remedied by reading any sort of nice introductory textbook, I > would suggest "Structure and Interpretation of computer programs". Well, I would suggest that you pick up a text or two on the foundations of mathematics before you start spouting this sort of silly stuff. Get a clue. Show me how you can distinguish between the answers you would get from a computer when computing in a congruence system with modulus 16 or 10 and what you'd expect from the same "operations" in the "mathematical version". /Jon -- Jon Anthony Organon Motives, Inc. Belmont, MA 02178 617.484.3383 jsa@organon.com