Abstraction Mechanisms in CLU CLU is a new programming language designed to support the use of abstractions in program construction. Work in programming methodology has led to the realization that three kinds of abstractions-procedural, control, and especially data abstractions-are useful in the programming process. Of these, only the procedural abstraction is supported well by conventional languages, through the procedure or subroutine. CLU provides, in addition to procedures, novel linguistic mechanisms that support the use of data and control abstractions. This paper provides an in troduction to the abstraction mechanisms in CLU. By means of programming examples, the utility of the three kinds of abstractions in program construction is illustrated, and it is shown how CLU programs may be written to use and implement abstractions. The CLU library, which permits incremental program development with complete type checking performed at compile time, is also discussed. CACM August, 1977 Liskov, B. Snyder, A. Atkinson, R. Schaffert, C. programming languages, data types, data abstractions, control abstractions, programming methodology, separate compilation 4.0 4.12 4.20 4.22 CA770804 JB December 28, 1977 7:49 AM 2319 4 2939 2480 4 2939 2594 4 2939 2709 4 2939 2868 4 2939 2939 4 2939 2939 4 2939 2941 4 2939 2972 4 2939 3155 4 2939 2204 5 2939 2558 5 2939 2939 5 2939 2939 5 2939 2939 5 2939 3031 5 2939 3105 5 2939 3148 5 2939 3150 5 2939 1471 6 2939 1860 6 2939 2060 6 2939 2625 6 2939 2632 6 2939 2704 6 2939 2817 6 2939 2842 6 2939 2865 6 2939 2868 6 2939 2939 6 2939 2939 6 2939 2939 6 2939 2939 6 2939 2940 6 2939 2941 6 2939 2943 6 2939 2958 6 2939 3068 6 2939 3073 6 2939 3073 6 2939 3148 6 2939