Abstract
Developing correct computer programs is a notoriously difficult task, which has attracted a significant intellectual effort over the past decades. One attractive methodology that has been proposed to tackle this problem consists of systems for program refinement, in which a calculus is given for transforming, often in a top-down manner, the specification of a computational task into a program implementing this specification (excellent introductions to refinement are Back and von Wright 1998 and Morgan 1994). Calculi for the refinement of sequential programs are by now a mature and well-established field. In this abstract, I wish to discuss some issues that arise when we try to develop a refinement calculus for distributed programs. This discussion is based on a joint project with Ron van der Meyden and Kai Engelhardt of the University of New South Wales, Sydney, Australia. Some insight into the technical aspects of the approach we are pursuing can be found in Engelhardt et al. 1998 and 2000 and in van der Meyden and Moses 2000.1 An obvious point to start a discussion of refinement for distributed programs is the sequential case. The subtlety and inherent complexity of distributed systems make the task of refinement for distributed programs much harder. The purpose of this abstract is to discuss, in an informal fashion, some of the distinctive issues that seem to play a role in this effort. The hope is that a discussion of these issues may contribute to other work on formal and algorithmic approaches to distributed computation.
Insights described here have been obtained as part of this joint work; any mistakes or misrepresentations are my own doing.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Attiya, C., Welch, J.L.: Distributed Computing: Fundamentals, Simulations and Advanced Topics. McGraw-Hill (1998)
Back, R. J., von Wright, J.: Refinement Calculus: A Systematic Introduction. Springer Verlag Graduate Texts in Comp. Sci. (1998)
Chou, C., Gafni, E.: Understanding and verifying distributed algorithms using stratified decomposition. Proc. 7th ACM PODC (1988) 44–65
Dijkstra, E.W.: A Discipline of Programming. Prentice Hall (1976)
Engelhardt, K., van der Meyden, R., and Moses, Y.: Knowledge and the logic of local propositions, Proc. 7th Conf. on Theor. Aspects of Reasoning about Knowledge (TARK), Gilboa, T. Ed., Morgan Kaufmann (1998) 29–42
Engelhardt, K., van der Meyden, R., and Moses, Y.: A program refinement framework supporting reasoning about knowledge an time. Foundations of Software Science and Computations Structures, Tjuryn J. Ed., Springer Verlag (2000) 114–129
Francez, N.: Distributed Termination. ACM Trans. Prog. Lang. and Syst., 2(1) (1980) 42–55
Gallager, R., Humblet, P., Spira, P.: A distributed algorithm for minimum-weight spanning trees. ACM Trans. on Prog. Lang. and Syst., 5(1) (1983) 66–77
Elrad, T., Francez, N.: Decomposition of distributed programs into communication-closed layers. Sci. Comp. Prog., 2(3) (1982) 155–173
Havelund, K., Larsen, K.G.: The fork calculus. Proc. 20th ICALP, LNCS 700 (1993) 544–557
Koo, R., Toueg, S.: Effects of message loss on termination of distributed protocols. Inf. Proc, Letters, 27 (1988) 181–188
Lynch, N.A.: Distributed Algorithms, Morgan Kaufmann Publishers (1996)
van der Meyden, R., Moses, Y.: On refinement and temporal annotations, this volume.
Morgan, C.: Programming from Specifications-2nd ed. Prentice Hall (1994)
Stomp, F., de Roever, W.P.: A principle for sequential reasoning about distributed systems. Form. Asp. Comp., 6(6) (1994) 716–737
Zweirs, J., Janssen, W.: Partial-order based design of concurrent systems. Proc. REX Symp. “ A decade of concurrency”, J. de Bakker, W. P. de Roever, G. Rozenberg eds., LNCS 803 (1994) 622–684
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Moses, Y. (2000). Issues in the Refinement of Distributed Programs. In: Joseph, M. (eds) Formal Techniques in Real-Time and Fault-Tolerant Systems. FTRTFT 2000. Lecture Notes in Computer Science, vol 1926. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45352-0_2
Download citation
DOI: https://doi.org/10.1007/3-540-45352-0_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41055-3
Online ISBN: 978-3-540-45352-9
eBook Packages: Springer Book Archive