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.
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 4 Dahl, O.J., Myhrhaug, B., and Nygaard, K. The SIMULA 67 common base language. Pub. S-22, Norwegian Comptng. Ctr., Oslo, 1970.]]Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 8 Hoare, C.A.R. Proof of correctness of data representations. Acta Informatica 4 (1972), 271-281.]]Google ScholarDigital Library
- 9 Knuth, D. The Art of Computer Programming, Vol. 3: Sorting and Searching. Addison Wesley, Reading, Mass., 1973. 576]] Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 13 Liskov, B.H., and Zilles, S.N. Specification techniques for data abstractions. IEEE Trans. Software Eng., SE-1 (1975), 7-19.]]Google ScholarDigital Library
- 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 Scholar
- 15 McCarthy, J., et al. LISP 1.5 Programmer's Manual. M.I.T. Press, Cambridge, Mass., 1962.]] Google ScholarDigital Library
- 16 Morris, J.H. Protection in programming languages. Comm. ACM 16, 1 (Jan. 1973), 15-21.]] Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 19 Spitzen, J., and Wegbreit, B. The verification and synthesis of data structures. Acta Informatica 4 (1975), 127-144.]]Google ScholarDigital Library
- 20 Standish, T.A. Data structures: an axiomatic approach. Rep. 2639, Bolt, Beranek and Newman, Cambridge, Mass., 1973.]]Google Scholar
- 21 Thomas, J.W. Module interconnection in programming systems supporting abstraction. Rep, CS-16, Comptr. Sci. Prog., Brown U., Providence, R. I., 1976.]]Google Scholar
- 22 Wirth, N. Program development by stepwise refinement. Comm. ACM 14, 4 (1971), 221-227.]] Google ScholarDigital Library
- 23 Wirth, N. The programming language PASCAL. Acta Informatica 1 (1971), 35-63.]]Google ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Abstraction mechanisms in CLU
Recommendations
Abstraction mechanisms in CLU
Proceedings of an ACM conference on Language design for reliable softwareCLU 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, ...
Abstraction mechanisms in CLU
Proceedings of an ACM conference on Language design for reliable softwareCLU 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, ...
Abstraction mechanisms in CLU
Proceedings of an ACM conference on Language design for reliable softwareCLU 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, ...
Comments