[comp.lang.ada] Ada a Real-Time Prog. Lang.?

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

>And...wasn't Ada supposed to run on embedded systems where all tasks 
>are lightweight, and there is no notion of ...?

No, that's propaganda or ignorance.  Ada is not a special-purpose language 
designed for real-time processing.  It's an excellent general-purpose 
programming language with some rudimentary real-time capability.  See the 
two special editions of Ada Letters on the Int'l Workshops on Real-Time Ada 
Issues for more discussion.

What the designers of Ada did was more far-sighted.  They designed a language 
that is not only general-purpose but extensible, via its library and typing 
mechanisms.  Thus it can contain spaceships and invoices as first-class 
objects that can be used as naturally as numbers and character arrays.  
(Though this capability requires some tweaking, as the recent discussions 
of overloading assignment shows.)

Anticipating much wider use of distributed and multi-processor computing 
systems, they included the rudiments of concurrent programming based on 
communicating sequential processes, rather than semaphores or monitors or 
such relatively low-level mechanisms which depend upon uni-processor 
architectures.
                                  Larry @ VLSI.JPL.NASA.GOV

griest@AJPO.SEI.CMU.EDU (04/21/89)

Initial Posting (author believed to be pcb@aber-cs.UCP):

     >>And...wasn't Ada supposed to run on embedded systems where all tasks 
     >>are lightweight, and there is no notion of ...?

Response in article 1774 by Larry @ VLSI.JPL.NASA.GOV:

  >No, that's propaganda or ignorance.  Ada is not a special-purpose language 
  >designed for real-time processing.  It's an excellent general-purpose 
  >programming language with some rudimentary real-time capability.  See the 
  >two special editions of Ada Letters on the Int'l Workshops on Real-Time Ada 
  >Issues for more discussion.

I am always amazed by the different ways in which people perceive the 
same information.  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!  I 
can remember briefings by Larry Druffel, then director of the AJPO, 
stating that Ada was designed for real-time applications, but that it 
may be suitable for other applications as well.  I can even remember 
conversations that Text_IO not be part of the language.  Funny that the 
first sentence of the RM (foreword) refers to "real-time systems".  The 
second and third 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]

I'm curious how one interprets this to imply Ada was NOT designed for 
real-time processing.  However, I can understand a debate as to whether 
or not it met the goal of supporting real-time embedded applications.  
Furthermore, I see no indication that the workshop documents referred to 
above imply anything contrary to this.  In fact the preface to the first 
document states in reference to Ada's use for real time applications: 

  "Ada was designed for embedded systems and so it seems to be very 
   important that issues which are or appear to be problems get analyzed 
   and solved as soon as possible rather than hidden under the carpet." 

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.  I believe Ada is suitable for real-
time, but is certainly not perfect.  Hopefully, these imperfections can 
be addressed in Ada9X.  

     griest@ajpo.sei.cmu.edu