Correct Transformational Design of Concurrent Search Structures

  • Uwe Nestmann
  • Martin Steffen
Part of the The Kluwer International Series in Engineering and Computer Science book series (SECS, volume 370)


Storage and retrieval of large amounts of data are often based on tree-like data structures. Efficiency, indispensable in large distributed databases, is achieved by admitting internal concurrency. Concurrent operations behave correctly when they conform with the observable I/O-behaviour of their sequential counterparts.

The correct design of concurrent search structures has also been proposed and studied in an object-based language setting. There, concurrent versions are derived from correctly specified sequential ones by means of program transformation. In order to formally prove the correctness of such transformations, both an operational semantics at the object-level and an underlying process calculus semantics have been explored.

In both the database and the object-based language approaches to the correct design of concurrent search structures, the crucial point is the formalisation of an acceptable correctness criterion. In this paper, we use the underlying process calculus semantics of the object-based approach in order to formalise a notion of correctness, as motivated from the database view on concurrent search structures, and show its application to a known example program transformation.


Operational Semantic Sequential Version Program Transformation Binary Search Tree External Behaviour 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    P. America. Issues in the design of a parallel object-oriented language. Formal Aspects of Computing, 1(4):366–411, 1989.CrossRefGoogle Scholar
  2. [2]
    P.A. Bernstein, V. Hadzilacos, and N. Goodman. Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987.Google Scholar
  3. [3]
    R. Bayer and E. McCreight. Organization and maintenance of large ordered indexes. Acta Informatica, 1:173–189, 1972.CrossRefGoogle Scholar
  4. [4]
    Grit Denker. Semantic refinement of concurrent object systems based on serializability. 1996. In this volume.Google Scholar
  5. [5]
    M. Egner, U. Nestmann, and M. Steffen. Confluent processes for transformation correctness (prelim, version). Interner Bericht IMMD7-1/95, Informatik VII, Universität Erlangen-Nürnberg, 1995.Google Scholar
  6. [6]
    J. F. Groote and M. P. A. Sellink. Confluence for Process Verification. In Lee and Smolka [16], pages 204–218.Google Scholar
  7. [7]
    Matthew Hennessy. Algebraic Theory of Processes. MIT Press, 1988.MATHGoogle Scholar
  8. [8]
    S. J. Hodges and C. B. Jones. Non-interference properties of a concurrent object-based language: Proofs based on an operational semantics. 1996. In this volume.Google Scholar
  9. [9]
    M. Herlihy and J. Wing. Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems, 12(3):463–492, 1990.CrossRefGoogle Scholar
  10. [10]
    C. Jones. Constraining interference in an object-based design method. In M.-C. Gaudel and J.-P. Jouannaud, editors, TAPSOFT ’93, volume 668 of LNCS, pages 136–150. Springer, 1993.Google Scholar
  11. [11]
    C. Jones. A pi-calculus semantics for an object-based design notation. In Eike Best, editor, Fourth International Conference on Concurrency Theory (CONCUR ’93, Hildesheim, Germany), volume 715 of LNCS, pages 158–172. Springer, 1993.Google Scholar
  12. [12]
    C. Jones. Reasoning about interference in an object-based design method. In J. C. P. Woodcock and P. G. Larsen, editors, Industrial-Strength Formal Methods (FME ’93), volume 670 of LNCS, pages 1–18. Springer, 1993.CrossRefGoogle Scholar
  13. [13]
    Cliff Jones. Accomodating Interference in the Formal Design of Concurrent Object-Based Programs. Formal Methods in System Design, 8(2):105–122, 1996. To appear.CrossRefGoogle Scholar
  14. [14]
    H. T. Kung and P. Lehman. Concurrent manipulation of binary search trees. ACM Transactions on Database Systems, 5(3):354–382, 1980.MATHCrossRefGoogle Scholar
  15. [15]
    Y-S. Kwong and D. Wood. A new method for concurrency in b-trees. IEEE Transactions on Software Engineering, SE-8(3):211–222, 1982.CrossRefGoogle Scholar
  16. [16]
    Insup Lee and Scott Smolka, editors. Proceedings of 6th International Conference on Concurrency Theory (CONCUR ’95, Philadelphia), volume 962 of LNCS. Springer, 1995.Google Scholar
  17. [17]
    X. Liu and D. Walker. Confluence of processes and systems of objects. In P. D. Mosses, M. Nielsen, and M. I. Schwarzbach, editors, TAPSOFT ’95, volume 915 of LNCS. Springer, 1995.Google Scholar
  18. [18]
    P. Lehman and B. Yao. Efficient locking for concurrent operations on B-trees. ACM Transactions on Database Systems, 6(4):650–670, 1981.MATHCrossRefGoogle Scholar
  19. [19]
    R. Milner. Communication and Concurrency. Prentice Hall, 1989.MATHGoogle Scholar
  20. [20]
    R. Milner. The polyadic π-calculus: A tutorial. Technical Report ECSLFCS-91-180, University of Edinburgh, 1991.Google Scholar
  21. [21]
    A. Philippou and D. Walker. On sharing and determinacy in concurrent systems. In Lee and Smolka [16], pages 456–470.Google Scholar
  22. [22]
    Y. Sagiv. Concurrent operations on b*-trees with overtaking. Journal of Computer and System Sciences, 33:275–296, 1986.MathSciNetMATHCrossRefGoogle Scholar
  23. [23]
    B. Samadi. B-trees in a system with multiple users. Information Processing Letters, 5(4):107–112, 1976.MATHCrossRefGoogle Scholar
  24. [24]
    M. T. Sanderson. Proof Techniques for CCS. PhD thesis, University of Edinburgh, 1982.Google Scholar
  25. [25]
    D. Shasha and N. Goodman. Concurrent search structure algorithms. ACM Transactions on Database Systems, 13(l):53–90, 1988.MATHCrossRefGoogle Scholar
  26. [26]
    M. Steffen and U. Nestmann. Typing confluence. Interner Bericht, Informatik VII, Universität Erlangen-Nürnberg, 1996. To appear.Google Scholar
  27. [27]
    E. Susseguth. Use of tree structures for processing files. Communications of the ACM, 6(5):272–279, 1963.CrossRefGoogle Scholar
  28. [28]
    C. Tofts. Proof Methods and Pragmatics for Parallel Programming. PhD thesis, LFCS, University of Edinburgh, 1991.Google Scholar
  29. [29]
    D. Walker. Objects in the π-calculus. Research Report CS-RR-217, University of Warwick, 1992.Google Scholar
  30. [30]
    D. Walker. Process calculus and parallel object-oriented programming languages. In International Summer Institute on Parallel Architectures, Languages, and Algorithms, Prague, 1993.Google Scholar
  31. [31]
    D. Walker. Algebraic proofs of properties of objects. In D. Sannella, editor, Fifth European Symposion on Programming (ESOP ’94), volume 788 of LNCS. Springer, 1994.Google Scholar

Copyright information

© Kluwer Academic Publishers 1996

Authors and Affiliations

  • Uwe Nestmann
    • 1
  • Martin Steffen
    • 1
  1. 1.Lehrstuhl für Informatik VIIFriedrich-Alexander-Universität Erlangen-NürnbergErlangenGermany

Personalised recommendations