Re: Aliasing in ISO C

jplevyak@violet-femmes.cs.uiuc.edu (John B. Plevyak)
16 Feb 1996 23:34:02 -0500

          From comp.compilers

Related articles
Possible to write compiler to Java VM? (I volunteer to summarize) seibel@sirius.com (Peter Seibel) (1996-01-17)
Re: Possible to write compiler to Java VM? macrakis@osf.org (1996-02-09)
Re: Aliasing in ISO C stevec@pact.srf.ac.uk (1996-02-14)
Re: Aliasing in ISO C rfg@monkeys.com (1996-02-16)
Re: Aliasing in ISO C jplevyak@violet-femmes.cs.uiuc.edu (1996-02-16)
Re: Aliasing in ISO C cdg@nullstone.com (1996-02-16)
Re: Aliasing in ISO C dlmoore@ix.netcom.com (1996-02-17)
Languages: The Bigger the Uglier (was: Re: Aliasing in ISO C) rfg@monkeys.com (1996-02-19)
Re: Aliasing in ISO C cliffc@ami.sps.mot.com (1996-02-19)
Re: Languages: The Bigger the Uglier (was: Re: Aliasing in ISO C) jgm@CS.Cornell.EDU (1996-02-19)
Re: Languages: The Bigger the Uglier CSPT@giraffe.ru.ac.za (Pat Terry) (1996-02-20)
[19 later articles]
| List of all articles for this month |

From: jplevyak@violet-femmes.cs.uiuc.edu (John B. Plevyak)
Newsgroups: comp.compilers
Date: 16 Feb 1996 23:34:02 -0500
Organization: University of Illinois at Urbana
References: 96-01-037 96-02-082 96-02-171
Keywords: C, optimize

What are we as language implementors to do when the even we cannot
easily determine the meaning of a program because of "special
exceptions" in the language definition?


More than once I have heard it said that "I wouldn't dare" use this or
that bit of small print for this or that optimization. The logic is
clear: programs will fail mysteriously because the average programmer
cannot be counted on to have read (and remembered) all the fine print.


I have seen compilers which say (in effect) that after optimization
level X they will begin to do optimizations which might be considered
"unsafe" (though legal).


Is this reasonable? Are they just redefining the language to be a bit
more forgiving? And are we, (or at least some of use) guilty of
putting these little bits of fine print into the language standard
just because we know what the compiler *could* do with them, even if
we will not be able to make it do that because we can't trust the
users?


I would contend that fine print in language definitions is just plain
wrong, and that compilers which implement optimizations based on the
fine print are asking for trouble. If the compiler wants a property
it should be in full view (like Cray's _restrict_ proposal or the
FORTRAN-90 pointer declarations), not hidden away for "language
lawyers" to point to and poor programers to pull their hair out over.


john
--
    John Plevyak (plevyak@uiuc.edu) (217) 244-7116 PGP KeyID: 0x051130BD
Concurrent Systems Architecture Group, Univ. of Illinois at Urbana-Champaign
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.