# Introduction

This document specifies the form and the meaning of Sather programs. By reference to that specification it also lays down requirements for Sather implementations.

NOTE | Special conventions with regard to the use of the formal specification language vdm-sl pending additions to the formal standard are given in VDM-SL Notes. These notes are to be applied wherever appropriate throughout this document until/if formal amendment is made to the model defined in the vdm-sl standard when this document will be amended.

Sather is a general purpose object-oriented language which is characterised by classes of various kinds which provide for property inheritance and information hiding. It provides facilities for concurrent programming based on threads of control. Facilities for interacting with the outside environment are specified as part of the Required Library.

Sather was originally designed at the International Computer Science Institute (ICSI) in the US. Although originally thought of as a faster/more efficient successor/rival for the Eiffel language, the language specified in this document owes much to many other languages (principally Algol, Ada, Pascal, Modula-2 and C++ - in addition to Eiffel itself). A brief history of the language development is given in Annex E.

This specification uses a number of notations to specify the requirements contained in it. A standard syntactic meta-language is used for specifying lexical and syntactic structures. The Vienna Development Method Specification Language (vdm-sl), which is based upon conventional mathematics is used where possible to rigorously define the semantics.

NOTE | Since this document needs several particular typographic facilities for clarity in interpretation, Cascading Style Sheets (version 2) have been used in its production. Browsers which do not interpret style sheets may, of course, still be used but the typographic features used to differentiate different kinds of notation, etc will be missing.

| Index

Comments or enquiries should be made to Keith Hopper . Page last modified: Wednesday, 17 May 2000. |