HELP! formalizing OO
Patrick Logan
patrickl at servio.gemstone.com
Tue Apr 28 17:11:00 UTC 1998
Though it's infeasible to prove a program correct, how about
proving things like "consistent" or "safe"? Even if it's too hard
to prove that a robot arm will build a car, it would seem
reasonable to prove things like, the arm doesn't start drilling
holes in itself or in nearby workers.
To an extent this is already done via type-checking of various
sorts. But type-safety is a pretty weak constraint.
More practical than proofs is the ability to *reason*. Object oriented
programs improve the ability to reason about more complex systems. You
may not be able to *prove* that a robot would not do this or that. But
you can *reason* that this woud not be so.
OTOH type checking is itself a proof, so to the extent you can extend
types into areas like "drilling with robot arms" you can begin to
prove things about those things. This is what the Haskell language
does with monads. It can prove things like I/O operations, if they are
performed at all, will be performed in the order specified.
--
Patrick Logan mailto:patrickl at gemstone.com
Voice 503-533-3365 Fax 503-629-8556
Gemstone Systems, Inc http://www.gemstone.com
More information about the Squeak-dev
mailing list
|