Source Code Availability All of the source code found in this volume,
and some that is not, is available from the author at a nominal fee. The
author is interested in learning of any errors that may be found, though
care has been taken in the construction of the modules to minimize
these. The author is also interested in other comments, suggestions,
recommendations, questions or experiences with the use of these modules.
Contact the author through the following address: Modula-2 Software c/o
Springer-Verlag 815 De La Vina St. Santa Barbara, CA 93101 As of
February 1988, source code is available on 3.5" Macintosh diskettes
(800K HFS format) for the TML Modula-2 compiler for MPW and the Mac-
METH Modula-2 compiler from ETH Ziirich. 1 Specification Requirements
for specification of procedure and data abstractions were previously
covered in Volume 1, Chapter 2. A summary is provided of the
specification for- mat used in this book. The format is adapted from
that Guttag and Liskov [10] developed for the CLU language. It
consists of relatively few constructs, is semi- formal by providing a
rigorous definition of the syntax and semantics of opera- tions, and it
provides powerful facilities for defining abstract data types. 1.1
Specification of Procedure Abstractions Specification of a procedure
requires a full description of syntax and semantics. Syntax the name of
the procedure by name, the name and type of each ar- gument or result,
and the order in which the arguments and results occur.