# Introduction to the Language

Sather-W is the name which has been given to the implementation of the Sather programming language produced here at the University of Waikato. The language implemented conforms exactly to the specification for Sather 1.1 with the addition of the language defined class BIT which has two values defined - setbit and clearbit.

The Waikato implementation, therefore, implements the language as originally conceived at ICSI, Berkeley. Apart from the class BOOL, BIT is the only other concrete class defined as part of the language (but see the following paragraph), ignoring distributed and concurrent features for the moment (these have currently not been altered in any way!).

In order to permit the Sather program to refer to objects in the program environment, the class REFERENCE has been introduced. This replaces the class EXT_OB, the use of which is now deprecated.

All immutable concrete classes defined in any library now, therefore, are composed as either deriving from the class constructor AVAL{xxx}, where xxx is either BIT itself or some other immutable concrete class derived from AVAL { BIT } or being some composition of attributes as provided for in the language specification.

Similarly, reference classes defined in any library now are composed as either deriving from AREF{yyy}, where yyy may be any class, or as being some composition of attributes (possibly including an array) as provided for in the language specification.

Tuple constructed classes are forms of multi-component object in which the individual attributes are labelled t1, t2, etc as currently known from the original ICSI implementation.

External classes may be of 'C', 'FORTRAN' or the new 'OS' variants. The latter has been introduced in order to cater for environment value objects which are effectively sequences of bits to which an external class provides some structure. In practice this is probably what is intended by the C variant - but not actually done this way.

At least for the time being an external class of the OS variant has components which are guaranteed to be stored in lexical order of definition. Providing that there are no alignment problems then the whole will just be a sequence of bits - now 'interpreted' as a Sather class object.

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