Skip to main content

Issues in the Refinement of Distributed Programs

(Invited Talk)

  • Conference paper
  • First Online:
Formal Techniques in Real-Time and Fault-Tolerant Systems (FTRTFT 2000)

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

  • 379 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Attiya, C., Welch, J.L.: Distributed Computing: Fundamentals, Simulations and Advanced Topics. McGraw-Hill (1998)

    Google Scholar 

  • Back, R. J., von Wright, J.: Refinement Calculus: A Systematic Introduction. Springer Verlag Graduate Texts in Comp. Sci. (1998)

    Google Scholar 

  • Chou, C., Gafni, E.: Understanding and verifying distributed algorithms using stratified decomposition. Proc. 7th ACM PODC (1988) 44–65

    Google Scholar 

  • Dijkstra, E.W.: A Discipline of Programming. Prentice Hall (1976)

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Francez, N.: Distributed Termination. ACM Trans. Prog. Lang. and Syst., 2(1) (1980) 42–55

    Article  MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • Elrad, T., Francez, N.: Decomposition of distributed programs into communication-closed layers. Sci. Comp. Prog., 2(3) (1982) 155–173

    Article  MATH  Google Scholar 

  • Havelund, K., Larsen, K.G.: The fork calculus. Proc. 20th ICALP, LNCS 700 (1993) 544–557

    Google Scholar 

  • Koo, R., Toueg, S.: Effects of message loss on termination of distributed protocols. Inf. Proc, Letters, 27 (1988) 181–188

    Google Scholar 

  • Lynch, N.A.: Distributed Algorithms, Morgan Kaufmann Publishers (1996)

    Google Scholar 

  • van der Meyden, R., Moses, Y.: On refinement and temporal annotations, this volume.

    Google Scholar 

  • Morgan, C.: Programming from Specifications-2nd ed. Prentice Hall (1994)

    Google Scholar 

  • Stomp, F., de Roever, W.P.: A principle for sequential reasoning about distributed systems. Form. Asp. Comp., 6(6) (1994) 716–737

    MATH  Google Scholar 

  • 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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics