H ? « »

Language peer sets for CLU:
United States
United States/1974
Designed 1974
1970s languages
Fourth generation
High Cold War
Genus Pascals
Multi-purpose
Pascals
Wirth Algols
Generation of Algol 60
Pascals/1974
Wirth Algols/1974
Generation of Algol 60/1974
Pascals/United States
Wirth Algols/United States
Generation of Algol 60/United States
Multi-purpose
Multi-purpose/1974
Multi-purpose/us

CLU (637/clu001)

CLUster  programming language - abstractions and iterators 

alternate simple view
Country: United States
Designed 1974
Published: 1974
Genus: Pascals
Sammet category: Multi-purpose


for 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.


People:
Structures:
Related languages
Alphard CLU   Influence
MDL CLU   Written using
Pascal CLU   Based on
VERS CLU   Influence
CLU Argus   Evolution of
CLU ASBAL   Derivation of
CLU CAMIL   Influence
CLU Capsule   Influence
CLU CCLU   Extension of
CLU Cluster 86   Influence
CLU HERAKLIT   Incorporated some features of
CLU Larch/CLU   Spec written in
CLU LIMBO   Incorporated some features of
CLU MODEL   Influence
CLU PLAIN   Influence
CLU Ruby   Influence
CLU Sather   Influence
CLU VAL   Based on
CLU XE   Adaptation of

Samples:

References:
  • Liskov, B., A Note on CLU, Computation Structures (1974) Liskov, B., A Note on CLU, Computation Structures Group Memo 112, MIT Project MAC, Cambridge, Mass. (Nov. 1974).
  • Horning, J. J. (1976) Horning, J. J. "Some desirable properties of data abstraction facilities" pp60-62 Abstract DOI Extract: Euclid Modules Extract: Modules as Abstraction Mechanisms
          in [SIGPLAN] (1976) SIGPLAN Notices 11(02) February 1976 also Proceedings of the SIGPLAN '76 Conference on Data: Abstraction, Definition and Structure, Salt Lake City, Utah, USA, March 22-24, 1976
  • Foster, J. (1977) Foster, J. M. and Foster, P. D. Abstract data and functors pp161-167
          in [Proceedings] (1977) Proceedings of the Strathclyde ALGOL 68 conference Glasgow, Scotland 1977
  • Liskov, Barbara; Snyder, Alan; Atkinson, Russell; (1977) Liskov, Barbara; Snyder, Alan; Atkinson, Russell; Schaffert, Craig "Abstraction mechanisms in CLU" Abstract DOI
          in [ACM] (1977) [ACM] CACM 20(08) (Aug 1977)
  • Atkinson, Russell R.; Liskov, Barbara H.; Scheifle (1978) Atkinson, Russell R.; Liskov, Barbara H.; Scheifler, Robert W. "Aspects Of Implementing CLU" pp123-129 Abstract
          in [Proceedings] (1978) Proceedings of the 1978 annual conference 1978, Washington, D.C., United States
  • Sammet, Jean E (1978) Sammet, Jean E "Roster of programming languages for 1976-77" pp56-85
          in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
  • B. Liskov, R. R. Atkinson, T. Bloom, E. B. Moss, R (1979) B. Liskov, R. R. Atkinson, T. Bloom, E. B. Moss, R. Schaffert and A. Snyder "CLU REFERENCE MANUAL" MIT/LCS/TR-225 October 1979 Abstract Online copy Extract: History of CLU Extract: Modules
          in [SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978
  • Samet, P. (1979) Samet, P. A. review of Atkinson et al 1978 (CLU) Abstract
          in (1979) ACM Computing Reviews 20(11) November 1979
  • Liskov, Barbara et al; (1981) Liskov, Barbara et al; "CLU Reference Manual", LNCS 114, Springer 1981
          in (1979) ACM Computing Reviews 20(11) November 1979
  • Steensgaard-Madsen, J. (1981) Steensgaard-Madsen, J. " Statement-Oriented Approach to Data Abstraction" pp1-10 Extract: Introduction
          in (1981) TOPLAS 3(1) January 1981
  • Spector, David (1982) Spector, David "Ambiguities and insecurities in Modula-2" pp43-51 Extract: Introduction
          in [SIGPLAN] (1982) SIGPLAN Notices 17(08) August 1982
  • Gries, D. and J. Prins (1985). (1985) Gries, D. and J. Prins (1985). "A new notion of encapsulation." Abstract
          in [LIPE 1985] (1985) SIGPLAN Notices 20(07) July 1985 (Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments)
  • Liskov, Barbara and Guttag, John (1986) Liskov, Barbara and Guttag, John "Abstraction and Specification in Program Development", McGraw-Hill, 1986.
          in [LIPE 1985] (1985) SIGPLAN Notices 20(07) July 1985 (Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments)
  • LIskov Barbara (1996) LIskov Barbara "The History of CLU" ps Abstract Extract: Introduction Extract: Data Abstraction
          in [HOPL II] (1993) [ACM SIGPLAN] SIGPLAN Notices 28(03) March 1993 The second ACM SIGPLAN conference on History of programming languages (HOPL II)
  • (2002) Library of Congress Subject Headings C24
          in [HOPL II] (1993) [ACM SIGPLAN] SIGPLAN Notices 28(03) March 1993 The second ACM SIGPLAN conference on History of programming languages (HOPL II)
    Resources
    Search in: Google  Google scholar  World Cat  Yahoo  Overture  DBLP  Monash bib  NZ  IEEE  ACM portal  CiteSeer  CSB  ncstrl  jstor  Bookfinder