Re: query on Larch


Those are good questions--don't hesitate to ask more.  I'll give you some
short answers here.  I've also taken the liberty of forwarding your message
to the larch-interest@src.dec.com mailing list, in the hope that Gary
Leavens, Jeannette Wing, and perhaps others will want to respond with
information about their work.  (You might even want to join the
larch-interest list.)

Another good source of information about current Larch activity is in the
World Wide Web, rooted at the Larch Home Page, URL


Although several people have worked on Larch interface languages for object
oriented programming languages, I can't at the moment recall any published
"standard mappings to/from OO design and analysis models."  I don't see any
reason in principle why this could not be done, but, as always, "the devil
is in the details."

I think that the Larch approach fits rather nicely with OO, if you take
the point of view that what you want to inherit from superclasses is
specifications, and rather badly if you take the point of view that what
you want to inherit is just code.  If a class does not satisfy the
specification of its superclass, there really isn't much point in specifying
the superclass, is there?

I suspect that you are correct that interface specifications and OOA are
useful at about the same stage of design and analysis, and that LSL could
start being useful earlier, when doing what is sometimes called "domain
analysis."  We talk about developing LSL handbooks specialized to various
domains, but I cannot point you at any yet.

LSL is used to define theories that can be used in interface
specifications.  I'm not quite sure what OO features it would be
desirable to add to the language.  Certainly you might want to write some
specifications in LSL suitable for the OO features of your language, just
as you would want to write specifications for its basic data types and data
structures, but that wouldn't extend LSL, it would merely use it.

There has been some discussion of generalizing LSL's sort-checking to allow
the declaration that one sort is a sub-sort of another (a la order-sorted
algebras).  LSL's present sort system has the virtue of simplicity (two
sorts are different iff they have different names), but it is somewhat of a
straightjacket.  It is likely that OO specifications would benefit from
increased flexibility here.  I don't think we've heard the last word on
this yet.

Thanks for your interest in Larch,
Jim H.