About this book
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  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.
Strings algorithms data abstraction data types software