 |
Annex E: Glossary
|
 |
 |
(This annex is informative only) |
 |
The following explanations of terms is given as an aid to the reading of
this document.
Some of the terms found here are given explicit definitions in the body of
this specification; the explanations given here are for completeness and are not to be taken as normative.
Many terms are used in this specification which have a special meaning in
this context. Their interpretations are not as general as may be given in a
dictionary and may, in fact, not necessarily match the reader's idea of the meaning of those terms.
- Abstract Class - this term is
used in Sather with the meaning given below for an Abstract Data Type.
- Abstract Data Type (ADT) - this term
refers to an abstract description of the properties and behaviour of some
data type. In Sather terminology this is the equivalent of an Abstract Class.
- Abstract Syntax - An abstract
version of the underlying structure of the Sather language defined in
terms of a hierarchy of vdm-sl types. This shows
essential structure but omits lexical details.
- Abstraction - This term specifies
the meaning of some concept with no consideration of how it may
be implemented as part of a computer program.
- Alignment - The storage mechanism
of a computer system may specify limitations or restrictions on the way in
which stored objects of various sizes may be stored in relation to the
storage address allocated. For example there may be a limitation which
requires objects whose size is four octets to be stored at locations whose
address modulo 4 is zero. Such limitations may mean that objects of
differing size may not necessarily be stored in adjacent storage
locations.
- Argument Mode - Each argument to
a method in Sather has a mode which is either In, Out or
Inout as described for the Ada language. In addition to these an
iterator argument may also have the mode Once - which indicates
that the value should only be determined when the first invocation of the
iterator takes place.
- Attribute - Certain features of an
implementation class may be defined as attributes. This is a form of
short-hand for a pair of methods - a reader and a writer.
- Class - Either a definition of some
Abstract Data Type or an implementation of some
program/library model component.
- Concrete Syntax - The grammar
rules which describe how source text shall be structured to convey the
intended meaning of a component of a program.
- Declaration semantics - The
meaning of the introduction of a new identifier denoting some constant,
type, variable or method.
- Dynamic semantics - The meaning of
some language construct which is determined during elaboration when the
program is executing.
- Environment - this term arises in
this document in two distinct contexts, having different meanings -
- The computer system execution environment in which a program is
executing, including the hardware, firmware and operating system.
- The semantic environment within the program being executed or
translated. This includes mappings from identifiers to the objects
(stores, values, methods, etc) which those names represent at that
point in the program. This environment also includes the mappings
from identifiable storage locations to the values currently held in
them.
- Exception - the occurrence of a
disturbance in the normal flow of control of a Sather program. This may
be occasioned directly when a method raises an exception synchronously or
when some external environment exception is notified to the program
asynchronously (as, for example, an attempt to divide by zero).
- External Class - an external
class defines the Sather interface to objects and methods which may be
defined by systems in the computer system environment of an executing
program. The Required library, for example, defines abstract interfaces
to an operating system which an implementation must provide. It is
certain that external classes will form some part of an implementation of
these interfaces.
- Feature - a class which
implements or models some concept does so by defining features. Features
are methods. Note that properties (see attribute) are defined by a reader method and a writer
method, either or both of which may be private.
- Immutable Class - An immutable class is one for which the value it represents cannot be modified during program execution. It may be either a class defined as being immutable with that keyword where methods return the value of an object - not the object itself; this term may also be used to refer to a reference class entity the features of which provide immutable semantics.
- Implementation Mode - A mode of use
of an implementation. In particular, an implementation conforming with
this language specification must have a mode of use in which no additional
facilities which may have been provided will be used/recognised.
- Inclusion - Any implementation
class may include all of the features of some other implementation class -
which may be a partial class or a fully
instantiated implementation class. Note that this facility in Sather is
completely independent of class inheritance.
- Inherit - A class is said to
inherit the properties defined in the abstract calss from which it is
inheriting feature definitions. Note that in Sather inheritance is
completely separate from code inclusion.
- Iterator - A method which
encapsulates user defined looping control structures - just as routines do
for algorithms (see [MUR96]).
- Library - A named (but see Required Library) collection of classes with a common
name-space.
- Library Class - A class which forms part of either the Required Library or some other named library which is
not part of some application program.
- Method - A component of a program
which is elaborated individually during execution. It may be a routine or an iterator.
- Model - For the purposes of
describing programs and the behaviour of particular Abstract Data Type, they are considered to provide a
computer model of the behaviour of those features of a real world activity
which it is necessary for an implementation class to provide when a
program is executing.
- Name Space - This term
corresponds to the term 'scope' used in defining components of a program.
It is a domain of class names within which both the name and its meaning
are known. See library above.
- Notification - This term refers to any method which may be used by an implementation to make a user aware that an error or other unhandled exceptional event has occurred.
- Opaque - Any object which is said
to be opaque has neither visible structure nor properties of any kind from
which such structure can be inferred. The only methods available are for
conversion to and from such an object.
- Partial Class - This term is applied to the syntactic unit of Sather source text which may be included into a reference or immutable - or other partial - class, where its effect is as though the source text had been placed at the point of inclusion and any argument types substituted by their instantiations.
- Pervasive - This term applies
to classes and methods the name
of which is pervasive to the entire source text of a Sather program. Items
which are said to be pervasive may not be given definitions which conflict
with the meaning ascribed to them in this document.
- Pre-defined - This term is
used to indicate those names, values and identifers which are defined as
part of the lexical structure of a Sather program.
- Private - The keyword when used
in the source text of some class definition indicates that the feature
being defined is not visible outside of the class text in which the
definition occurs.
- Program Class - One class in
the source text of a Sather program is considered to be the 'program'
class. This class is identified as being distinguished in this way by
notifying the implementation of this (in some implementation-defined way)
when translating a program. See also Program Method below.
- Program Method - One method in
the program class is distinguished as the method which is to be invoked
when a Sather program begins execution. This method must be identified to
an implementation (in an implementqtion-defined way) when the program is
being translated.
- Reference Class - This is a class which defines entities which require creation and which may be returned from a method - rather than the value being returned it is the object which is returned. Such entities may survive outside the scope of the program method in which they were originally created.
- Required Library - This is an
un-named Library which has a pervasive name-space. Its
formal definition is given in Section
8 of this document.
- Routine - An encapsulation of the
implementation of some algorithm whaich may or may not return some value.
- Signature - The signature of a method consists of its name together with the kinds of
parameter used, giving them individual argument
modes, names and types. If the method returns or yields a value then the
signature is completed by giving the type of value returned/yielded.
- Source Text - This is a textual
form of representation which purports to be (part of) a definition of some
component of a Sather program. If it satisfies the rules described in
this document then it is (part of) such a definition and is said
to be translatable.
- Static semantics - The meaning of
some source text of a Sather program derived from its relationships with
the textual and logical environment within which it occurs. Source text
for which static semantic rules are obeyed is said to be well-formed.
- Sub-type - An implementation
class may be defined to conform to one or more abstract classes. This is
termed sub-typing and is one form of inheritance.
- Super-type - An abstract class from which some other abstract class
or implementation class inherits is said to be a
super-type of that inheriting class. It is also possible (with
restrictions described in Section 6) for the definition of an abstract
class to be a super-type of some already defined class.
- Token - A token is a unique value
which may represent any entity in either a source text or other form of
some program. It may be used as a short-hand form of class representation
instead of the original text. Such a class is then considered to be
'tokenised' or in a 'tokenised form'.
- Translatable - A fragment of the
source text of a Sather program is said to be translatable if it conforms
exactly to the syntactic, static semantic and declaration semantic rules
given in this document.
- Type - This defines the properties
and methods which may be applied to an object of that type. In Sather
terminology there are Abstract Classes which
define Abstract Data Types and other classes which
define implementations of some abstraction. Both class kinds essentially,
therefore, define a type. The term type, however, is strictly speaking
only applicable to abstract classes. See sub-type
and super-type.
- Vdm-sl - The Vienna Definition
Method Specification Language. The form used in this document is that
defined for use by programs which manipulate VDM definitions as defined in
ISO/IEC 13817.
- Well-formed - Meets the static
semantic rules of the language and, as a pre-requisite to these, meets the
syntax rules.
- Yield - The term applied when an
iterator yields control to its invoking scope. This may or may not
involve yielding a value as well. Note that, depending upon its
definition, an iterator may never quit, merely yielding on successive
occasions until some other action in the enclosing scope terminates the
loop.
Comments
or enquiries should be made to Keith Hopper.
Page last modified: Tuesday, 24 October
2000. |
 |