[comp.lang.ada] Ada as a real-time Lang.?

larry@VLSI.JPL.NASA.GOV (04/28/89)

--
> I had been under the impression that Ada WAS designed specifically for 
> real-time embedded applications.  Maybe it was just a spoof to get in 
> the door, and then take over all application areas!

  Maybe.  More likely the original purpose was expanded.

> ... the first sentence of the RM (foreword) refers to "real-time systems".

  Specifically it says: "Ada is the result of a collective effort to design
  a common language for programming LARGE SCALE and real-time systems."
  [Emphasis added.]

> The [third] and [fourth] sentences refer to the requirements effort and 
> specifically to the STEELMAN requirements.  And the first sentence of 
> the STEELMAN document states: 
>
> "The Department of Defense Common High Order Language program was
>  established in 1975 with the goal of establishing a single high order
>  computer programming language appropriate for DoD EMBEDDED COMPUTER
>  SYSTEMS".  [emphasis added]

  That's the first sentence.  It leaves wide open the possibility that the 
  HOL would be appropriate for many other kinds of systems.  In fact, most 
  of STEELMAN is devoted to requirements for general-purpose applications
  programming, and a small fraction to real-time programming.

  Looking at 1815A itself its hard to avoid the conclusion that real-time
  programming is not a high priority.  For instance, almost all of Chapter 13
  is optional, even though the features covered there are essential for any
  type of embedded programming.  DELAY X means delay AT LEAST but possibly
  much more than X.  PRAGMA INLINE is optional.  The chapters on tasking 
  and exceptions describe facilities general enough to be used on distributed 
  computing systems that have concurrency but do not have real-time require-
  ments.  And so on. 

> Your implication that Ada was not designed for real-time applications 
> may be harmful if it causes real-time programmers to give up hope for a 
> decent high level language to use.

  Much more harmful would be to give them the wrong impression and alienate 
  them when they put their reputations and jobs on the line by choosing it
  for a hard real-time project.

> ... Ada is suitable for real-time, but is certainly not perfect.  Hopefully,
> these imperfections can be addressed in Ada9X.

  In fact, I'm sure they will be, with the quality of the people who are
  addressing this issue.  Of course, most of the "imperfections" can be 
  gotten around now.  The DELAY statement can be replaced by a custom-written
  EXACT_DELAY, for instance.  Customers can select compilers that do
  implement Chapter 13.  And so on.  But all this takes time and energy that
  would not have to be expended if Ada were designed to be a special-purpose
  language.  Instead, it's a general purpose language, and I for one am
  happly that this is so.
                                            Larry @ VLSI.JPL.NASA.GOV