Sort: Oldest first
-
(CLUster) An object-oriented programming languagedeveloped at MIT by Liskov et al in 1974-1975.CLU is an object-oriented language of the Pascal familydesigned to support data abstraction, similar to Alphard.It introduced the iterator: a coroutine yielding theelements of a data object, to be used as the sequence ofvalues in a for loop.A CLU program consists of separately compilable procedures,clusters and iterators, no nesting. A cluster is a modulenaming an abstract type and its operations, its internalrepresentation and implementation. Clusters and iterators maybe generic. Supplying actual constant values for theparameters instantiates the module.There are no implicit type conversions. In a cluster, theexplicit type conversions 'up' and 'down' change between theabstract type and the representation. There is a universaltype 'any', and a procedure force[] to check that an object isa certain type. Objects may be mutable or immutable.Exceptions are raised using 'signal' and handled with'except'. Assignment is by sharing, similar to the sharingof data objects in Lisp. Arguments are passed bycall-by-sharing, similar to call-by-value, except that thearguments are objects and can be changed only if they aremutable. CLU has own variables and multiple assignment.CLU was one of Kamin's interpreters. clu2c compiled CLU toC. Concurrent CLU was an extension designed to supportparallel proceses.["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/).
By Denis Howe