Path: utzoo!attcan!uunet!cs.utexas.edu!tut.cis.ohio-state.edu!unmvax!brainerd From: brainerd@unmvax.unm.edu (Walt Brainerd) Newsgroups: comp.lang.fortran Subject: Re: Character aliases are Satanic extensions Summary: Help is on the way Message-ID: <87@unmvax.unm.edu> Date: 12 May 89 22:53:59 GMT References: <592@mbph.UUCP> <177@csun1.UUCP> <594@mbph.UUCP> Organization: University of New Mexico at Albuquerque Lines: 43 In article <594@mbph.UUCP>, hybl@mbph.UUCP (Albert Hybl Dept of Biophysics SM) writes: > ... The X3J3 committee scores > a perfect 10.00 for allowing implementors to add his/her flag > to their products. > > : 1.3.2. _Exclusions_. This standard does not specify: > : [...] > : (4) The results when the rules of this standard fail > : to establish an interpretation. > : and: > : 1.4. _Conformance_ > : [...] > : A processor conforms to this standard if it executes > : standard-conforming programs in a manner that fulfills the > : interpretations prescribed herein. A standard-conforming > : processor may allow additional forms and relationships > : provided that such additions do not conflict with the > : standard forms and relationships. [...] > As usual, there are two sides to the coin. These items have been present in the Fortran standards from the beginning for very good reasons. It allows implementors (not just IBM and DEC, but people doing all kinds of experimental projects into which they want to embed Fortran) to add things to the language and still be standard. The standards committee is attacked frequently for "inventing new stuff" (it usually is not put this politely). This extension scheme allows "new stuff" to be tried out in real implementations providing a better chance of getting it right when it is standardized. Nice examples of extensions that didn't come primarily from major vendors occurred in the multitude of preprocessors in the 1970s. Their existence allowed me to argue (successfuly, of course) for putting the IF...ELSE IF..ELSE.. END IF into Fortran 77. Otherwise, it would not be there now. Of course, this puts the burden on the programmer to know what is standard and what is portable, but vendors are getting a little better about shading nonstandard things in their manuals. To help balance things a bit, the proposed 8x says a processor must contain "the ability to detect and report the use within a submitted program unit of an additional form or relationship that is not permitted by the numbered syntax rules or their constraints." Also a processor must have the capability of detecting obsolescent features. How this is done is _not_ specified; presumably it will be with a compiler option.