home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.ada
- Path: sparky!uunet!cis.ohio-state.edu!news.sei.cmu.edu!jbg
- From: jbg@sei.cmu.edu (John Goodenough)
- Subject: Extensions to Ada (was Re: Open Systems closed to Ada?)
- Message-ID: <1992Dec17.093729.22994@sei.cmu.edu>
- Sender: netnews@sei.cmu.edu (Netnews)
- Organization: The Software Engineering Institute
- References: <1992Dec4.165905.2316@mksol.dseg.ti.com> <723740056.28422@minster.york.ac.uk> <1992Dec7.215946.18972@mksol.dseg.ti.com> <1992Dec9.052624.23020@seas.gwu.edu> <1992Dec11.131655.23725@mksol.dseg.ti.com> <EACHUS.92Dec11133546@oddjob.mitre.org> <1992Dec14.172100.19250@mksol.dseg.ti.com>
- Date: Thu, 17 Dec 1992 09:37:29 EST
- Lines: 39
-
-
- In article <1992Dec14.172100.19250@mksol.dseg.ti.com>, mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:
-
- |> And just what constitutes an 'illegitimate' extension and how do you
- |> decide? What about a compiler whose default behaviour matches the
- |> standard (and passes the validation suite) but which has switches that
- |> turn on and off various features. Would you validate it or not?
-
- The short answer is "Yes, this is a validatable compiler." As I understand
- validation policy, the complete language must be processed correctly under
- some setting of switches. This setting is noted in the validation summary
- report. But it is perfectly acceptable to have switches or pragmas that
- reject programs if they use certain features of the language, and a number of
- vendors take advantage of this possibility. Typically such restrictions allow
- the compiler to generate much better object code or use a run-time system that
- has better timing characteristics. One compiler vendor provided rate
- monotonic scheduling support years ago using this approach. Another vendor
- provides a pragma whose effect is to remove support for 'IMAGE on enumeration
- types -- in essence, if you (as the programmer) promise not to use 'IMAGE for
- a particular enumeration type, the compiler won't generate the associated
- run-time table. If you should later forget your promise not to use 'IMAGE,
- the compiler can legitimately refuse to compile the program.
-
- As another form of legitimate extensions to the language, several vendors have
- target-specific packages that allow programmers to take special advantage of
- their operating system capabilities. The use of such packages makes programs
- less portable, but of course, is not prevented by the standard.
-
- "Illegitimate" extensions would be extensions to the syntax that are not
- rejected under some "standard" switch setting. There is nothing in the policy
- or standard that prevents a vendor from running "extended" Ada code through a
- preprocessor as part of the compilation process as long as there is a way of
- turning off the preprocessor so non-Ada constructs can be detected and
- rejected. In short, there is a lot more flexibility to experiment with
- "validated" compilers than is generally realized and that has been taken
- advantage of by vendors.
-
- John B. Goodenough Goodenough@sei.cmu.edu
- Software Engineering Institute 412-268-6391
-