Constraining interference in an object-based design method

  • C. B. Jones
Invited Survey
Part of the Lecture Notes in Computer Science book series (LNCS, volume 668)


This paper is the first of a series which are intended to contribute to tractable development methods for concurrent programs by exploring ways in which objectbased language concepts can be used to provide a compositional development method for concurrent programs. The property of a (formal) development method which gives the developmentprocess the potential for productivity is compositionality; interference is what makes it difficult to find compositional development methods for concurrent systems. This paper shows how object-based concepts can be used to provide a designer with control over interference; it also proposes a transformational style of development (for systems with limited interference) in which concurrency is introduced only in the final stages of design. The essential idea here is to show that certain object graphs limit interference.

A companion paper discusses the problems of interference more fully and shows how a suitable logic can be used to reason about those systems where interference plays an essential role. There again, concepts are used in the design notation which are taken from object-oriented languages since they offer control of granularity and way of pinpointing interference. A third paper is in preparation which defines the semantics of the object-based design notation.


Recursive Call Proof Theory Concurrent Program Proof Obligation Concurrent System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [AdB90]
    P. America and F. dc Boer. A proof system for process creation. In [BJ90], pages 303–332,1990.Google Scholar
  2. [Ame86]
    Pierre America. A proof theory for a sequential version of POOL. Technical Report 0188, Philips Research Laboratories, Philips Research Laboratories, Nederlandse Philips Bedrijven, B.V., September 1986.Google Scholar
  3. [Ame89]
    Pierre America. Issues in the design of a parallel object-oriented language. Formal Aspects of Computing, 1(4), 1989.Google Scholar
  4. [Ame91]
    P. America. Formal techniques for parallel object-oriented languages. In [BG91], pages 1–17, 1991.Google Scholar
  5. [AR89]
    Pierre America and Jan Rutten. A Parallel Object-Oriented Language: Design and Semantic Foundations. PhD thesis. Free University of Amsterdam, 1989.Google Scholar
  6. [AR92]
    Pierre America and Jan Rutten. A layered semantics for a parallel object-oriented language. Formal Aspects of Computing, 4(4):376–408, 1992.CrossRefGoogle Scholar
  7. [BF91]
    J. A. Bergstra and L. M. G. Feijs, editors. Algebraic Methods II: Theory Tools and Applications, volume 490 of Lecture Notes in Computer Science. Springer-Verlag, 1991.Google Scholar
  8. [BG91]
    J. C. M. Baeten and J. F. Groote, editors. CONCUR'91 — Proceedings of the 2nd International Conference on Concurrency Theory, volume 527 of Lecture Notes in Computer Science. Springer-Verlag, 1991.Google Scholar
  9. [BJ90]
    M. Broy and C. B. Jones, editors. Programming Concepts and Methods. North-Holland, 1990.Google Scholar
  10. [BSI92]
    BSI. VDM specification language protostandard. TechnicalReportN-231,BSIIST/5/19, 1992.Google Scholar
  11. [CLW79]
    K. M. Chung, F. Luccio, and C. K. Wong. A new permutation algorithm for bubble memories. Technical Report RC 7633, IBM Research Division, 1979.Google Scholar
  12. [CM88]
    K. M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1988.Google Scholar
  13. [Daw91]
    J. Dawes. The VDM-SL Reference Guide. Pitman, 1991.Google Scholar
  14. [dB91]
    Frank S. de Boer. Reasoning about Dynamically Evolving Process Structure. PhD thesis, Free University of Amsterdam, 1991.Google Scholar
  15. [GH93]
    J. V. Guttag and J. J. Homing. Larch: Languages and Tools for Formal Specification. Springer-Verlag, 1993.Google Scholar
  16. [GHW85]
    J. V. Guttag, J. J. Horning, and J. M. Wing. Larch in five easy pieces. Technical Report 5, DEC, SRC, July 1985.Google Scholar
  17. [HHJ+87]
    C. A. R. Hoare, I. J. Hayes, He Jifeng, C. C. Morgan, A. W. Roscoe, J. W. Sanders, I. H. Sørensen, J. M. Spivcy, and B. A. Sufrin. The laws of programming. Communications of the ACM, 30(8):672–687, August 1987. see Corrigenda in Communications of the ACM, 30(9): 770.CrossRefGoogle Scholar
  18. [JJLM91]
    C. B. Jones, K. D. Jones, P. A. Lindsay, and R. Moore. mural: A Formal Development Support System. Springer-Verlag, 1991.Google Scholar
  19. [Jon83]
    C. B. Jones. Specification and design of (parallel) programs. In Proceedings of IFIP'83, pages 321–332. North-Holland, 1983.Google Scholar
  20. [Jon90]
    C. B. Jones. Systematic Software Development using VDM. Prentice Hall International, second edition, 1990.Google Scholar
  21. [Jon91]
    C. B.Jones. Interference resumed. InP. Bailes, editor, Engineering Safe Software, pages 31–56. Australian Computer Society, 1991.Google Scholar
  22. [Jon92]
    C.B. Jones. An object-based design method for concurrent programs. Technical Report UMCS-92-12-1, Manchester University, 1992.Google Scholar
  23. [Jon93a]
    C. B. Jones. Giving semantics to an object-based design notation. In CONCUR'93, Lecture Notes in Computer Science. Springer-Verlag, 1993.Google Scholar
  24. [Jon93b]
    C. B. Jones. Reasoning about interference in an object-based design method. In FME'93, Lecture Notes in Computer Science. Springer-Verlag, 1993.Google Scholar
  25. [JPZ91]
    W. Janssen, M. Pocl, and J. Zwiers. Action systems and action refinement in the development of parallel systems. In [BG91], pages 298–316,1991.Google Scholar
  26. [KMMN91]
    B. B. Kristensen, O. L. Madsen, B. Møller-Pedersen, and K. Nygaard. Object oriented programming in the Beta programming language. Technical report, University of Oslo and others, September 1991.Google Scholar
  27. [Lam90]
    L. Lamport. A temporal logic of actions. Technical Report 57, Digital Equipment Corporation, Systems Research Center, 1990.Google Scholar
  28. [Lam91]
    L. Lamport. The temporal logic of actions. Technical Report 79, Digital, SRC, 1991.Google Scholar
  29. [Len82]
    C. Lcngauer. A Methodology for Programming with Concurrency. PhD thesis. Computer Systems Research Group, University of Toronto, 1982.Google Scholar
  30. [Lip75]
    R. J. Lipton. Reduction: A method of proving properties of parallel programs. Communications of the ACM, 12:717–721, 1975.CrossRefGoogle Scholar
  31. [Mil92]
    R. Milner. The polyadic π-calculus: A tutorial. In Logic and Algebra of Specification. Springer-Verlag, 1992.Google Scholar
  32. [Nel91]
    G. Nelson, editor. Systems Programming with Modula-3. Prentice Hall, 1991.Google Scholar
  33. [OA91]
    E.-R. Olderog and K. R. Apt. Using transformations to verify parallel programs. In [BF91], pages 55–82,1991.Google Scholar
  34. [PT91]
    S. PrehnandW. J. Toetenel, editors. VDM'91-Formal Software Development Methods. Proceedings of the 4th International Symposium of VDM Europe, Noordwijkerhout, The Netherlands, October 1991. Vol.1: Conference Contributions, volume 551 of Lecture Notes in Computer Science. Springer-Verlag, 1991.Google Scholar
  35. [RH86]
    A. W. Roscoe and C. A. R. Hoare. Laws of occam programming. Monograph PRG-53, Oxford University Computing Laboratory, Programming Research Group, February 1986.Google Scholar
  36. [Sar92]
    J. Sargeant. UFO — united functions and objects draft language description. Technical Report UMCS-92-4-3, Manchester University, 1992.Google Scholar
  37. [Stø90]
    K. Stølen. Development of Parallel Programs on Shared Data-Structures. PhD thesis, Manchester University, 1990. available as UMCS-91-1-1.Google Scholar
  38. [Stø91a]
    K. Stølen. A Method for the Development of Totally Correct Shared-State Parallel Programs. La [BG91], pages 510–525, 1991.Google Scholar
  39. [Stø91b]
    K. Stølen. An Attempt to Reason About Shared-State Concurrency in the Style of VDM. In [PT91], pages 324–342,1991.Google Scholar
  40. [Wo188]
    Mario I. Wolczko. Semantics of Object-Oriented Languages. PhD thesis, Department of Computer Science, University of Manchester, January 1988.Google Scholar
  41. [XH91]
    Qiwen Xu and Jifeng He. A theory of state-based parallel programming by refinement: Part I. In J. Morris, editor. Proceedings of The Fourth BCS-FACS Refinement Workshop. Springer-Verlag, 1991.Google Scholar
  42. [Xu92]
    Qiwen Xu. A Theory of State-based Parallel Programming. PhD thesis, Oxford University, 1992.Google Scholar
  43. [Yon90]
    Akinori Yonezawa, editor. ABCL: An Object-Oriented Concurrent System. MIT Press, 1990.Google Scholar
  44. [Zwi88]
    J. Zwiers. Compositionality, Concurrency and Partial Correctness: Proof theories for networks of processes, and their connections. PhD thesis, Technical University Eindhoven, 1988. available as LNCS 321, Springer-Verlag.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • C. B. Jones
    • 1
  1. 1.Department of Computer ScienceManchester UniversityUK

Personalised recommendations