>> And no open-ended processes are allowed per frame.
> But.... Nothing about throwing exceptions is open-ended.

How deep is your stack?

> It "simply" pops the stack & starts to execute some other code.

at least in life critical avionics, the verification
process is bottom up. You verify the low level blocks
do what they're supposed to do, and then you integrate
the blocks. Integration does not change the behaviour
of teh blocks, so integration does not require that you
verify that you created new behaviours.

How do you verify a low level block that does a throw?
It will behave differently depending on who is doing the catch.

What if the catcher is doing a rethrow?  Then you can't
verify the first catcher as a standalone block.
It's behaviour will depend on the next level of catch.

How do you *guarantee* (to the level that your own life
may be on the line when you're riding on this airplane)
that your throwers and catchers and rethrowers and those
catchers won't do something you didn't think of?
How do you guarantee that someone else doesn't catch
your exception and use it in an unintended way, and cause
a real problem?

How do you guarantee that there isn't some small, slight,
unintended consequence to some permutation of throwers
and catchers that you didn't think of, and that small, slight,
unintended consequence ends up crashing the plane?

The behaviour of throw depends on who is doing the catching.

To you, you're "simply" popping the stack, but you have no
idea whats on the stack. you have no idea who is going to call you.

The behaviour of the system is no longer a simple aggregate
of the lower level blocks. The behaviour of teh system depends
on how the blocks are put together. And then verification
becomes a nightmare, because you can't verify it bottom up anymore.

Top-down verification is exhaustive verification and if one
block can affect another, you have to check every possible
combination of inputs on those blocks to make sure some
combination doesn't kill it.

That's why they do things bottom up and demand that the
system design is such that integrating the blocks doesn't
change the behavioru of the blocks.

At which point, the desktop application programmer will say
something along the lines of "But I know what I'm doing".

And the FAA guy will say "I can't prove that".












_______________________________________________
Boston-pm mailing list
Boston-pm@mail.pm.org
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to