skip to main content
article
Open Access

Specification of Abstract Data Types in Modula

Authors Info & Claims
Published:01 October 1980Publication History
Skip Abstract Section

Abstract

The programming language MODULA is extended to permit the formal specification of the structure and functional capabilities of modules. This makes true hierarchical programming possible in MODULA by allowing programmers of higher level parts of a system to ignore completely the internal structure of lower level modules and to rely entirely on the specifications of the capabilities of these modules. An example is included to illustrate this technique. We show that our specification mechanisms are sufficiently powerful to support formal verification rules for modules that have disjoint representations for abstract objects.

References

  1. 1 BARNARD, D.T., ELLIOT, W.D., AND THOMPSON, D.H. Euclid and Modula. SIGPLAN Notices (March 1978), 70-84.]] Google ScholarGoogle Scholar
  2. 2 BRADSHAW, F.T., AND ERNST, G.W. Formal specifications of a layer in a fde system. Rep. No. ESCI-79-1, Computer Engineering Dep., Case Western Reserve Univ., Cleveland, 1979.]]Google ScholarGoogle Scholar
  3. 3 CARTWRIaHT, R., AND OPPEN, D. Unrestricted procedure calls in Hoare's logic. In Proc. 5th ACM Principles of Programming Languages, 1978, pp. 131-140.]] Google ScholarGoogle Scholar
  4. 4 I)AHL, D.J., MYHRHAUG, B., AND NYGAARD, K. The Simula 67 Common Base Language. Norwegian Computing Center, Oslo, 1970.]]Google ScholarGoogle Scholar
  5. 5 DIJKSTRA, E. Notes on structured programming. In Structured Programming, O.J. Dahl et al., Eds., Academic Press, New York, 1972.]] Google ScholarGoogle Scholar
  6. 6 ERNST, G.W. Rules of inference for procedure calls. Acta Inf. (1977), 145-152.]]Google ScholarGoogle Scholar
  7. 7 FLON, L., AND MISRA, J. A unified approach to the specification and verification of abstract data types. In Proc. Specifications of Reliable Software Conf., IEEE Computer Society, 1979.]]Google ScholarGoogle Scholar
  8. 8 FLOYD, R.W. Assigning meanings to programs. In Proc. Applied Mathematics, Vol. 19, American Math. Society, Providence, R.I., 1967, pp. 19-32.]]Google ScholarGoogle Scholar
  9. 9 GRIE~, D., AND LEWN, G. A procedure call proof rule (with a simple explanation). Rep. TR79- 379, Dep. Computer Science, Cornel} Univ., Ithaca, N.Y., 1979.]]Google ScholarGoogle Scholar
  10. 10 HOARE, C.A.R. An axiomatic basis for computer programming. Comm. ACM 12, 10 (Oct. 1969), 576-582.]] Google ScholarGoogle Scholar
  11. 11 HOARE, C.A.R. Proof of correctness of data representations. Acta Inf. (1972), 271-281.]]Google ScholarGoogle Scholar
  12. 12 HOOKWAY, R.J. Verification of Data Abstractions whose Realization Shares Storage. Ph.D. dissertation, Computer Engineering and Science Dep., Case Western Reserve Univ., Cleveland, May 1980.]] Google ScholarGoogle Scholar
  13. 13 HOOKWAY, R.J., AND ERNST, G.W. A program verification system, in Proc. ACM Annual Conf., 1976.]] Google ScholarGoogle Scholar
  14. 14 JENSEN, K., AND W~RTH, N. Pascal User Manual and Report, Springer-Verlag, New York, 1976.]] Google ScholarGoogle Scholar
  15. 15 LAMPSON, B.W., HORNING, J.J., LONDON, R.L., MITCHELL, J.G., AND POPEK, G.J. Report on programming language Euclid. SIGPLAN Notices (Feb. 1977), 1-79.]] Google ScholarGoogle Scholar
  16. 16 LISKOV, B., SNYDER, A., ATKINSON, R., AND SCHAFFERT, C. Abstraction mechanisms in CLU. Comm. ACM 20, 10 (Aug. 1977), 564-577.]] Google ScholarGoogle Scholar
  17. 17 LONDON, R.L., GUTTAG, J.V., HORNING, J.J., LAMPSON, B.W., MITCHELL, J.G., AND POPEK, G.J. Proof rules for the programming language Euclid. Acta Inf. 10 (1978), 1-26.]]Google ScholarGoogle Scholar
  18. 18 NAVLAKHA, J.K. A syntax directed program verification system. Rep. No. ECIS-77-3, Computer Engineering Dep., Case Western Reserve Univ., Cleveland, Feb. 1978.]]Google ScholarGoogle Scholar
  19. 19 PARNAS, D.L. On the criteria to be used in decomposing systems into modules. Comm. ACM 17, 12 (Dec. 1972), 1053-1058.]] Google ScholarGoogle Scholar
  20. 20 STAY, J.F. HIPO and integrated program design. IBM Syst. J. 15, 2 (1976), 143-154.]]Google ScholarGoogle Scholar
  21. 21 WiR?H, N. Modula: A language for modular multiprogramming. Software--Practice and Experience (Jan. 1977), 3-35.]]Google ScholarGoogle Scholar
  22. 22 WULF, W.A., LONDON, R.L., AND SHAW, M. An introduction to the construction and verification of Alphard programs. IEEE Trans. Softw. Eng. (Dec. 1976), 253-264.]]Google ScholarGoogle Scholar

Index Terms

  1. Specification of Abstract Data Types in Modula

      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 ACM Transactions on Programming Languages and Systems
        ACM Transactions on Programming Languages and Systems  Volume 2, Issue 4
        Oct. 1980
        131 pages
        ISSN:0164-0925
        EISSN:1558-4593
        DOI:10.1145/357114
        Issue’s Table of Contents

        Copyright © 1980 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 October 1980
        Published in toplas Volume 2, Issue 4

        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