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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
M. Abadi and L. Lamport, The Existence of Refinement Mappings, Theoretical Computer Science, Vol. 82, pp.253–284, 1992.
G.R. Andrews and R.A. Olsson, The SR Programming Language: Concurrency in Practice, Benjamin/Cummings Publishing Company, Inc. Redwood City, CA, 1993.
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.
M. Chandy and J. Misra, Parallel Program Design: A Foundation of Programming Logic. Addison-Wesley Publishing Company, Inc. 1988.
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.
N. Francez, Program Verification, Addison-Wesley publishing Company Inc, England, 1992.
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.
M. J. C. Gordon and T. F. Melham, Introduction to HOL: A theorem proving environment for higher order logic, Cambridge University Press, Cambridge, 1993.
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.
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
A. U. Shankar, An Introduction to Assertional Reasoning for Concurrent Systems, ACM Computing Surveys, Vol.25, No.3, pp225–262, September 1993.
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.
P. J. Windley, A theory of generic interpreters, in Correct Hardware Design and Verification Method, No. 683 in LNCS, pp122–134, Springer-Verlag, 1993.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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