From: "Marin David Condic, 561.796.8997, M/S 731-93" <condicma@PWFL.COM>
Subject: Re: ada and robots
Date: 1997/06/16
Date: 1997-06-16T00:00:00+00:00 [thread overview]
Message-ID: <97061611223212@psavax.pwfl.com> (raw)
Joe Gwinn <gwinn@RES.RAY.COM> writes:
>
>As for Ada83 experience, I have (or know of) both old and new experience,
>and most Ada83 compilers were very difficult to use for direct hardware
>control. I suppose one could have made them work, but why would you? If
>it's that hard, it won't be reliable. We often reverted to assembly code
>for the machine control bits, long before C was a true option. (We did
>the same when the base language was Fortran or Pascal, for the same
>reasons.)
>
Again, I would ask for some real nice specific example of "here's
a block of C code which does XYZ which Ada can't do - or can't do
easily". I ask because I *have* been programming in Ada(83) for a
long time, right down to controlling very specific hardware and
never once did I consider it any harder than in any other
language. (Often easier, in many cases.) And BTW, *reliability* is
probably *THE MOST IMPORTANT* concern in producing a control
computer for a jet or rocket engine. My experience has told me
that it is neither difficult, nor unreliable - depending, of
course, on exactly how you go about it. (Anybody can make things
difficult and unreliable in any language of choice by trying to do
things the hard way or by bad design.)
>
>As for Ada83 and shared memory, the problem was that the Ada83 compilers
>all believed that only they changed memory, so it was OK to cache data
>items in CPU registers for long periods of time. For the most part, there
>was no reliable (and portable) way to tell the compiler different, so we
>performed various dances to ensure that Ada83 never knew the whole truth.
>
Ahhhhhh! *Now* I understand what the complaint about shared memory
is all about. Ada83 provided "pragma SHARED" which would handle
this, sort of. The semantics of this pragma were a little overly
restrictive if all you wanted to do was force the compiler not to
optimize the storage into a register. (So a solution did exist,
but not necessarly the best possible solution.) Our compiler
vendors typically supplied us with a "pragma VOLATILE" (which I
think is now standard in Ada95) which told the compiler not to
optimize the value in a register. It worked pretty much as
expected and we've got no complaints.
BTW: What exactly does C provide to keep this from happening? I
don't recall it ever being something defined in "standard" C - and
why should it be? "Standard" C never defined any sort of
multi-tasking and so never needed any sort of mechanism to tell
the compiler that a variable should not be retained in a register.
Is there some sort of mechanism to do this? (I recall it had the
ability to tell the compiler you would *like* to have a given
variable allocated to a register - and maybe it did and maybe it
didn't. But I don't recall any way of saying "don't allocate this
to a register behind my back, please.")
MDC
Marin David Condic, Senior Computer Engineer ATT: 561.796.8997
Pratt & Whitney GESP, M/S 731-96, P.O.B. 109600 Fax: 561.796.4669
West Palm Beach, FL, 33410-9600 Internet: CONDICMA@PWFL.COM
===============================================================================
"You spend a billion here and a billion there. Sooner or later it
adds up to real money."
-- Everett Dirksen
===============================================================================
next reply other threads:[~1997-06-16 0:00 UTC|newest]
Thread overview: 132+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-06-16 0:00 Marin David Condic, 561.796.8997, M/S 731-93 [this message]
1997-06-17 0:00 ` ada and robots Joe Gwinn
1997-06-18 0:00 ` Jon S Anthony
1997-06-18 0:00 ` Brian Rogoff
1997-06-20 0:00 ` Robert Dewar
1997-06-23 0:00 ` Richard Kenner
1997-06-23 0:00 ` Robert Dewar
1997-06-23 0:00 ` Geert Bosch
1997-07-02 0:00 ` Robert Dewar
1997-06-25 0:00 ` Jonathan Guthrie
1997-06-25 0:00 ` Will Rose
1997-06-21 0:00 ` Nick Roberts
-- strict thread matches above, loose matches on Subject: below --
1997-07-02 0:00 Ada " Huy Vo
1997-07-04 0:00 ` Richard A. O'Keefe
1997-07-01 0:00 Huy Vo
1997-07-02 0:00 ` Wes Groleau
1997-06-30 0:00 Huy Vo
1997-07-01 0:00 ` Alan Brain
1997-07-11 0:00 ` Will Rose
1997-07-02 0:00 ` Mattias Sj�sv�rd
[not found] <867541382.23405@dejanews.com>
1997-06-29 0:00 ` John Howard
1997-06-26 0:00 Huy Vo
1997-06-27 0:00 ` Richard A. O'Keefe
1997-06-27 0:00 ` Alan Brain
1997-06-27 0:00 ` Wes Groleau
1997-06-27 0:00 ` Stephen Leake
1997-06-27 0:00 ` Jon S Anthony
1997-06-27 0:00 ` Wes Groleau
1997-06-27 0:00 ` nma123
1997-06-24 0:00 Huy Vo
1997-06-25 0:00 ` Jon S Anthony
1997-06-25 0:00 ` Dale Stanbrough
1997-06-25 0:00 ` Alan Brain
1997-06-25 0:00 ` Wes Groleau
1997-06-26 0:00 ` Ken Garlington
1997-07-01 0:00 ` Tom Moran
1997-06-20 0:00 Huy Vo
1997-06-23 0:00 ` Jon S Anthony
1997-06-19 0:00 ada " Jon S Anthony
1997-06-19 0:00 ` Brian Rogoff
1997-06-20 0:00 ` Jon S Anthony
1997-06-22 0:00 ` John G. Volan
1997-06-25 0:00 ` Richard A. O'Keefe
1997-06-23 0:00 ` Robert Dewar
1997-06-24 0:00 ` Brian Rogoff
1997-06-16 0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-06-12 0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-06-09 0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-06-05 0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-06-05 0:00 Marin David Condic, 561.796.8997, M/S 731-93
1997-06-09 0:00 ` Jerry Petrey
1997-06-10 0:00 ` Alan Brain
1997-06-10 0:00 ` Joe Gwinn
1997-06-11 0:00 ` Alan Brain
1997-06-11 0:00 ` Joe Gwinn
1997-06-11 0:00 ` Spam Hater
1997-06-11 0:00 ` Robert Dewar
1997-06-11 0:00 ` Samuel Mize
1997-06-13 0:00 ` Erik Magnuson
1997-06-17 0:00 ` Joe Gwinn
1997-06-18 0:00 ` Jon S Anthony
1997-06-19 0:00 ` Jonathan Guthrie
1997-06-20 0:00 ` Robert Dewar
1997-05-28 0:00 John Bohn
1997-05-29 0:00 ` Michael F Brenner
1997-05-29 0:00 ` Stephen Leake
1997-05-30 0:00 ` John Cook
1997-05-30 0:00 ` Tom Moran
1997-06-01 0:00 ` Dale Stanbrough
1997-06-02 0:00 ` John G. Volan
[not found] ` <5mv984$7kn@news.emi.com>
1997-06-03 0:00 ` Martin A. Stembel
1997-06-03 0:00 ` Joe Gwinn
1997-06-04 0:00 ` Pat Rogers
1997-06-05 0:00 ` Joe Gwinn
1997-06-14 0:00 ` Robert Dewar
1997-06-16 0:00 ` Ken Garlington
1997-06-16 0:00 ` Robert Dewar
1997-06-17 0:00 ` Joe Gwinn
1997-06-28 0:00 ` Mike Stark
1997-07-03 0:00 ` Joe Gwinn
1997-06-04 0:00 ` John G. Volan
1997-06-05 0:00 ` Joe Gwinn
1997-06-14 0:00 ` Robert Dewar
1997-06-17 0:00 ` Joe Gwinn
1997-07-03 0:00 ` Shmuel (Seymour J.) Metz
[not found] ` <9706052229.AA29554@jaguar.nmc.ed.ray.com>
1997-06-06 0:00 ` John G. Volan
1997-06-07 0:00 ` RC
1997-06-09 0:00 ` Joe Gwinn
1997-06-05 0:00 ` Jon S Anthony
1997-06-05 0:00 ` Joe Gwinn
1997-06-14 0:00 ` Robert Dewar
1997-06-10 0:00 ` Robert Dewar
1997-06-10 0:00 ` Joe Gwinn
1997-06-11 0:00 ` Robert Dewar
1997-06-12 0:00 ` George Haddad
1997-06-16 0:00 ` Matthew S. Whiting
1997-06-17 0:00 ` Stephen Leake
1997-06-17 0:00 ` Robert A Duff
1997-06-20 0:00 ` jim granville
1997-06-21 0:00 ` Robert Dewar
1997-06-29 0:00 ` Matthew Heaney
1997-07-03 0:00 ` Shmuel (Seymour J.) Metz
1997-07-13 0:00 ` Robert Dewar
1997-06-17 0:00 ` Jon S Anthony
1997-06-17 0:00 ` Matthew S. Whiting
1997-06-18 0:00 ` Jon S Anthony
1997-06-22 0:00 ` John G. Volan
1997-06-18 0:00 ` Samuel Mize
1997-06-18 0:00 ` Matthew S. Whiting
1997-06-18 0:00 ` Robert A Duff
1997-06-17 0:00 ` Samuel Mize
1997-06-18 0:00 ` Steve O'Neill
1997-06-19 0:00 ` Anonymous
1997-06-19 0:00 ` Kenneth W. Sodemann
1997-06-20 0:00 ` Stephen Leake
1997-06-20 0:00 ` Robert Dewar
1997-06-17 0:00 ` Robert Dewar
1997-06-17 0:00 ` Robert A Duff
1997-06-18 0:00 ` Ken Garlington
1997-07-17 0:00 ` Shmuel (Seymour J.) Metz
1997-06-20 0:00 ` Adam Beneschan
1997-06-20 0:00 ` Robert Dewar
1997-06-04 0:00 ` RC
1997-06-04 0:00 ` Larry Kilgallen
1997-06-04 0:00 ` John G. Volan
1997-06-05 0:00 ` Jon S Anthony
1997-06-02 0:00 ` Nick Roberts
1997-06-04 0:00 ` Jan Galkowski
1997-06-05 0:00 ` Albert K. Lee
1997-06-06 0:00 ` dana
1997-06-07 0:00 ` John G. Volan
1997-06-10 0:00 ` dana
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox