Date: Wed, 21 Apr 2004 22:01:06 -0600 From: Danny MacMillan <flowers@users.sourceforge.net> To: Chris Pressey <cpressey@catseye.mine.nu> Cc: freebsd-chat@freebsd.org Subject: Re: Beginning C++ in FreeBSD Message-ID: <opr6uar4fxrcgix0@shawmail> In-Reply-To: <20040421110548.20d8e75c.cpressey@catseye.mine.nu> References: <200404202124.50967.dgw@liwest.at> <FGEIJLCPFDNMGDOKNBABCEAICKAA.flowers@users.sourceforge.net> <20040421110548.20d8e75c.cpressey@catseye.mine.nu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 21 Apr 2004 11:05:48 -0700, Chris Pressey <cpressey@catseye.mine.nu> wrote: > On Tue, 20 Apr 2004 23:28:48 -0600 > Dan MacMillan <flowers@users.sourceforge.net> wrote: > >> These are not analagous. The reason things get lost in the >> translation of human language is that it is not possible to represent >> every expression in one human language with complete precision in >> another. > > I challenge you to defend this (Sapir-Worfian) claim with a specific > example. :) Thirty seconds on babelfish will provide more than enough substantiation, and Daniela herself argued my point in one of her prior messages. In crappy, somewhat whimsical pseudocode: the_message != translateFrenchToEnglish( translateEnglishToFrench( the_message ) ) The translations are not reciprocal. Though I guess that's not a specific example. Note that only machine translation is relevant for the sake of this argument, because the information available to a human making a translation is basically unbounded and the process is highly subjective. I do have to confess to some ignorance. I don't know what your 'Sapir-Worfian' parenthetical alludes to. At first I thought it was a Star Trek reference ... but a quick Google shows that "One of the premises of Sapir-Worfian hypothesis implies that semantic systems vary without constraint". Excellent! I'll just hop on my double-jimsen saddle and check the specs on the inline for the rotary girder. Ah, here we go. A further Google shows that my ignorance needs no confession, as my reply makes it quite plain. You've obviously given this at least as much thought as I have and studied it besides. <thpthpthpth> >> However, it =is= possible to represent object orientation >> with complete precision in a procedural language. To support object >> orientation, C++ adds to C an intrinsic this pointer and vtables. >> These concepts can be expressed explicitly in C without loss of >> fidelity. > > That (the Turing-Church thesis) is not at issue. What is at issue is > opportunities for optimization. > > I can't say for "Object Orientation" specifically (since there are as > many definitions of an "OO language" as there are "OO languages",) but > in general, translation between languages *can* result in a loss of > opportunities for optimization. I agree. That's why I asked for a specific example -- because I can't think of an optimization that is possible when compiling C++ code directly to binary that isn't possible when first translating C++ to C, then compiling that to binary. Doing so will obviously take advantage of any C language optimizations, and I can even imagine that there are opportunities for optimization in the decisions the compiler would make translating C++ to C. But are there lost opportunities? I'm dubious. I don't think there are. Of course, I could be wrong. I'm not that smart. That's why I asked for an example! There are few things I enjoy more (or experience less :) than finding out I'm in error. By the way, I'm thinking specifically of C vs C++ -- actually, C vs that subset of C++ needed for the object-oriented features. It's the closest apples-to-apples comparison I can think of between non-OO and OO languages, and is the comparison strongly implied by Daniela's message. > For example, if you translate a program from a language with > partially-specified evaluation order to one with strict & > fully-specified evaluation order, do you not lose the opportunity to > optimize it by reordering evaluations? Yes, and I take your point. But the specific claim that was made was that object-oriented languages are optimized differently from non-object-oriented ones. I just don't see it -- but again, I would enjoy an education. -Danny
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?opr6uar4fxrcgix0>