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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,3ccb707f4c91a5f2 X-Google-Attributes: gid103376,public From: bobduff@world.std.com (Robert A Duff) Subject: Re: Unbounded strings (Was: Java vs Ada 95 (Was Re: Once again, Ada absent from DoD SBIR solicitation)) Date: 1996/11/17 Message-ID: #1/1 X-Deja-AN: 197099388 references: <325BC3B3.41C6@hso.link.com> organization: The World Public Access UNIX, Brookline, MA newsgroups: comp.lang.ada Date: 1996-11-17T00:00:00+00:00 List-Id: In article , Robert Dewar wrote: >I can see that you would *wish* this to be the case, but please prove >it from the RM. Where is the abstract semantics of unbounded strings >specified in such a way as to make my reference count implementation >incorrect? I don't see any language around the unbounded strings >package that explicitly says this (or for that matter, even implies it). I'd say A.4.5(1) proves it -- these things "represent strings", not strange pointers into evilly shared variables. If you want to use strange pointers in the implementation, then you have to make it behave as if they are really (varying length) strings. I don't see any statement in the RM that says these things are erroneous -- therefore they aren't. (You *have* to read the RM that way -- otherwise *everything* is erroneous, because we rarely say "so-and-so is not erroneous".) By your reasoning, it is erroneous to use every type in every predefined package, because who knows what's in the package body -- maybe the body of Text_IO writes zeroes over the whole address space (since the RM doesn't explicitly forbid that)! It seems to me that the burden of proof should be on you -- you claim that so-and-so is erroneous, so to prove it, you have to point to an explicit statement in the RM saying it's erroneous. You can't just point out that it doesn't say it's not erroneous. Otherwise, I'll say, "Prove that 'X := 1;' is not erroneous.", and the whole language falls apart. - Bob