skip to main content
article
Free Access

Proof techniques for hierarchically structured programs

Published:01 April 1977Publication History
Skip Abstract Section

Abstract

A method for describing and structuring programs that simplifies proofs of their correctness is presented. The method formally represents a program in terms of levels of abstraction, each level of which can be described by a self-contained nonprocedural specification. The proofs, like the programs, are structured by levels. Although only manual proofs are described in the paper, the method is also applicable to semi-automatic and automatic proofs. Preliminary results are encouraging, indicating that the method can be applied to large programs, such as operating systems.

References

  1. 1 Dahl, O.J., et al. The SIMULA 67 common base language. Norwegian Comptng. Ctr., Oslo, 1968.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 Deutsch, L.P. An interactive program verifier. Ph.D. Th., U. of California, Berkeley, June 1973.]]Google ScholarGoogle Scholar
  3. 3 Dijkstra, E.W. Notes on structured programming. In Structured Programming, C.A.R. Hoare, Ed., Academic Press, New York, 1972.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 Dijkstra, E.W. Guarded commands, nondeterminacy, and formal derivation of programs. Comm. ACM 18, 8 (Aug. 1975), 453--457.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 Elspas, B., Levitt, K.N., and Waldinger, R.J. An interactive system for the verification of computer programs. Final Report, SRI Proj. 1891, Stanford Research Institute, Menlo Park, Calif., 1973.]]Google ScholarGoogle Scholar
  6. 6 Floyd, R.W. Algorithm 245. TREESORT 3. Comm. ACM, 7, 12 (Dec. 1964), 701.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 Floyd, R.W. Assigning meanings to programs. Mathematical Aspects of Computer Science 19, J.T. Schwartz, Ed., Amer. Math. Soc., Providence, R.I., 1967, pp. 19-32.]]Google ScholarGoogle Scholar
  8. 8 Good, D.I. Provable programming. Proc. Int. Conf. on Reliable Software, April 1975, pp. 411-419.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Good, D.I., London, R.L., and Bledsoe, W.W. An interactive program verification system. IEEE Trans. Software Eng. 1, 1 March 1975, 59-67.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 Hamilton, M., and Zeldin, S. Higher order software--a methodology for defining software. To appear in IEEE Trans. Software Eng.]]Google ScholarGoogle Scholar
  11. 11 Henderson, P., and Snowden, R.A. A tool for structured program development. Information Processing 74, North-Holland Pub. Co., Amsterdam, Aug. 1974, pp. 204-207.]]Google ScholarGoogle Scholar
  12. 12 Hoare, C.A.R. Procedures and parameters: an axiomatic approach. Symposium on Semantics of Algorithmic Languages, E. Engler, Ed., Springer-Verlag, 1971, pp. 102-116.]]Google ScholarGoogle ScholarCross RefCross Ref
  13. 13 Hoare, C.A.R. Proof of correctness of data representations. ACTA lnformatica 1 (1972), 271-281.]]Google ScholarGoogle Scholar
  14. 14 Hoare, C.A.R. Monitors: An operating system structuring concept. Comm. ACM 15, 10 (Oct. 1974), 549-557.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 Hoare, C.A.R., and Wirth, N. An axiomatic definition of the programming language PASCAL. Acta lnformatica 2 (1973), 335-355.]]Google ScholarGoogle Scholar
  16. 16 Ichbiah, J.D., Rissen, J.P., and H61iard, J.C. The two-level approach to data independent programming in the LIS system implementation language. Machine Oriented Higher Level Languages, B. van der Poel and H. Maarsen, Eds., North-Holland Pub. Co., Amsterdam, 1974.]]Google ScholarGoogle Scholar
  17. 17 Igarashi, S., London, R.L., and Luckham, D.C. Automatic program verification I: A logical basis and implementation. Acta Informatica 1, 4 (1975), 145-182.]]Google ScholarGoogle Scholar
  18. 18 King, J.C. A program verifier. Ph.D. Th., Carnegie-Mellon U., Pittsburgh, Pa., Sept. 1969.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19 Knuth, D. The Art of Computer Programming, Vol. 1: Fundamental Algorithms. Addison-Wesley, Reading, Mass., 1968.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20 Laventhal, M.S. Verifying programs which operate on data structures. Proc. 1975 Int. Conf. on Reliable Software, April 1975, pp. 420-426.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21 Liskov, B. Presentation in Toronto Workshop on Software Reliability, June 14-16, 1974.]]Google ScholarGoogle Scholar
  22. 22 Liskov, B., and Zilles, S. An approach to abstraction. Group Memo 88, MIT project MAC, Computation Structures, MIT, Cambridge, Mass., Sept. 1973.]]Google ScholarGoogle Scholar
  23. 23 London, R.L. Proof of algorithms: A new kind of certification (certification of algorithm 245, TREESORT 3). Comm. ACM 13, 6 (June 1970), 371-373.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24 Manna, Z., and Pnueli, A. Axiomatic approach to total correctness of programs. Acta Informatica 3, 3 (1974), 243-264.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25 Millen, J.K. Security kernel validation in practice. Presented at Proc. 5th Symp. on Operating Systems Principles, November 1975.]]Google ScholarGoogle Scholar
  26. 26 Mont-Reynaud, B., and Robinson, L. Documentation for specification handler. SRI Memo, Stanford Research Institute, Menlo Park, Calif., Nov. 1975.]]Google ScholarGoogle Scholar
  27. 27 Morse, A.P. A Theory of Sets. Academic Press, New York, 1965.]]Google ScholarGoogle Scholar
  28. 28 Naur, P., Ed. Revised report on the algorithmic language Algol 60. In Programming Languages and Systems, S. Rosen, Ed., McGraw-Hill, Englewood Cliffs, N.J., 1967, pp. 79-117.]]Google ScholarGoogle Scholar
  29. 29 Parnas, D.L. Information distribution aspects of design methodology. Information Processing 71, North-Holland Pub. Co., Amsterdam, 1972, pp. 339-344.]]Google ScholarGoogle Scholar
  30. 30 Parnas, D.L. A technique for module specification with examples. Comm. ACM 15, 5 (May 1972), 330-336.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31 Parnas, D.L. Response to detected errors in well-structured programs. Tech. Rep., Dept. of Comptr. Sci., Carnegie-Mellon U., Pittsburgh, Pa., July 1973.]]Google ScholarGoogle Scholar
  32. 32 Parnas, D.L., and Siewiorek, D.P. Use of the concept of transparency in the design of hierarchically structured systems. Comm. ACM 18, 7 (July 1975), 401-408.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 33 Price, W.R. Implications of a vertical memory mechanism for implementing protection in a family of operating systems. Ph.D. Th., Dept. of Comptr, Sci., Carnegie-Mellon U., Pittsburgh, Pa., June 1973.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. 34 Robinson, L. Hierarchical proof of TREESORT. SRI unpublished paper, Stanford Research Institute, Menlo Park, Calif., Nov. 1973.]]Google ScholarGoogle Scholar
  35. 35 Robinson, L. Specification and proof in problems of concurrency. Proc. Meeting on 20 years of Computer Science, Pisa, June 1975, pp. 69-83.]]Google ScholarGoogle Scholar
  36. 36 Robinson, L., and Holt, R.C. Formal specifications for solutions to synchronization problems. SRI Rep., Comptr. Sci. Group, Stanford Research Institute, Menlo Park, Calif., Nov. 1973.]]Google ScholarGoogle Scholar
  37. 37 Robinson, L., Levitt, K.N., Neumann, P.G., and Saxena, A.R. On attaining reliable software for a secure operating system. Proc. 1975 Int. Conf. on Reliable Software, April 1975, pp. 267- 284.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. 38 Schorre, D.V. Example of a module specification and implementation for automatic verification. Working Paper TM-5310, Systems Development Corp., Santa Monica, Calif., May 1974.]]Google ScholarGoogle Scholar
  39. 39 Spitzen, J.M., Levitt, K.N. and Robinson, L. An example of hierarchical design and proof. Submitted for publication.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. 40 Waldinger, R.J., and Levitt, K.N. Reasoning about programs. Artif. Intel. 5, 3 (Fall 1974), 235-316.]]Google ScholarGoogle ScholarCross RefCross Ref
  41. 41 Wegbreit, B. The treatment of data types in EL1. Comm. ACM 17, 5 (May 1974), 251-264.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. 42 Wirth, N. Program development by stepwise refinement. Comm. ACM 14 4 (April 1971), 221-227.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. 43 Wirth, N. The programming language PASCAL. Acta Informatica 1, 1 (1971), 35-63.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. 44 Wulf, W.A. ALPHARD: Toward a language to support structured programs. Unpublished paper, April 1974.]]Google ScholarGoogle Scholar

Index Terms

  1. Proof techniques for hierarchically structured programs
      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 4
        April 1977
        85 pages
        ISSN:0001-0782
        EISSN:1557-7317
        DOI:10.1145/359461
        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 April 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