Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!tut.cis.ohio-state.edu!rutgers!cmcl2!lanl!jlg From: jlg@lanl.gov (Jim Giles) Newsgroups: comp.lang.c Subject: Re: ambiguous ? Message-ID: <14125@lanl.gov> Date: 25 Oct 89 22:31:08 GMT References: <6675@ficc.uu.net> Organization: Los Alamos National Laboratory Lines: 31 From article <6675@ficc.uu.net>, by peter@ficc.uu.net (Peter da Silva): > In article <14114@lanl.gov> jlg@lanl.gov (Jim Giles) writes: >> [... comments about the continuing lack of an approved C standard ...] > Compare it to X3J3. I dare not! I've been accused (incorrectly) of hold C up to scrutiny only vs. Fortran. This, is another case in which someone else just assumes that I will be defensive about Fortran. But, what the hell - since you mention it. X3J3 _has_ successfully passed 2 previous standards. The present revision has only gone to two public reviews so far. X3J11 has gone to 3 public reviews and now faces a class action suit - they still haven't passed even one standard! > [... Examples like X = 0 * FUNC(Y) ...] > You say that X3J11 is the only standard which allowed ambiguous constructs. > Looks like that statement is inoperative. Not at all. The Fortran standard refers to the above behaviour as "implementation defined". This means that the implementation _should_ define the meaning of the expression. Most implementations choose to let the optimizer have free rein (and therefore, the _implementation_ is responsible for the ambiguity). In my opinion, this doesn't meet the requirements of standard conformance since the implementation _should_ define the semantic meaning of the construct. However, X3J11 will be the only ANSI language standard which _specifically_ _doesn't_ require an implementation to provide a definition of some behaviours in order to be considered comforming. Therefore, the ambiguity is specifically allowed by the proposed standard.