Skip to main content

A hierarchical method for reasoning about distributed programming languages

  • Conference paper
  • First Online:
Higher Order Logic Theorem Proving and Its Applications (TPHOLs 1995)

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

Included in the following conference series:

Abstract

This paper presents a technique for specifying and reasoning about the operational semantics of distributed programming languages. We formalize the concept of “vertical stacking” of distributed systems, an extension of Joyce's, Windley's and Curzon's stacking methodologies for sequential systems and of the CLI “short stack” which stacks interpreters for object code, assembly code, and a high-level sequential language. We use a state transition model to account for the issues of atomicity, concurrency and nondeterminism at all levels in our stack. A correctness definition is given, which for each pair of adjacent language semantics and mappings between them, produces proof obligations corresponding to the correctness of the language implementation. We present an application of the method to a two-level stack: the microSR distributed programming language and a multi-processor instruction set, which is the target language for a compiler for microSR. We also present the development of a verified programming logic for microSR, using the same microSR semantic specification. The HOL system is used for the specification and the proofs.

This work was sponsored by ARPA under contract USN N00014-93-1-1322 with the Office of Naval Research and by the National Security Agency's UR Program.

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. M. Abadi and L. Lamport, The Existence of Refinement Mappings, Theoretical Computer Science, Vol. 82, pp.253–284, 1992.

    Google Scholar 

  2. G.R. Andrews and R.A. Olsson, The SR Programming Language: Concurrency in Practice, Benjamin/Cummings Publishing Company, Inc. Redwood City, CA, 1993.

    Google Scholar 

  3. W.R. Bevier, W.A. Hunt, J.S. Moore, and W.D. Young, An approach to systems verification, Journal of Automated Reasoning, 5 (1989) 411–428.

    Google Scholar 

  4. M. Chandy and J. Misra, Parallel Program Design: A Foundation of Programming Logic. Addison-Wesley Publishing Company, Inc. 1988.

    Google Scholar 

  5. P. Curzon, Deriving Correctness Properties of Compiled Code, in Higher Order Logic Theorem Proving and Its Applications, pp327–346, IFIP Transactions, A-20, North-Holland, 1993.

    Google Scholar 

  6. N. Francez, Program Verification, Addison-Wesley publishing Company Inc, England, 1992.

    Google Scholar 

  7. M. J. C. Gordon.: Mechanizing Programming Logics in Higher Order Logic. In: Current Trends in Hardware Verification and Automated Theorem Proving. Springer-Verlag, New York, 1989.

    Google Scholar 

  8. M. J. C. Gordon and T. F. Melham, Introduction to HOL: A theorem proving environment for higher order logic, Cambridge University Press, Cambridge, 1993.

    Google Scholar 

  9. P. V. Homeier and D. F. Martin, Trusworthy Tool for Trustworthy Programs: A Verified Conditional Generator, in Higher Order Logic Theorem Proving and Its Applications, No.859 in LNCS, pp269–284, Springer-Verlag, 1994.

    Google Scholar 

  10. J.J. Joyce, Totally Verified Systems: Linking verified software to verified hardware. In M. Leeser and G. Brown, Eds., Specification, Verification and synthesis: Mathematical Aspects, Springer-Verlag, 1989

    Google Scholar 

  11. A. U. Shankar, An Introduction to Assertional Reasoning for Concurrent Systems, ACM Computing Surveys, Vol.25, No.3, pp225–262, September 1993.

    Google Scholar 

  12. J. von Wright, J.Hekanaho, P. Luostarinen and T. Langbacka, Mechanising some Advanced Refinement Concepts, in Higher Order Logic Theorem Proving and Its Applications, pp307–326, IFIP Transactions, A-20, North-Holland, 1993.

    Google Scholar 

  13. P. J. Windley, A theory of generic interpreters, in Correct Hardware Design and Verification Method, No. 683 in LNCS, pp122–134, Springer-Verlag, 1993.

    Google Scholar 

  14. P. J. Windley, Specifying Instruction-Set Architectures in HOL: A Primer, in Higher Order Logic Theorem Proving and Its Applications, No.859 in LNCS, pp440–455, Springer-Verlag, 1994.

    Google Scholar 

  15. C. Zhang, R. Shaw, R. Olsson, K. Levitt, M. Archer, M.Heckman, and G. Benson, Mechanizing a Programming Logic for the Concurrent Programming Language microSR in HOL, in Higher Order Logic Theorem Proving and Its Applications, No.780 in LNCS, pp31–44, Springer-Verlag, 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

E. Thomas Schubert Philip J. Windley James Alves-Foss

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Zhang, C., Becker, B.R., Heckman, M.R., Levitt, K., Olsson, R.A. (1995). A hierarchical method for reasoning about distributed programming languages. In: Thomas Schubert, E., Windley, P.J., Alves-Foss, J. (eds) Higher Order Logic Theorem Proving and Its Applications. TPHOLs 1995. Lecture Notes in Computer Science, vol 971. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60275-5_78

Download citation

  • DOI: https://doi.org/10.1007/3-540-60275-5_78

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60275-0

  • Online ISBN: 978-3-540-44784-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics