Skip to main content

Modular program construction using abstractions

  • Program Specifications
  • Conference paper
  • First Online:
Abstract Software Specifications

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 86))

Abstract

A programming methodology is presented in which modular decomposition is based on recognition of useful abstractions. Two kinds of abstractions are used, procedural abstractions and data abstractions. Decomposition is carried out during a design phase that takes place before implementation begins. The design is documented by a graph showing the relationship among abstractions and by (informal) specifications of each abstraction.

The methodology is illustrated by means of a fairly large example. The design of a simplified text formatter. An implementation of the text formatter is included in the Appendix.

This 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-75-C-0661, and in part by the National Science Foundation under grant MCS 74-21892 A01.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. E. W. Dijkstra. Notes on structured programming. Structured Programming, A.P.I.C. Studies in Data Processing No. 8, Academic Pres, New York 1972, 1–81.

    Google Scholar 

  2. N. Wirth. Program development by stepwise refinement. Comm. of the ACM 14, 4 (April 1971), 221–227.

    Article  Google Scholar 

  3. D. L. Parnas. Information distribution aspects of design methodology. Information Processing 71, Vol. 1, North-Holland Pub. Co., Amsterdam 1972, 339–344.

    Google Scholar 

  4. D. L. Parnas. Response to Detected Errors in Well-Structured Programs. Dept of Computer Science. Carnegie Mellon University, Pittsburgh, Pa., July 1972.

    Google Scholar 

  5. C. A. R. Hoare. Proof of correctness of data representations. Acta Informatica 4 (1972), 271–281.

    Article  Google Scholar 

  6. W. A. Wulf, R. London, and M. Shaw. An introduction to the construction and verification of Alphard programs. IEEE Trans. on Software Engineering, SE-2 (1976), 253–264.

    Google Scholar 

  7. V. Berzins. Abstract Model Specifications for Data Abstractions. Technical Report LCS/TR-221, Laboratory for Computer Science, M.I.T., Cambridge, Mass., July 1979.

    Google Scholar 

  8. G. J. Myers. Reliable Software Through Composite Design. Petrocelli/Charter, New York, N. Y., 1975.

    Google Scholar 

  9. E. Yourdon. Techniques of Program Structure and Design. Prentice-Hall, Inc., Englewood Cliffs, N. J., 1975.

    Google Scholar 

  10. B. Liskov, A. Snyder, R. Atkinson, and C. Schaffert. Abstraction mechanisms in CLU. Comm. of the ACM 20, 8 (August 1977), 564–576.

    Article  Google Scholar 

  11. B. Liskov, E. Moss, C. Schaffert, R. Scheifler, and A. Snyder. CLU Reference Manual. Computation Structures Group Memo 161, Laboratory for Computer Science, M.I.T., Cambridge, Mass., July 1978.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Dines Bjøorner

Rights and permissions

Reprints and permissions

Copyright information

© 1980 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Liskov, B. (1980). Modular program construction using abstractions. In: Bjøorner, D. (eds) Abstract Software Specifications. Lecture Notes in Computer Science, vol 86. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-10007-5_43

Download citation

  • DOI: https://doi.org/10.1007/3-540-10007-5_43

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-10007-2

  • Online ISBN: 978-3-540-38136-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics