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 d
ATa abstraction, similar to
Alphard. It introduced the
iterATor: a
coroutine yielding the elements of a d
ATa object, to be used as the sequence of values in a ' for' loop. A CLU program consists of separ
ATely compilable procedures,
clusters and iter
ATors, no nesting. A cluster is a module naming an abstract type and its oper
ATions, its internal represent
ATion and implement
ATion. Clusters and iter
ATors may be generic. Supplying actual constant values for the parameters instanti
ATes the
module. There are no
implicit type conversions. In a cluster, the explicit type conversions ' up' and ' down' change between the abstract type and the represent
ATion. There is a universal type ' any' , and a procedure force[] to check th
AT an object is a certain type. Objects may be mutable or
immutable.
Exceptions are raised using ' signal' and handled with ' except' .
Assignment is by sharing, similar to the sharing of d
ATa objects in
Lisp. Arguments are passed by
call-by-sharing, similar to
call-by-value, except th
AT the arguments are objects and can be changed only if they are mutable. CLU has
own variables 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) In addition suitable contents:
[ 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 ]