comp.lang.ada
 help / color / mirror / Atom feed
From: seas.gwu.edu!mfeldman@uunet.uu.net  (Michael Feldman)
Subject: Re: Query about monitor (passive) task optimization
Date: 3 Aug 93 20:10:03 GMT	[thread overview]
Message-ID: <1993Aug3.201003.448@seas.gwu.edu> (raw)

In article <CB6w8I.9xt@ddciiny.UUCP> jls@ddciiny.UUCP (Jonathan Schilling) writ
es:
>In article <1993Aug2.181750.19343@seas.gwu.edu> mfeldman@seas.gwu.edu (Michael
 Feldman) writes:
>>
>> [discussion of compiler optimization and performance traps in Ada]
>>
>>And this will ALWAYS be true of high-level languages and optimization.
>>If you've gotta control every bit, write it in assembler. If you're
>>writing it in a HLL, these things will bite you now and then. Yep.
>>That's life.
>
>Yes.  It should be pointed out that Ada is in no way unique in this area.
>C++ has a number of tricky areas relating to real-time performance (that
>incidentally programmers coming from Ada will be better prepared to deal
>with than those coming from C).  Even in C the user has to worry about
>whether the standard library functions are reentrant, whether they have
>hidden extrefs that aren't appropriate for real-time, whether the malloc
>algorithm behaves reasonably, etc.  [The July 1993 issue of "Embedded
>Systems Programming" has two long articles on these subjects.]  Then if
>the programmer is using a rl-time kernel product to provide concurrency
>support, there are the performance characteristics of that product to
>learn, and occasionally get caught by.
>
You betcha. People who try to use concurrency without understanding it
are in for BIG trouble. The nice thing about Ada is that at least the
concurrency constructs are up front, in the language, where (IMHO)
they belong, not buried in what amounts to just a subprogram library. 
(POSIX or whatever) That was, you may recall, the original idea. People
were actually supposed to USE tasks, not end-run them as many are doing
now. Understanding tasks, and USING them, was supposed to spur the
vendors into working _really_ hard to optimize the hell out of them.

So what do we have now? POSIX/Ada bindings. Packages. Subroutine calls.
I'm not dumping on the good work done in developing the POSIX/Ada
bindings; I'm saying that such things should not really be necessary,
if the compilers were doing what we pay for them to do - give us good, 
correct code that really exploits the hardware and the power of the language.

THAT, my friends, is where Ada could win BIG. If only...

Mike Feldman

             reply	other threads:[~1993-08-03 20:10 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1993-08-03 20:10 Michael Feldman [this message]
  -- strict thread matches above, loose matches on Subject: below --
1993-08-13  7:32 Query about monitor (passive) task optimization agate!howland.reston.ans.net!darwin.sura.net!sgiblab!munnari.oz.au!goanna
1993-08-11  2:34 agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!math.ohio-state.edu!u
1993-08-10 23:49 Michael Feldman
1993-08-10 23:14 Michael Feldman
1993-08-10 13:51 Robert Dewar
1993-08-10 13:44 Robert Dewar
1993-08-10  1:47 cis.ohio-state.edu!math.ohio-state.edu!darwin.sura.net!seas.gwu.edu!mfeld
1993-08-10  1:38 cis.ohio-state.edu!math.ohio-state.edu!darwin.sura.net!seas.gwu.edu!mfeld
1993-08-09 21:15 Robert I. Eachus
1993-08-09 14:48 Jonathan Schilling
1993-08-09 12:14 Robert Dewar
1993-08-09 11:02 Richard Kenner
1993-08-09  4:57 Robert Dewar
1993-08-09  4:47 Robert Dewar
1993-08-09  4:41 Robert Dewar
1993-08-03 20:01 Michael Feldman
1993-08-03 15:26 Jonathan Schilling
1993-08-03 10:11 Bjorn Kallberg
1993-08-02 18:17 Michael Feldman
1993-08-02 18:13 Michael Feldman
1993-08-02 17:47 Michael Feldman
1993-08-02 14:35 Jonathan Schilling
1993-08-02 13:19  Arthur Evans
1993-08-02  6:41 Bjorn Kallberg
1993-08-02  3:30 Michael Feldman
1993-08-02  1:57 Jonathan Schilling
1993-08-01  3:25 Michael Feldman
1993-07-31  3:27 Robert Dewar
1993-07-30 17:51 Michael Feldman
replies disabled

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