From a specification to an equivalence proof in object-oriented parallelism

  • Isabelle Attali
  • Denis Caromel
  • Sylvain Lippi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1586)


We investigate the use of a TLA specification for modeling and proving parallelization within an object-oriented language.

Our model is based on Eiffel// a parallel extension of Eiffel, where sequential programs can be reused for parallel or concurrent programming with very minor changes. We want to prove that both versions of a given program (sequential and parallel) are equivalent with respect to some properties.

This article presents a description in TLA+ that captures the general Eiffel// execution model, and, as a case-study, specifies a program (a binary search tree) in both its sequential and parallel form. We then prove a property that demonstrates a behavioral equivalence for the two versions.


Binary Tree Temporal Logic Active Object Concurrent Programming Parallel Behavior 
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.
    R. Amadio, I. Castellani, and D. Sangiorgi. On bisimulations for the asynchronous π-calculus. In Proc. CONCUR’96, volume 1119. LNCS, Springer-Verlag, 1996.Google Scholar
  2. 2.
    I. Attali, D. Caromel, S. Ehmety, and S. Lippi. Semantic-based visualization for parallel object-oriented programming. In Proceedings of OOPSLA’96, volume 31 of ACM Sigplan Notices, San Jose, CA, October 1996. ACM Press.Google Scholar
  3. 3.
    E. Bruneton. Implantation d’un traducteur eiffel//—π-calcul. Rapport de stage deuxième année, Ecole Polytechnique, juillet 1996.Google Scholar
  4. 4.
    Concurrent Object-Oriented Programming. Communications of the ACM, 36 (9), 1993. Special issue.Google Scholar
  5. 5.
    D. Caromel. Service, Asynchrony and Wait-by-necessity. Journal of Object-Oriented Programming, 2(4):12–22, November 1989.Google Scholar
  6. 6.
    D. Caromel. Concurrency and Reusability: From Sequential to Parallel. Journal of Object-Oriented Programming, 3(3):34–42, September 1990.Google Scholar
  7. 7.
    D. Caromel. Towards a Method of Object-Oriented Concurrent Programming. Communications of the ACM, 36(9):90–102, September 1993.CrossRefGoogle Scholar
  8. 8.
    Denis Caromel, Fabrice Belloncle, and Yves Roudier. The C++//Language. MIT Press, 1996. ISBN 0-262-73118-5.Google Scholar
  9. 9.
    D. Doligez. Conception, réalisation et certification d’un glaneur de cellules concurrent. PhD thesis, Université Paris VII, 1995.Google Scholar
  10. 10.
    Urban Engberg. The tlp system. Scholar
  11. 11.
    G. Gontheir. Verifying the safety of a practical concurrent garbage collector. In Proc. of the Eighth International Conference on Computer-Aided Verification, ACM, New Brunswick, New Jersey, 1996.Google Scholar
  12. 12.
    S. Hodges and C. B. Jones. Non-interferance properties of a concurrent object-based language: Proofs based on an operational semantics. In Object Orientation with Parallelism and Persistance. Kluwer Academic Publishers, 1996. ISBN 0-7923-9770-3.Google Scholar
  13. 13.
    L. Lamport. Hybrid systems in tla+. In Hybrid Systems, pages 77–102. Springer Verlag LNCS 736, 1993.Google Scholar
  14. 14.
    L. Lamport. The Temporal Logic of Actions. ACM Transactions on Programming Languages and Systems, 16(3):872–923, May 1994.CrossRefGoogle Scholar
  15. 15.
    L. Lamport. The Module Structure of TLA+. Technical Report 1996-002, DEC SRC, September 1996.Google Scholar
  16. 16.
    L. Lamport. The operators of TLA+. Technical Report 1997-006a, DEC SRC, April 1997.Google Scholar
  17. 17.
    L. Lamport and S. Merz. Specifying and verifying fault-tolerant systems. In H. Langmaack, W. P. de Roever, and J. Vytopil, editors, Formal Techniques in real-time and fault-tolerant systems, volume 863 of Lecture Notes in Computer Science, pages 41–76. Springer-Verlag, 1994.Google Scholar
  18. 18.
    X. Liu and D. Walker. Confluence of processes and systems of objects. In Proc. of Theory and Practice of Software Development (TAPSOFT’95) 6th International Joint Conference CAAP/FASE, 1995.Google Scholar
  19. 19.
    B. Mayer. Object-Oriented Software Construction. Prentice-Hall, 1988.Google Scholar
  20. 20.
    R. Milner, J. Parrow, and D. Walker. A Calculus of Mobile Processes, i and ii. Journal of Information and Computation, 100:1–77, 1992.MATHMathSciNetCrossRefGoogle Scholar
  21. 21.
    O. Nierstrasz. The next 700 concurrent object-oriented languages—reflections on the future of object-based concurrency. Object composition, Centre Universitaire d’Informatique, University of Geneva, June 1991.Google Scholar
  22. 22.
    O. Nierstrasz, P. Ciancarini, and A. Yonezawa, editors. Rule-based Object Coordination. LNCS 924. Springer-Verlag, 1995.Google Scholar
  23. 23.
    David Sagnol. π-calcul pour les langages à objects parallèles. Rapport de stage de DEA, Université de Nice-Sophia Antipolis, Juin 1995.Google Scholar
  24. 24.
    P. Wegner. Design issues for object-based concurrency. In Proc. of the ECOOP ’91 Workshop on Object-Based Concurrent Computing, LNCS 612, 1992.Google Scholar
  25. 25.
    G. Wilson and P. Lu, editors. Parallel Programing Using C++. MIT Press, 1996. ISBN 0-262-73118-5.Google Scholar

Copyright information

© Springer-Verlag 1999

Authors and Affiliations

  • Isabelle Attali
    • 1
  • Denis Caromel
    • 1
  • Sylvain Lippi
    • 1
  1. 1.INRIA Sophia AntipolisCNRS-I3S-Univ. Nice Sophia AntipolisSophia Antipolis CedexFrance

Personalised recommendations