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 a
Bstraction, similar to
Alphard. It introduced the
iterator: a
coroutine yielding the elements of a data o
Bject, to
Be used as the sequence of values in a ' for' loop. A CLU program consists of separately compila
Ble procedures,
clusters and iterators, no nesting. A cluster is a module naming an a
Bstract 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 conversions. In a cluster, the explicit type conversions ' up' and ' down' change
Between the a
Bstract type and the representation. There is a universal type ' any' , and a procedure force[] to check that an o
Bject is a certain type. O
Bjects may
Be muta
Ble or
immutaBle.
Exceptions are raised using ' signal' and handled with ' except' .
Assignment is
By sharing, similar to the sharing of data o
Bjects in
Lisp. Arguments are passed
By
call-By-sharing, similar to
call-By-value, except that the arguments are o
Bjects and can
Be changed only if they are muta
Ble. CLU has
own variaBles and multiple assignment. See also
Kamin' s interpreters,
clu2c. ["CLU Reference Manual",
Bar
Bara 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) In addition suitaBle contents:<Br>[ 2 ] [ = ] [ @ ] [ aBstraction ] [ ag ] [ ai ] [ al ] [ Alpha ] [ Alphard ] [ am ] [ an ] [ ar ] [ arc ] [ arg ] [ argument ] [ as ] [ assignment ] [ at ] [ au ] [ B ] [ B ] [ Ba ] [ Bar ] [ Be ] [ Bj ] [ Bs ] [ By ] [ C ] [ ca ] [ call-By-value ] [ ch ] [ ci ] [ ck ] [ CL ] [ cl ] [ clu2c ] [ cluster ] [ co ] [ com ] [ con ] [ cons ] [ cu ] [ data ] [ data aBstraction ] [ de ] [ design ] [ ding ] [ do ] [ down ] [ du ] [ E ] [ ec ] [ ed ] [ edu ] [ ee ] [ element ] [ er ] [ era ] [ es ] [ et ] [ explicit type conversion ] [ fi ] [ file ] [ fo ] [ for ] [ ge ] [ gen ] [ gn ] [ gr ] [ gu ] [ h ] [ handle ] [ hang ] [ hat ] [ hn ] [ hr ] [ id ] [ ie ] [ il ] [ implicit type conversion ] [ in ] [ instantiate ] [ int ] [ interpreter ] [ io ] [ is ] [ IT ] [ it ] [ iterator ] [ J ] [ K ] [ Kamin' s interpreters ] [ la ] [ language ] [ lc ] [ ld ] [ Lex ] [ li ] [ Lisp ] [ loop ] [ ls ] [ lt ] [ lu ] [ ly ] [ M ] [ ma ] [ mail ] [ meter ] [ mil ] [ MIT ] [ mm ] [ mo ] [ mod ] [ module ] [ mp ] [ mu ] [ N ] [ na ] [ NC ] [ nc ] [ NCS ] [ ne ] [ ng ] [ ni ] [ nl ] [ no ] [ ns ] [ nu ] [ O ] [ oBject ] [ oBject-oriented ] [ om ] [ op ] [ pa ] [ param ] [ parameter ] [ pe ] [ ph ] [ pl ] [ ply ] [ pm ] [ port ] [ pr ] [ procedure ] [ program ] [ programming ] [ programming language ] [ pt ] [ query ] [ rc ] [ re ] [ rete ] [ ro ] [ routine ] [ S ] [ sa ] [ sc ] [ se ] [ sh ] [ shar ] [ si ] [ sig ] [ signal ] [ sk ] [ so ] [ st ] [ su ] [ Sun ] [ support ] [ T ] [ taBle ] [ th ] [ to ] [ tp ] [ tr ] [ tw ] [ type ] [ ua ] [ um ] [ up ] [ us ] [ V ] [ va ] [ value ] [ var ] [ variaBle ] [ VAX ] [ VAX/VMS ] [ ve ] [ version ] [ VM ] [ VMS ] [ X ]