comp.lang.ada
 help / color / mirror / Atom feed
From: Richard Riehle <laoXhai@ix.netcom.com>
Subject: Re: Conditional Compilation
Date: 2000/09/19
Date: 2000-09-19T20:30:05+00:00	[thread overview]
Message-ID: <39C7CCD2.5D338DD1@ix.netcom.com> (raw)
In-Reply-To: 7FEFA9E5E3B3C4A5.90418F4BE7D5AE58.48E094CF81EC6BD3@lp.airnews.net



Kenneth Kueny wrote:

> Does ADA have an analog to the C language #define, #ifdef constructs
> commonly used to include or exclude certain blocks of code in different code
> versions?

That is not as stupid a question as some habitues of this forum might assume.  I
recall
a project in the late 1980's where the Ada 83 code was targeted to an embedded
processor.  The compiler for the intended deployment was priced very high "per
seat."    This was a non-DoD project with a requirement for a lot of programmers

and there was a need to stay within a reasonable budget.

The development manager bought a lot of copies of the Meridian compiler for the
programmers and let each have a copy for his/her home computer, and installed it

on MS-DOS based computers all over the lab.  Then, one of the programmers wrote
a little preprocessor program to detect the difference between code for the
Meridian
compiler and the expensive embedded  system  compiler. This was done with a
commenting scheme in which the double hyphen, followed by some identifiers could

tell the difference between the two compilation environments.

The preprocessor would simply remove comments as appropriate for whichever
compiler was
being used.   There was code in the Meridian version to emulate the features
required by the
embedded compiler.   Programmers were encouraged to write vanilla-flavored Ada
as much
as possible to avoid the issues related to the embedded compiler.   As is
typical of such
development, much of the platform-dependent code was pushed to a low level of
abstraction.

One result was that the programmers, encouraged to use Ada for more than just
their daily work,
were willing to experiment with it on their own time.  More important, the
developer did not have
to buy as many copies of the expensive compiler, thereby reducing their overall
costs.    The downside
was that the publisher of the embedded compiler  experienced financial
difficulties and is
no longer able to supply Ada compilers for newer products manufactured by this
organization.

As far as I know, the manufacturer continues to quietly use Ada for its embedded
non-Dod
software products, but now provides GNAT instead of Meridian.  Rational dropped
the idea
of updating Meridian to Ada 95 and missed an opportunity to provide a low-cost
commercial
Ada 95 compiler that could compete with GNAT.

Preprocessors, such as the one just described, may  not be in the best economic
interest
of the embedded compiler publishers since those publishers end up selling fewer
licences.
For a commercial  manufacturer using Ada, this kind preprocessor may have the
benefit of
making the development effort a little more profitable.

Richard Riehle
richard@adaworks.com





  parent reply	other threads:[~2000-09-19  0:00 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-09-19  0:00 Conditional Compilation Kenneth Kueny
2000-09-19  0:00 ` E. Robert Tisdale
2000-09-19  0:00   ` David Starner
2000-09-20  0:52     ` Robert Dewar
2000-09-19  0:00   ` Larry Kilgallen
2000-09-19  0:00     ` Jeff Allen
2000-09-20  0:49       ` Robert Dewar
2000-09-19  0:00         ` Bobby D. Bryant
2000-09-24  0:00           ` Robert Dewar
2000-09-20  0:47   ` Robert Dewar
2000-10-09  0:00   ` John McCabe
2000-09-19  0:00 ` David Starner
2000-09-19  0:00 ` Richard Riehle [this message]
2000-09-19  0:00 ` Ted Dennison
2000-09-19  0:00 ` Jeffrey Carter
2000-09-19  0:00   ` Samuel T. Harris
2000-09-20  0:44     ` Robert Dewar
2000-09-20  1:33 ` tmoran
     [not found]   ` <8qauu3$7ei$1@nnrp1.deja.com>
2000-09-24  0:00     ` Robert Dewar
2000-09-25  2:45       ` Ted Dennison
2000-09-25  0:00         ` peter
     [not found] ` <39CA31F2.E160F0D8@res.raytheon.com>
2000-09-24  0:00   ` Robert Dewar
2001-01-02 13:27 ` Andrew Hately
2001-01-02 16:46   ` Robert Dewar
  -- strict thread matches above, loose matches on Subject: below --
2000-07-31  0:00 conditional compilation Matthew Woodcraft
2000-07-31  0:00 ` Marin D. Condic
2000-07-31  0:00   ` Ira D. Baxter
2000-08-01  0:00   ` Simon Brady
2000-07-31  0:00     ` Marin D. Condic
2000-08-01  0:00     ` Ted Dennison
2000-08-01  0:00       ` Robert A Duff
2000-08-01  0:00         ` Laurent Guerby
2000-08-02  0:00       ` Simon Brady
2000-08-02  0:00         ` Georg Bauhaus
2000-08-02  0:00         ` Simon Brady
2000-08-01  0:00           ` William J. Thomas
2000-08-02  0:00         ` Robert A Duff
2000-08-02  0:00           ` Georg Bauhaus
2000-08-03  0:00             ` Robert A Duff
2000-08-02  0:00           ` Brian Rogoff
2000-08-03  0:00             ` Robert A Duff
2000-08-03  0:00           ` Florian Weimer
1989-12-12  0:08 Emery
1988-06-13  0:24 Conditional compilation Steinar Haug
1988-06-17 13:53 ` rds
1988-06-22  0:44   ` Jeff Bartlett
1988-06-23 13:01   ` Arny B. Engelson
1988-06-27 18:01     ` Dave Seward
1988-06-29 13:32   ` brucej
1988-06-17 14:48 ` rjs
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox