Article View: comp.lang.java
Article #271Re: Will Java kill C++?
From: Andrew Koenig
Date: Mon, 15 Apr 1996 19:45
Date: Mon, 15 Apr 1996 19:45
77 lines
4003 bytes
4003 bytes
In article <4ktqv7$1ueu@piglet.cc.uic.edu> dhanle2@icarus.cc.uic.edu (David James Hanley) writes: > : In order for a standard to have any meaning at all, that standard has > : to specify the behavior of something. Moreover, any standard has to > : do so in a way that makes it possible to determine whether that > : something meets the requirements of the standard or not. > Sure. I gues this is so hard that standards are never > made, eh? There are many things for which standards are not made, precisely because it is impossible to detect conformance or nonconformance to specifications for such things. As a simple example, the C standard says that implementations are required to produce diagnostic messages when presented with programs that contain certain kinds of errors. The standard does not say, however, that the messages must correctly describe the errors. The reason for that is that there is no objective way to determine whether a particular diagnostic message is correct. It might be possible to determine correctness for some messages, but no general decision procedure is known. > : Now, suppose a name-mangling standard existed. What would it > : specify the behavior of? Linkers? What is a linker? What if I > : give you a C++ implementation that has no linker at all? Would you > : claim that such an implementation cannot be standard conforming > : because it does not have mangled names for you to inspect? There > : is no such requirement on C implementations; why should there be > : such a requirement on C++ implementations? > Again, so all those libraries I link with my C code must > be figments of my imagination. It would be just too hard to > agree on a standard implementation. It is easy for vendors to agree with each other on an implementation strategy, if that is what they want to do. It is much more difficult to write down rules for testing implementations (which is what standards are) with the property that conforming to the rules will guarantee compatibility. If vendors want to be compatible with each other, no standard is necessary. If they want to be incompatible in areas ouside the language proper, it is hard to understand how any standard can prevent them from doing so. > : Or what if I write a linker that does not use name mangling at > : all, but instead stores types in its symbol table? Would you > : reject such a linker because it does not mangle names properly? > Agast! That couldn't possibly be part of the standard! Please answer the question. > : Of, for a third example, consider a compiler and linker that does > : follow the hypothetical name-mangling standard, but gives its users > : no way of determining what names it actually uses? Does such a > : compiler/linker pair conform? How can you tell? How can you test > : conformance? > I may be really stupid, but I don't understand at all what you > mean here. Wouldn't the names it uses be determined by the name mangling > standard? If you can't convince it to tell you what names it uses, how can you determine whether it conforms to the standard or not? > : Indeed. But having a name-mangling standard would not affect this. > Yes it would. it wou;dn't clear up every concievable possible > theoretical problem, but it would be another big problem out of the > way of simpl distribution of libraries, object files, etc. So you claim -- but I have yet to see any evidence to support that claim. -- --Andrew Koenig ark@research.att.com
Technical Details
Message-ID:
<Dpx5K4.Jnr@research.att.com>Path:
arc1-ca.pugleaf.net!in2.uu.net!allegra!alice!arkReferences:
<4ks0c8$jte@piglet.cc.uic.edu> <DpvsE5.2HC@research.att.com> <4ktqv7$1ueu@piglet.cc.uic.edu>Show Full Headers
Complete Article Headers
Newsgroups: comp.lang.java,comp.lang.c++,comp.lang.smalltalk Path: arc1-ca.pugleaf.net!in2.uu.net!allegra!alice!ark From: ark@research.att.com (Andrew Koenig) Subject: Re: Will Java kill C++? Message-ID: <Dpx5K4.Jnr@research.att.com> Organization: AT&T Research, Murray Hill NJ References: <4ks0c8$jte@piglet.cc.uic.edu> <DpvsE5.2HC@research.att.com> <4ktqv7$1ueu@piglet.cc.uic.edu> Date: Mon, 15 Apr 1996 19:45:39 GMT