skip to main content
article
Free Access

An example of hierarchical design and proof

Published:01 December 1978Publication History
Skip Abstract Section

Abstract

Hierarchical programming is being increasingly recognized as helpful in the construction of large programs. Users of hierarchical techniques claim or predict substantial increases in productivity and in the reliability of the programs produced. In this paper we describe a formal method for hierarchical program specification, implementation, and proof. We apply this method to a significant list processing problem and also discuss a number of extensions to current programming languages that ease hierarchical program design and proof.

References

  1. 1 Boyer, R.S., and Moore, JS. Private communication, June 1977.Google ScholarGoogle Scholar
  2. 2 Boyer, R.S., and Moore, JS. A lemma driven automatic theorem prover for recursive function theory. Proc. Int. Joint Conf. Artificial Intelligence, Cambridge, Mass., Aug. 1977.Google ScholarGoogle Scholar
  3. 3 BurstaU, R.M. Proving properties of programs by structural induction. Comptr. J. 12, 1 (Jan. 1969), 41-48.Google ScholarGoogle ScholarCross RefCross Ref
  4. 4 Dalai, O.J., Mylirliaug, B., and Nygaard, K. Common base language, S-22. Norwegian Comptng. Ctr., Oslo, Norway, Oct. 1970.Google ScholarGoogle Scholar
  5. 5 Dahl, O.J., Dijkstra, E.W., and Hoare, C.A.R. Structured Programming. Academic Press, New York, 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Deutsch, L.P. An interactive program verifier. Ph.D. Th., Dept. of Comptr. Sci., U. of California, Berkeley, 1973.Google ScholarGoogle Scholar
  7. 7 Good, D.I. Provable programming. Proc. Int. Conf. Reliable Software, SIGPLAN Notices (ACM) 10, 6 (June 1975), 411-419. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 Guttag, J. Abstract data types and the development of data structures. Comm. ACM 20, 6 (June 1977), 396-404. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Hoare, C.A.R. Proof of correctness of data representations. A cta Informatica 1, 4 (1972), 271-281.Google ScholarGoogle Scholar
  10. 10 Hoare, C.A.R., and Wirth, N. An axiomatic definition of the programming language PASCAL. Acta lnformatica 2, 4 (1973), 335-355.Google ScholarGoogle Scholar
  11. 11 Ichbiah, J.D., et al. The system implementation language LIS. Tech. Rep. 4549, E/EN, Compagnie Internationale pour l'Informatique, Louveciennes, France, Dec. 1974.Google ScholarGoogle Scholar
  12. 12 Igarashi, S., London, R.L., and Luckham, D.C. Automatic program verification I: A logical basis and its implementation. Acta Informatica 1, 4 (1975), 145-182.Google ScholarGoogle Scholar
  13. 13 An appraisal of program specifications. Computation Structures. Group Memo 141-1, Lab. for Comptr. Sci., M.I.T., Cambridge, Mass., April 1977.Google ScholarGoogle Scholar
  14. 14 Liskov, B., and ZiUes, S. Programming with abstract data types. Proc. ACM SIGPLAN Conf. Very High Level Languages, SIGPLAN Notices (ACM) 9, 4 (April 1974), 50-59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 Liskov, B., and Zilles, S. Specification techniques for data abstraction. IEEE Trans. Software Eng. SE-1, 1 (March 1975), 7-19.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 McCarthy, J. A basis for a mathematical theory of computation. In Computer Programming and Formal Systems, Braffort and Hirschberg, Eds., North-Holland, Amsterdam, 1963, pp. 33-70.Google ScholarGoogle Scholar
  17. 17 McCarthy, J., et al. LISP 1.5 Programmer's Manual M.I.T. Press, Cambridge, Mass., 1962. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18 Manna, Z., Ness, S., and Vuillemin, J. Inductive methods for proving properties of programs. Comm. A CM 16, 8 (Aug. 1973), 491-502. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19 Moore, JS. The Interlisp virtual machine specification. Rep. CSL 76-5, Xerox Palo Alto Res. Ctr., Palo Alto, Calif., Sept. 1976.Google ScholarGoogle Scholar
  20. 20 -Morris, J. Protection in programming languages. Comm. A CM 16, 1 (Jan. 1973), 15-21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21 Morris, J.M. Types are not sets. Proc. ACM Symposium on Principles of Programming Languages, Boston, Mass., Oct. 1973, pp. 120-124. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 Neumann, P.G., et al. A provably secure operating'system: The system, its applications, and proofs. Final Rep., SRI Proj. 4332, SRI Int., Menlo Park, Calif., Feb. 1977.Google ScholarGoogle Scholar
  23. 23 Palme, J. Protected program modules in Simula 67. Res. Inst. of Nat. Defense, Stockholm, Sweden, July 1973.Google ScholarGoogle Scholar
  24. 24 Parnas, D.L. A technique for software module specification with examples. Comm. ACM 15, 5 (May 1972), 330-336. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25 Parnas, D.L. On the criteria to be used in decomposing systems into modules. Comm. ACM 15, 12 (Dec. 1972), 1053-1058. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26 Robinson, L., and Levitt, K.N. Proof techniques for hierarchically structured programs. Comm. ACM 20, 4 (April 1977), 271-283. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27 Robinson, L., et al. On attaining reliable software for a secure operating system. Proc. Int. Conf. Reliable Software, SIGPLAN Notices (ACM) 10, 6 (June 1975), 267-284. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28 Roubine, O., and Robinson, L. SPECIAL Reference Manual. Tech. Rep. CSL-45, SRI Project 4828, SRI Int., Menlo Park, Calif., 3rd ed., Jan. 1977.Google ScholarGoogle Scholar
  29. 29 Weghreit, B. The treatment of data types in EL 1. Comm. A CM 17, 5 (May 1974), 251-264. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30 Wegbreit, B., and Spitzen, J. M. Proving properties of complex data structures. J. ACM 23, 2 (April 1976), 389-396. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31 Wirth, N. Modula: A language for modular multiprogramming. Software--Practice and Experience 7 (1977), 3-35.Google ScholarGoogle ScholarCross RefCross Ref
  32. 32 Wulf, W.A. ALPHARD: Toward a language to support structured programs. Comptr. Sci. Dept., Carnegie-Mellon U., Pittsburgh, Pa., April 1974.Google ScholarGoogle Scholar
  33. 33 Yourdon, E., and Constantine, L.L. Structured Design. Yourdon Press, New York, 1975.Google ScholarGoogle Scholar

Index Terms

  1. An example of hierarchical design and proof

                  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 21, Issue 12
                    Dec. 1978
                    89 pages
                    ISSN:0001-0782
                    EISSN:1557-7317
                    DOI:10.1145/359657
                    Issue’s Table of Contents

                    Copyright © 1978 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 December 1978

                    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