Software & Systems Modeling

, Volume 7, Issue 2, pp 177–208 | Cite as

Heap-abstraction for an object-oriented calculus with thread classes

Special Section Paper

Abstract

This paper formalizes an open semantics for a calculus featuring thread classes, where the environment, consisting in particular of an overapproximation of the heap topology, is abstractly represented. From an observational point of view, considering classes as part of a component makes instantiation a possible interaction between com- ponent and environment or observer. For thread classes it means that a component may create external activity, which influences what can be observed. The fact that cross-border instantiation is possible requires that the connectivity of the objects needs to be incorporated into the semantics. We extend our prior work not only by adding thread classes, but also in that thread names may be communicated, which means that the semantics needs to account explicitly for the possible acquaintance of objects with threads. We show soundness of the abstraction.

Keywords

Class-based OO languages Thread-based concurrency Open systems Formal semantics Heap abstraction Observable behavior 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi M. and Cardelli L. (1996). A Theory of Objects. Monographs in Computer Science. Springer, Heidelberg Google Scholar
  2. 2.
    Ábrahám, E., de Boer, F.S., Bonsangue, M.M., Grüner, A., Steffen, M.: Observability, connectivity, and replay in a sequential calculus of classes. In: Bonsangue et al. [14], pp. 296–316. URL http://www.ifi.uio.no/~msteffe/downloadfa-fmco.pdf
  3. 3.
    Ábrahám, E., Bonsangue, M.M., de Boer, F.S., Steffen, M.: A structural operational semantics for a concurrent class calculus. Technical Report 0307, Institut für Informatik und Praktische Mathematik, Christian-Albrechts-Universität zu Kiel (2003). URL http://www.informatik.uni-kiel.de/reports/2003/0307.html
  4. 4.
    Ábrahám, E., Bonsangue, M.M., de Boer, F.S., Steffen, M.: Object connectivity and full abstraction for a concurrent calculus of classes. In: Li and Araki [28], pp. 37–51. URL http://www- omega.imag.fr/doc/d1000313_1/WP11-D115-313-V1-fa.p df
  5. 5.
    Ábrahám, E., Grüner, A., Steffen, M.: Abstract interface behavior of object-oriented languages with monitors. In: Gorrieri and Wehrheim [19], pp. 218–232. URL http://www.ifi.uio.no/~msteffe/ download06/monitors.pdf
  6. 6.
    Ábrahám, E., Grüner, A., Steffen, M.: Dynamic heap-abstraction for open, object-oriented systems with thread classes. Technical Report 0601, Institut für Informatik und Praktische Mathematik, Christian-Albrechts-Universität zu Kiel (2006). URL http://www.informatik.uni-kiel.de/reports/2006/0601.html. A slightly shorter version is accepted for inclusion into the Journal of Software and Systems Modeling (SoSym)
  7. 7.
    ACM: 35th Annual Symposium on Principles of Programming Languages (POPL) (2006)Google Scholar
  8. 8.
    Agha, G., Hewitt, C.: Concurrent programming using actors. In: Object-Oriented Concurrent Programming, pp. 37–53. MIT Press, Cambridge (1987)Google Scholar
  9. 9.
    Agha G.A. (1986). Actors: a Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge Google Scholar
  10. 10.
    America P. (1989). Issues in the design of a parallel object-oriented language. Form. Aspects Comput. 1(4): 366–411 CrossRefGoogle Scholar
  11. 11.
    de Boer, F.S., Bonsangue, M.M., Grüner, A., Steffen, M.: Java test driver generation from object-oriented interaction traces. In: Submitted for conference proceedings (2007)Google Scholar
  12. 12.
    de Boer, F.S., Bonsangue, M.M., Steffen, M., Ábrahám, E.: A fully abstract trace semantics for UML components. In: Bonsangue et al. [14], pp. 49–69. URL http://www.ifi.uio.no/~msteffe/ download05/fauml-fmco.pdf
  13. 13.
    de Boer, F.S., Clarke, D., Johnsen, E.B.: A complete guide to the future. In: Proceedings of 18th European Symposium on Programming (ESOP’07) (2007). To appear in Springer’s LNCS seriesGoogle Scholar
  14. 14.
    Bonsangue, M., de Boer, F.S., de Roever, W.P., Graf, S. (eds.): Proceedings of the Third International Symposium on Formal Methods for Components and Objects (FMCO 2004), Lecture Notes in Computer Science, vol. 3657. Springer-Verlag (2005)Google Scholar
  15. 15.
    Bonsangue, M.M., Johnsen, E.B. (eds.): Proceedings of the 8th IFIP International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS ’07), Cyprus, Greece, Lecture Notes in Computer Science, vol. 4468. Springer, Heidelberg (2007)Google Scholar
  16. 16.
  17. 17.
    ECMA International Standardizing Information and Communication Systems: C# Language Specification, 2nd edn. Standard ECMA-334 (2002)Google Scholar
  18. 18.
    Gordon, A.D., Hankin, P.D.: A concurrent object calculus: Reduction and typing. In: Nestmann and Pierce [31]. URL http://www.elsevier.nl/locate/entcs/volume16.3.html
  19. 19.
    Gorrieri, R., Wehrheim, H. (eds.): Proceedings of the 8th IFIP International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS ’06), Bologna, Italy, Lecture Notes in Computer Science, vol. 4037. Springer, Heidelberg (2006)Google Scholar
  20. 20.
    Gosling J., Joy B., Steele G.L. and Bracha G. (2000). The Java Language Specification, Second edn. Addison–Wesley, Reading Google Scholar
  21. 21.
    IEEE: Thirteenth Annual Symposium on Logic in Computer Science (LICS) (Indiana). IEEE Computer Society, Los Alamitos, CA (1998)Google Scholar
  22. 22.
    IEEE: Seventeenth Annual Symposium on Logic in Computer Science (LICS) (Copenhagen, Denmark). IEEE Computer Society, Los Alamitos, CA (2002)Google Scholar
  23. 23.
    Jeffrey, A., Rathke, J.: A fully abstract may testing semantics for concurrent objects. In: LICS’02 [22]Google Scholar
  24. 24.
    Jeffrey, A., Rathke, J., Java Jr.: A fully abstract trace semantics for a core Java language. In: Sagiv [35], pp. 423–438Google Scholar
  25. 25.
    Koutavas, V., Wand, M.: Bisimulations for untyped imperative objects. In: Sestoft [37] (2007, to appear)Google Scholar
  26. 26.
    Koutavas, V., Wand, M.: Small bisimulations for reasoning about higher-order imperative programs. In: POPL’06 [7], pp. 141–152Google Scholar
  27. 27.
    Koutavas, V., Wand, M.: Reasoning about class behavior. In: Informal Workshop Record of FOOL 2007 (2007)Google Scholar
  28. 28.
    Li, Z., Araki, K. (eds.): Proceedings of the First International Colloquium on Theoretical Aspects of Computing, ICTAC 2004, Lecture Notes in Computer Science, vol. 3407. Springer, Heidelberg (2005)Google Scholar
  29. 29.
    Longley, J., Wolverson, N.: Game semantics for object-oriented languages: a progress report. In: Games for Logic and Programming Languages II (GaLoP II) (2006)Google Scholar
  30. 30.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, part I/II. Information and Computation 100, 1–77 (1992). URL http://www.lfcs.informatics.ed.ac.uk/reports/89/ECS-LFCS- 89-85/
  31. 31.
    Nestmann, U., Pierce, B.C. (eds.): HLCL ’98: High-Level Concurrent Languages (Nice, France, September 12, 1998), Electronic Notes in Theoretical Computer Science, vol. 16.3. Elsevier, Amsterdam (1998). URL http://www.elsevier.nl/ locate/entcs/volume16.3.html
  32. 32.
    Olderog E.R. and Hoare C.A.R. (1986). Specification-oriented semantics of communicating processes. Acta Informatica 23(1): 9–66, A preliminary version appeared under the same title in the proceedings of the 10th ICALP 1983, vol. 154 of LNCSMATHCrossRefMathSciNetGoogle Scholar
  33. 33.
    Poetzsch-Heffter, A., Schäfer, J.: A representation-independent behavioral semantics for object-oriented components. In: Bonsangue and Johnsen [15]Google Scholar
  34. 34.
    Potter B.F., Sinclair J.E. and Till D. (1990). An Introduction to Formal Specification and Z. Series in Computer Science. Prentice-Hall, Englewood Cliffs Google Scholar
  35. 35.
    Sagiv, M. (ed.): Proceedings of ESOP 2005, Lecture Notes in Computer Science, vol. 3444. Springer, Heidelberg (2005)Google Scholar
  36. 36.
    Sangiorgi D. and Walker D. (2001). The π-calculus: A Theory of Mobile Processes. Cambridge University Press, London Google Scholar
  37. 37.
    Sestoft P. (eds) (2005). ESOP’05, Lecture Notes in Computer Science, vol. 3924. Springer, Heidelberg Google Scholar
  38. 38.
    Smith G.P. (1992). An object-oriented approach to formal specification. Department of Computer Science, University of Queensland, Ph.D. thesisGoogle Scholar
  39. 39.
    Spivey J.M. (1989). The Z Notation: A Reference Manual. International Series in Computer Science. Englewood Cliffs, Prentice-Hall Google Scholar
  40. 40.
    Steffen, M.: Object-connectivity and observability for class-based, object-oriented languages. Habilitation thesis, Technische Faktultät der Christian-Albrechts-Universität zu Kiel (2006). Submitted 4 July, accepted 7 February 2007Google Scholar
  41. 41.
    Viswanathan, R.: Full abstraction for first-order objects with recursive types and subtyping. In: LICS’98 [21]Google Scholar

Copyright information

© Springer-Verlag 2007

Authors and Affiliations

  • Erika Ábrahám
    • 1
  • Andreas Grüner
    • 2
  • Martin Steffen
    • 3
  1. 1.Albert-Ludwigs-Universität FreiburgFreiburgGermany
  2. 2.Christian-Albrechts-Universität zu KielKielGermany
  3. 3.Department of Computer ScienceUniversity OsloOsloNorway

Personalised recommendations