SATHER-K has been designed for teaching classical as well as object-oriented programming and design techniques, and as a basis for reusable class libraries and object-oriented frameworks. This report gives a precise language description for implementors. It is not intended as a programmer's manual.
We give a traditional language description in the interpretive style. The syntax is described in extended BACKUS NAUR form as described in the appendix of [WAITEGOOS 1984]. Rules marked with an asterisk are given for introducing terminology only; they are not used in derivations from the syntactic target program.
A program specifies a computation by describing a sequence of actions. A computation may be realized by any sequence of actions having the same effect as the one described here for the given computation. The meaning of constructs that do not satisfy the conditions given in this report is undefined. The meaning of constructs is also undefined if this report does not explicitly specify a meaning. Whether, and in what manner, a particular implementation assigns meaning to undefined constructs is outside the scope of this description.
Notes, hints, examples and problems are not part of the language description but describe motivations for certain decisions, implementation hints, examples and open questions which still need to be resolved.
Acknowledgements: This report owes a lot to contributions by Stephen Omohundro, and Markus Armbruster, Nigel Horspool, Peter Lockemann, Welf Löwe, Rainer Mauch, Martin Odersky, Erhard Plödereder, Arnd Pötsch-Heffter, Christian von Roques, Martin Trapp, Franz Weber, and Wolf Zimmermann.