![]() |
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. |
![]() |