| Introduction to the Language |

Sather-1.3 is the version of the interim implementation produced here at Waikato including a fully internationalised Required Library. The language 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, attempts to implement the language as originally conceived at ICSI, Berkeley. Apart from the class `BOOL`, `BIT` is the only other concrete class in the language (but see the following paragraph), ignoring distributed and concurrent features for the moment (these are currently not 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 defined in the language.

Reference classes defined in any library now, therefore, are composed as either deriving from `AREF{yyy}`, where `yyy` may be any class, or as being some composition of attributes (possible including an array) as defined in the language.

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

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 currently 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 October 2000. |