Technical Report Number
Larch/Smalltalk is a Larch interface specification language for Smalltalk with subtype relations. As a Larch-style language it benefits from two-tiered approach to specifications; separation of concerns, division of effort, and reusability. Subtype relationships helps to reuse and modularize specifications. A unit of specification in Larch/Smalltalk is called a type, which describes an abstraction of a set of Smalltalk classes. Complex specifications can be constructed by defining a type to be a subtype of other types, called its supertypes, thereby, inheriting their specifications. Specifications can also be parameterized to specify a family of related types. To encourage specifications to be used in the programming process, specification development tools have been implemented in Smalltalk. They are integrated in the Smalltalk-80 system. Using these tools, a portion of Smalltalk system classes and a part of the tools themselves have been specified.