Abstract
This paper discusses informal specifications of distributed programs, that is, programs that reside at nodes connected by a network. Such programs often have performance requirements, such as high availability and concurrency, that make it difficult to specify their behavior. These requirements often have an effect on the functional behavior of a program, forcing designers to change their initial expectations. In this paper we show how to give user-oriented specifications of the functional behavior of programs with such requirements. We propose a structure for specifications that distinguishes expected and desirable effects from undesirable ones. We believe that this distinction is an important one for both users and implementers of a system, and that it makes the specifications easier to understand. We illustrate our approach by giving example specifications of several distributed programs that have been described in the literature.
Similar content being viewed by others
References
Bernstein PA, Goodman N (1981) Concurrency control in distributed database systems. ACM Computing Surveys 13:185–221
Birrell AD et al. (1982) Grapevine: an exercise in distributed computing. CACM 25:260–274
Dijkstra EW (1976) A Discipline of Programming. Prentice-Hall, Englewood Cliffs, NJ
Eswaran KP, Gray JN, Lorie RA, Traiger IL (1976) The notions of consistency and predicate locks in a database system. Communications of the ACM 19:624–633
Fischer MJ, Michael A (1982) Sacrificing serializability to attain high availability of data in an unreliable network. Proceedings of the Symposium on Principles of Database Systems. ACM, March, 1982
Garcia-Molina H (1983) Using semantic knowledge for transaction processing in a distributed database. ACM Transactions on Database Systems 8:186–213
Gifford DK (1979) Weighted Voting for Replicated Data. Proceedings of the Seventh Symposium on Operating Systems Principles, ACM SIGOPS, Pacific Grove, CA, December 1979, pp 150–162
Guttag J, Horowitz E, Musser D (1978) Abstract data types and software validation. Communications of the ACM 21:1048–1064
Herlihy MP (1984) Replication methods for abstract data types. PhD thesis, MIT available as MIT/LCS/TR-319
Lamport L (1976) Towards a theory of correctness for multiuser data base systems. Technical Report CA-7610-0712, Massachusetts Computer Associates, October, 1976.
Lampson B (1981) Atomic transactions. In: Goos and Hartmanis (eds) Lecture Notes in Computer Science. Vol 105. Distributed Systems: Architecture and Implementation. Springer Berlin Heidelberg New York, pp 246–265
Liskov B et al. (1977) Abstraction mechanisms in CLU. CACM 20:564–576
Liskov B (1984) Overview of the Argus language and system. Programming Methodology Group Memo 40, MIT Laboratory for Computer Science
Liskov B, Berzins V (1976) An appraisal of program specifications. Computation Structures Group Memo 141, MIT Laboratory for Computer Science
Liskov B, Scheifler R (1983) Guardians and actions: linguistic support for robust, distributed programs. ACM Transactions on Programming Languages and Systems 5:381–404
Liskov B, Zilles SN (1974) Programming with abstract data types. Sigplan Notices Vol 9. Proceedings of the ACM SIG-PLAN Conference on Very High Level Languages, pp 50–59
Moss JEB (1981) Nested transactions: an approach to reliable distributed computing. PhD thesis, Massachusetts Institute of Technology Available as Technical Report MIT/LCS/TR-260
Owicki S, Lamport L (1982) Proving liveness properties of concurrent programs. ACM Transactions on Programming Languages and Systems 4:455–495
Reed DP (1978) Naming and synchronization in a decentralized computer system. PhD thesis, Massachusetts Institute of Technology Available as Technical Report MIT/LCS/TR-205
Schwarz P, Spector A (1984) Synchronizing shared abstract types. ACM Transactions on Computer Systems 2:223–250
Weihl WE (1984) Specification and implementation of atomic data types. PhD thesis, Massachusetts Institute of Technology Available as Technical Report MIT/LCS/TR-314
Weihl W, Liskov B (1985) Implementation of resilient, atomic data types. ACM Transactions on Programming Languages and Systems 7:244–269
Author information
Authors and Affiliations
Additional information
Barbara Liskov received the B.A. degree in mathematics from the University of California, Berkeley, and the M.S. and the Ph.D. degrees in computer science from Stanford University, Stanford, California.
From 1968 to 1972, she was associated with the Mitre Corporation, Bedford, MA., where she participated in the design and implementation of the Venus Machine and the Venus Operating System. In 1972, she joined the faculty at Massachusetts Institute of Technology, where she is currently Professor of Computer Science and Engineering. Her research and teaching interests include programming languages, programming methodology and distributed computing. Her work on data abstraction led to the development of the CLU programming language. At present, her research is concerned with distributed computing. She is developing a new programming language called Argus that supports the execution of robust distributed programs that survive hardware failures.
William Weihl received the S.B. degree in mathematics in 1979. the S.B. and S.M. degrees in computer science in 1980, and the Ph.D. degree in computer science in 1984, all from the Massachusetts Institute of Technology, Cambridge.
He is presently Assistant Professor of Computer Science and Engineering at the Massachusetts Institute of Technology. His research interests include distributed systems, programming methodology, programming languages, formal specifications, concurrency control, and faulttolerance.
This research was supported in part by the Advanced Research Projects Agency of the Department of Defense, monitored by the Office of Naval Research under contract N00014-83-K-1025, and in part by the National Science Foundation under grant DCR-8203486
Rights and permissions
About this article
Cite this article
Liskov, B., Weihl, W. Specifications of distributed programs. Distrib Comput 1, 102–118 (1986). https://doi.org/10.1007/BF01786229
Issue Date:
DOI: https://doi.org/10.1007/BF01786229