The structure of this document is as follows:
Part I (Chapters 1, 2, 3, 4) deals with basic specifications--first many-sorted, then subsorted.
Part II (Chapters 5, 6) provides structured specifications, together with specification definitions, instantiations, and views.
Part III (Chapters 7, 8) summarizes so-called architectural and unit specifications, which, in contrast to structured specifications, prescribe the separate development of composable, reusable implementation units.
Finally, Part IV (Chapters 9, 10) considers specification libraries.
In each part, a chapter summarizing the main semantic concepts underlying the kind of specification concerned is followed by a chapter presenting the (concrete and abstract) syntax of the associated CASL language constructs and indicating their intended semantics.
The Index may facilitate locating the places in this document where terminology is explained.
Appendix A provides a complete grammar for the abstract syntax of the language, collecting the fragments that are given in the semantics summary. Appendix B provides an abbreviated grammar (for the same abstract syntax).
Appendix C provides a complete grammar for the concrete syntax of the language, determining how CASL specifications are to be input. (The relationship between concrete and abstract syntax is mostly rather straightforward, and left implicit here.) Appendix D summarizes the intended display format for CASL, showing how CASL specifications appear when displayed after parsing.
Appendix E illustrates the syntax of CASL by giving some simple examples. (A systematic library of useful specifications is to be provided separately.)
Appendix F lists the remaining points that need settling before the CASL design can be regarded as final.