资料来源 : Free On-Line Dictionary of Computing
CLU
CLUster.
An {object-oriented} programming language developed at {MIT}
by Liskov et al in 1974-1975.
CLU is an {object-oriented} language of the {Pascal} family
designed to support data abstraction, similar to {Alphard}.
It introduced the {iterator}: a {coroutine} yielding the
elements of a data object, to be used as the sequence of
values in a 'for' loop.
A CLU program consists of separately compilable procedures,
{cluster}s and iterators, no nesting. A cluster is a module
naming an abstract type and its operations, its internal
representation and implementation. Clusters and iterators may
be generic. Supplying actual constant values for the
parameters instantiates the {module}.
There are no {implicit type conversion}s. In a cluster, the
explicit type conversions 'up' and 'down' change between the
abstract type and the representation. There is a universal
type 'any', and a procedure force[] to check that an object is
a certain type. Objects may be mutable or {immutable}.
{Exception}s are raised using 'signal' and handled with
'except'. {Assignment} is by sharing, similar to the sharing
of data objects in {Lisp}. Arguments are passed by
{call-by-sharing}, similar to {call-by-value}, except that the
arguments are objects and can be changed only if they are
mutable. CLU has {own variable}s and multiple assignment.
See also {Kamin's interpreters}, {clu2c}.
["CLU Reference Manual", Barbara Liskov et al, LNCS 114,
Springer 1981].
E-mail: Paul R. Johnson .
{Versions for Sun and VAX/VMS
(ftp://pion.lcs.mit.edu/pub/clu/)}. {Portable version
(ftp://mintaka.lcs.mit.edu/pub/dcurtis/)}.
(1994-12-16)