An elementary derivation of the alternating bit protocol

  • W. H. J. Feijen
  • A. J. M. van Gasteren
  • Birgit Schieder
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1422)


The famous alternating bit protocol is an algorithm for transmitting a sequence of data through a so-called faulty channel, i.e. a channel that can lose or duplicate injected data. The established literature provides a wealth of treatments and plenty of a-posteriori correctness proofs of the protocol; derivations of the algorithm, however, are very rare. The prime purpose of this note is to provide such a derivation from first principles, using the theory of Owicki and Gries as the only tool for reasoning about parallel programs.


Program derivation multiprogramming the theory of Owicki and Gries multibounds faulty channels the alternating bit protocol 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [BSW69]
    K.A. Bartlett, R.A. Scantlebury, and P.T. Wilkinson. A note on reliable full-duplex transmission over half-duplex links. Communications of the ACM, 12(5): 260–261, 1969.CrossRefGoogle Scholar
  2. [Bro92]
    M. Broy. Functional Specification of Time Sensitive Communicating Systems. In Manfred Broy, editor, Proceedings of the NATO Advanced Study Institute on Programming and Mathematical Method, held at Marktoberdorf 1990, pages 325–367. Springer, Berlin Heidelberg, 1992.Google Scholar
  3. [CM88]
    K. Mani Chandy and Jayadev Misra. Parallel Program Design: A Foundation. Addison-Wesley, Amsterdam, 1988.Google Scholar
  4. [Dij82]
    Edsger W. Dijkstra. A Personal Summary of the Gries-Owicki Theory. In Selected Writings on Computing: A Personal Perspective. Springer-Verlag, New York, 1982.Google Scholar
  5. [DS90]
    Edsger W. Dijkstra and Carel S. Scholten. Predicate Calculus and Program Semantics. Springer-Verlag, New York, 1990.Google Scholar
  6. [FG97]
    W.H.J. Feijen and A.J.M. van Gasteren. On a Method for the Formal Design of Multiprograms. In Manfred Broy and Birgit Schieder, editors, Proceedings of the NATO Advanced Study Institute on Mathematical Methods in Program Development, held at Marktoberdorf 1996, pages 53–82. Springer-Verlag, Berlin Heidelberg, 1997.Google Scholar
  7. [Hoa69]
    C.A.R. Hoare. An Axiomatic Basis for Computer Programming. Communications of the ACM, 12(10): 576–580 and 583, October 1969.MATHCrossRefGoogle Scholar
  8. [Hoa78]
    C.A.R. Hoare. Communicating Sequential Processes. Communications of the ACM, 21(8): 666–677, 1978.MATHMathSciNetCrossRefGoogle Scholar
  9. [Mar81]
    A.J. Martin. An Axiomatic Definition of Synchronization Primitives. Acta Informatica, 16: 219–235, 1981.MATHCrossRefGoogle Scholar
  10. [Mar85]
    A.J. Martin. The probe: an addition to communication primitives. Information Processing Letters, 20: 125–130 and 21: 107, 1985.MATHMathSciNetCrossRefGoogle Scholar
  11. [Mil89]
    Robin Milner. Communication and Concurrency. Prentice-Hall International, UK, 1989.Google Scholar
  12. [Moe93]
    Perry D. Moerland. Exercises in Multiprogramming. Computing Science Notes 93/07, Department of Computing Science, Eindhoven University of Technology, 1993.Google Scholar
  13. [OG76]
    S. Owicki and D. Gries. An Axiomatic Proof Technique for Parallel Programs I. Acta Informatica, 6: 319–340, 1976.MathSciNetCrossRefGoogle Scholar
  14. [Schn97]
    F.B. Schneider. On Concurrent Programming. Graduate Texts in Computer Science. Springer, 1997.Google Scholar
  15. [vdSom94]
    F.W. van der Sommen. Multiprogram Derivations. Master's Thesis, Department of Computing Science, Eindhoven University of Technology, 1994.Google Scholar
  16. [vdSn95]
    Jan L.A. van de Snepscheut. The Sliding-Window Protocol Revisited. Formal Aspects of Computing, 7: 3–17, 1995.MATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • W. H. J. Feijen
    • 1
  • A. J. M. van Gasteren
    • 1
  • Birgit Schieder
    • 2
  1. 1.Department of Mathematics and Computing ScienceEindhoven University of TechnologyMB EindhovenThe Netherlands
  2. 2.Institut für InformatikTechnische Universität MünchenMünchenGermany

Personalised recommendations