comp.lang.ada
 help / color / mirror / Atom feed
From: Richard Riehle <rriehle@nunic.nu.edu>
To: Robert A Duff <bobduff@world.std.com>
Subject: Re: Can OO be successful in real-time embedded systems?
Date: 1996/05/13
Date: 1996-05-13T00:00:00+00:00	[thread overview]
Message-ID: <Pine.GSO.3.92.960513041740.10150A-100000@nunic.nu.edu> (raw)
In-Reply-To: Dr702w.50H@world.std.com


On Fri, 10 May 1996, Robert A Duff wrote:

> In article <Pine.GSO.3.92.960509164924.1191A-100000@nunic.nu.edu>,
> Richard Riehle  <rriehle@nunic.nu.edu> wrote:
> >   However, in hard, real-time systems (HRTS), run-time dispatching is a
> >   little more of an issue than a simple case statement.  The controlling
> >   factor is whether we can predict that a certain sequence of actions
> >   will be time-determinate.
>
> What exactly do you mean by "a little more of an issue"?  The actual
> dispatching call can be done in constant time, just like a case
> statement does a jump through a table in constant time.  So the *only*
> difference is what I mentioned in my previous post: with a case
> statement, you have all the alternatives sitting there in one place,
> whereas with a dispatching call, they are scattered all over.  Do you
> see any *other* differences between case statements and dispatching,
> that would affect the ability to do worst-case timing analysis?

  Agreed that in small programs where the classwide operations are in
  the same package as the base type, there should not be too much
  of a problem with evaluation of timing.  As we override operators
  and add new classwide operators, it is going to become more difficult
  to do them kinds of timing analysis one can do with a simple case
  statement.

  One model for classwide operations will be something like:

       package Q is
          type T is tagged ...
          ...
       end Q;

       package Q.Classwide is
         procedure P1 (X : T'Class);
         procedure P2 (X : T'Class);
         ...
       end Q.Classwide;

  Now we have derivations of T, complete with overriding operations.  The
  Ada 95 model for this is crisp, clean, and clear.  And as long as no
  one begins extending package Q.Classwide or any of the other original
  derivations, everything is nice and neat.

  However, as we begin doing more extensions, it will become more
  difficult to apply the kinds of predicitive metrics we might be
  able to apply to a non-extensible model.  Even coverage analyzers
  will take a little longer to produce the information we require.

  Oh, and yes, are there any coverage analyzers that will work on the
  extensible, dispatching model built around child packages?

  I did not say this was impossible.  I do think we can count on it being
  a tad more difficult.  This should not discourage us from using the Ada
  95 model.  It is certainly not as unruly as that found in some other
  languages.  But I do think it adds a whole new dimension to the
  practice of predictive metrics.

  Richard Riehle








  reply	other threads:[~1996-05-13  0:00 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <m0uHHBP-0000ztC@crash.cts.com>
1996-05-09  0:00 ` Can OO be successful in real-time embedded systems? Jon S Anthony
1996-05-09  0:00 ` Robert A Duff
1996-05-09  0:00   ` Ken Garlington
1996-05-09  0:00     ` Richard Riehle
1996-05-10  0:00       ` Robert A Duff
1996-05-13  0:00         ` Richard Riehle [this message]
1996-05-09  0:00     ` Robert A Duff
1996-05-10  0:00       ` Ken Garlington
     [not found] <316BF0C5.1FE1@condat.de>
1996-04-11  0:00 ` Jon S Anthony
     [not found] ` <RMARTIN.96Apr11113222@rcm.oma.com>
     [not found]   ` <31749A27.3949@ag01.kodak.COM>
     [not found]     ` <4lggff$r56@gaia.ns.utk.edu>
     [not found]       ` <4mhh3m$h8m@globe.indirect.com>
1996-05-07  0:00         ` Richard Riehle
replies disabled

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