ACM Home Page
Please provide us with feedback. Feedback
Abstraction mechanisms in CLU
Full text PdfPdf (1.43 MB)
Source
Communications of the ACM archive
Volume 20 ,  Issue 8  (August 1977) table of contents
Pages: 564 - 576  
Year of Publication: 1977
ISSN:0001-0782
Authors
Barbara Liskov  Massachusetts Institute of Technology, Cambridge
Alan Snyder  Massachusetts Institute of Technology, Cambridge
Russell Atkinson  Massachusetts Institute of Technology, Cambridge
Craig Schaffert  Massachusetts Institute of Technology, Cambridge
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 97,   Citation Count: 249
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/359763.359789
What is a DOI?

ABSTRACT

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


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Allen, F.E., and Cocke, J. A catalogue of optimizing transformations. Rep. RC 3548. IBM Thomas J. Watson Res. Ctr., Yorktown Heights, N.Y., 1971.
 
2
Allen, F.E. A program data flow analysis procedure. Rep. RC 5278, IBM Thomas J. Watson Res. Ctr., Yorktown Heights, N.Y., 1975.
 
3
Atkinson, R.R. Optimization techniques for a structured programming language. S.M. Th., Dept. of Electr. Eng. and Comptr. Sci., M.I.T., Cambridge, Mass., June 1976.
 
4
Dahl, O.J., Myhrhaug, B., and Nygaard, K. The SIMULA 67 common base language. Pub. S-22, Norwegian Comptng. Ctr., Oslo, 1970.
5
 
6
Dijkstra, E.W. Notes on structured programming. Structured Programming, A .P.I.C. Studies in Data Processing No. 8, Academic Press, New York, 1972, pp. 1-81.
 
7
Gunag, J.V., Horowitz, E., and Mussel D.R. Abstract data types and software validation. Rep ISI/RR-76-48, Inform. Sci. Inst., U. of Southern California, Marina del Rey, Calif., Aug. 1976.
 
8
Hoare, C.A.R. Proof of correctness of data representations. Acta Informatica 4 (1972), 271-281.
 
9
 
10
Laboratory for Computer Science Progress Report 1974-1975. Comput. Structures Group. Rep. PR-XII, Lab. for Comptr. Sci., M.I .T. To be published.
 
11
Lampson, B.W. Protection. Proc. Fifth Annual Princeton Conf. on Inform. Sci. and Syst., Princeton U., Princeton, N.J., 1971, pp. 437-443.
12
 
13
Liskov, B.H., and Zilles, S.N. Specification techniques for data abstractions. IEEE Trans. Software Eng., SE-1 (1975), 7-19.
 
14
Liskov, B.H., and Berzins, V. An appraisal of program specifications. Comput. Structures Group Memo 141, Lab. for Comptr. Sci., M.I.T., Cambridge, Mass., July 1976.
 
15
16
 
17
Parnas, D.L. Information distribution aspects of design methodology. Information Processing 71, Vol. 1, North-Holland Pub. Co., Amsterdam, 1972, pp. 339-344.
 
18
Scheifler, R.W. An analysis of inline substitution for the CLU programming language. Comput. Structures Group Memo 139, Lab. for Comptr. Sci., M.I.T., Cambridge, Mass., June 1976.
 
19
Spitzen, J., and Wegbreit, B. The verification and synthesis of data structures. Acta Informatica 4 (1975), 127-144.
 
20
Standish, T.A. Data structures: an axiomatic approach. Rep. 2639, Bolt, Beranek and Newman, Cambridge, Mass., 1973.
 
21
Thomas, J.W. Module interconnection in programming systems supporting abstraction. Rep, CS-16, Comptr. Sci. Prog., Brown U., Providence, R. I., 1976.
22
 
23
Wirth, N. The programming language PASCAL. Acta Informatica 1 (1971), 35-63.
 
24
Wulf, W.A., London, R., and Shaw, M. An introduction to the construction and verification of Alphard programs. IEEE Trans. Software Eng. SE-2 (1976), 253-264.

CITED BY  249

Collaborative Colleagues:
Barbara Liskov: colleagues
Alan Snyder: colleagues
Russell Atkinson: colleagues
Craig Schaffert: colleagues