skip to main content
article
Free Access

Abstraction mechanisms in CLU

Published:01 August 1977Publication History
Skip Abstract Section

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

  1. 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.]]Google ScholarGoogle Scholar
  2. 2 Allen, F.E. A program data flow analysis procedure. Rep. RC 5278, IBM Thomas J. Watson Res. Ctr., Yorktown Heights, N.Y., 1975.]]Google ScholarGoogle Scholar
  3. 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.]]Google ScholarGoogle Scholar
  4. 4 Dahl, O.J., Myhrhaug, B., and Nygaard, K. The SIMULA 67 common base language. Pub. S-22, Norwegian Comptng. Ctr., Oslo, 1970.]]Google ScholarGoogle Scholar
  5. 5 DeRemer, F., and Kron, H. Programming-in-the-large versus programming-in-the-small. Proc. Int. Conf. on Reliable Software, SIGPLAN Notices 10, 6 (June 1975), 114-121.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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.]]Google ScholarGoogle Scholar
  8. 8 Hoare, C.A.R. Proof of correctness of data representations. Acta Informatica 4 (1972), 271-281.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Knuth, D. The Art of Computer Programming, Vol. 3: Sorting and Searching. Addison Wesley, Reading, Mass., 1973. 576]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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.]]Google ScholarGoogle Scholar
  11. 11 Lampson, B.W. Protection. Proc. Fifth Annual Princeton Conf. on Inform. Sci. and Syst., Princeton U., Princeton, N.J., 1971, pp. 437-443.]]Google ScholarGoogle Scholar
  12. 12 Liskov, B .H., and Zilles, S .N. Programming with abstract data types. Proc. ACM SIGPLAN Conf. on Very High Level Languages, SIGPLAN Notices 9, 4 (April 1974), 50-59.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 Liskov, B.H., and Zilles, S.N. Specification techniques for data abstractions. IEEE Trans. Software Eng., SE-1 (1975), 7-19.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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.]]Google ScholarGoogle Scholar
  15. 15 McCarthy, J., et al. LISP 1.5 Programmer's Manual. M.I.T. Press, Cambridge, Mass., 1962.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 Morris, J.H. Protection in programming languages. Comm. ACM 16, 1 (Jan. 1973), 15-21.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17 Parnas, D.L. Information distribution aspects of design methodology. Information Processing 71, Vol. 1, North-Holland Pub. Co., Amsterdam, 1972, pp. 339-344.]]Google ScholarGoogle Scholar
  18. 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.]]Google ScholarGoogle Scholar
  19. 19 Spitzen, J., and Wegbreit, B. The verification and synthesis of data structures. Acta Informatica 4 (1975), 127-144.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20 Standish, T.A. Data structures: an axiomatic approach. Rep. 2639, Bolt, Beranek and Newman, Cambridge, Mass., 1973.]]Google ScholarGoogle Scholar
  21. 21 Thomas, J.W. Module interconnection in programming systems supporting abstraction. Rep, CS-16, Comptr. Sci. Prog., Brown U., Providence, R. I., 1976.]]Google ScholarGoogle Scholar
  22. 22 Wirth, N. Program development by stepwise refinement. Comm. ACM 14, 4 (1971), 221-227.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23 Wirth, N. The programming language PASCAL. Acta Informatica 1 (1971), 35-63.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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.]]Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Abstraction mechanisms in CLU
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image Communications of the ACM
      Communications of the ACM  Volume 20, Issue 8
      Aug. 1977
      74 pages
      ISSN:0001-0782
      EISSN:1557-7317
      DOI:10.1145/359763
      Issue’s Table of Contents

      Copyright © 1977 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 August 1977

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader