Programming Language - CLU


CLU

CLU - CLUster. 1974-1975. CLU is an object-oriented language of the
Pascal family designed to support data abstraction, similar to Alphard.
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, clusters
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 conversions. 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. Garbage collection is built in.
Exceptions 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 variables and multiple assignment.
TED (a text editor), R (a document formatter), SWIFT (an operating
system), and lp (a proof tool used for formal specification) have been
written in CLU.
"Abstraction and Specification in Program Development", Barbara Liskov
and John Guttag, McGraw-Hill, 1986. "CLU Reference Manual", Barbara Liskov
et al, LNCS 114, Springer 1981.
contact: Paul R. Johnson
ftp://pion.lcs.mit.edu/pub/clu/* - versions for Sun, VAX/VMS.
//ftp.lcs.mit.edu/pub/pclu/* - portable version, compiles to C
//ftp.is.titech.ac.jp/pub/clu2c/* - compiles to C
info: clu2c-report@is.titech.ac.jp

Comments, Experience, Additions

Next Language:   C+@


Language Search

 


Browse by Letter

A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z


CLU Programming Language
http://www.programming-languages.co.uk/clu.html
Large list of computer programming languages arranged alphabetically, with explanations.






©Copyright 2007 - Programming Languages