A History of CLU
Laboratory for Computer Science
Massachusetts Institute of Technology
Cambridge, MA 02139
Table of Contents
The idea of a data abstraction has had a significant impact on the development of programming
languages and on programming methodology. CLU was the first implemented programming language to
provide direct linguistic support for data abstraction. This paper provides a history of data abstraction and
CLU. CLU contains a number of other interesting and influential features, including its exception handling
mechanism, its iterators, and its parameterized types.
The idea of a data abstraction arose from work on programming methodology. It has had a significant
impact on the way modern software systems are designed and organized and on the features that are
provided in modern programming languages. In the early and mid l970’s, it led to the development of new
programming languages, most notably CLU and Alphard. These language designs were undertaken to
flesh out the idea and to provide direct support for new techniques for developing software.
This paper provides a history of CLU and data abstraction. CLU provides linguistic support for data
abstraction; it was the first implemented language to do so. In addition, it contains a number of other
interesting and influential features, including its exception handling mechanism, its iterators, and its
1This research was supported in part by the Advanced Research Projects Agency of the Department of Defense, monitored by
the Office of Naval Research under contract N00014-89-J-1988, in part by the National Science Foundation under Grant
CCR-8822158, and in part by the NEC Corporation of Tokyo, Japan.
A History of CLU
The paper is organized as follows. Section 2 describes the work that