Stewart Stremler wrote:
I didn't see if in Ada there was a way to catch all exceptions.
"Exception" isn't a well-defined term here. Things like integer overflow
and float denormalization? Yes.
The reason the Adriane-5 blew up is they were running the software at
fault on a processor too weak to do all the checks in real time. So they
proved the Adriane-4 didn't have enough engine thrust to actually make
the gyroscope change more than 65536 in one sample time (or whatever).
When they moved it to the Adriane-5 with bigger engines, nobody redid
the logical deductions and nobody actually tested the actual engines
with the actual hardware. The software worked exactly as designed. It
just wasn't designed for the hardware it was used on.
Kind of like complaining you put a dragster engine in a SUV and the
thing rolls over when you go around a corner - not the fault of the engine.
Note that I'm not disputing that Ada is verbose, and I've never
programmed in Ada, but that just looks over-the-top...
They're creating a new strongly-typed OO-style subclass (the "tagged"
type) for each key on the keyboard, then having an "overloaded method"
(the Press call) to handle the key press. While it isn't how I'd
necessarily have coded it, it certainly doesn't seem particularly more
verbose than you'd get in any other OO language where you tried to do
the same thing. About the only thing that would save it is if you had
run-time code generation, where you'd be creating the classes with
executable code (like a LISP macro looping, or C# calling
Reflection.Emit, or something like that).
--
Darren New / San Diego, CA, USA (PST)
His kernel fu is strong.
He studied at the Shao Linux Temple.
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg