Object-Orientation in the UTP

  • Thiago Santos
  • Ana Cavalcanti
  • Augusto Sampaio
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4010)


In this paper, we study object-oriented programming concepts present in languages like Java and C++ in the framework of the Unifying Theories of Programming (UTP). This work shows how subtyping, data inheritance, (mutually) recursive methods, and dynamic binding can be described in the UTP by combining and extending the theories of designs and higher-order procedures. A distinguishing feature of our approach is modularity: following the style of the UTP, we deal with each concept in isolation; this makes our theory convenient to model integrated languages that include constructs from several paradigms.


Method Call Observational Variable Parametrise Program Primitive Type Dynamic Binding 
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.
    Plotkin, G.: A structural approach to operational semantics. Technical Report DAIMI FN-19, Aarhus University (1981)Google Scholar
  2. 2.
    Drossopoulou, S., Eisenbach, S.: Towards an Operational Semantics and Proof of Type Soundness for Java. Springer, Heidelberg (1998)Google Scholar
  3. 3.
    Schmdit, D.A.: Denotational Semantics. A Methodology for Language Development. Allyn and Bacon, Inc. (1986)Google Scholar
  4. 4.
    Hoare, C.A.R., Hayes, I.J., Jifeng, H., Morgan, C.C., Roscoe, A.W., Sanders, J.W., Sorensen, I.H., Spivey, J.M., Sufrin, B.A.: Laws of programming. Commun. ACM 30, 672–686 (1987)CrossRefMATHGoogle Scholar
  5. 5.
    Borba, P.H.M., Sampaio, A.C.A., Cavalcanti, A.L.C., Cornélio, M.L.: Algebraic Reasoning for Object-Oriented Programming. Science of Computer Programming 52, 53–100 (2004)CrossRefMathSciNetMATHGoogle Scholar
  6. 6.
    Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice-Hall, Englewood Cliffs (1998)Google Scholar
  7. 7.
    Jifeng, H., Li, X., Liu, Z.: A Refinement Calculus for Object Systems. Technical report 322, UNU-IIST, P.O.Box 3058, Macau (2005)Google Scholar
  8. 8.
    Qin, S.C., Dong, J.S., Chin, W.N.: A Semantic Foundation of TCOZ in Unifying Theory of Programming. In: FM 2003, Pisa, Italy. LNCS, pp. 321–340. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  9. 9.
    Mahony, B., Dong, J.: Blending Object-Z and Timed CSP: An introduction to TCOZ. In: Proceedings of the 20th International Conference on Software Engineering (ICSE 1998), Kyoto, Japan, pp. 95–104. IEEE Computer Society Press, Los Alamitos (1998)CrossRefGoogle Scholar
  10. 10.
    Mahony, B.P., Dong, J.S.: Timed Communicating Object Z. IEEE Transactions on Software Engineering 26, 150–177 (2000)CrossRefGoogle Scholar
  11. 11.
    Cavalcanti, A.L.C., Sampaio, A.C.A., Woodcock, J.C.P.: Unifying Classes and Processes. Software and System Modelling 4, 277–296 (2005)CrossRefGoogle Scholar
  12. 12.
    Woodcock, J.C.P., Cavalcanti, A.L.C.: The Semantics of Circus. In: Bert, D., Bowen, J.P., Henson, M.C., Robinson, K. (eds.) B 2002 and ZB 2002. LNCS, vol. 2272, pp. 184–203. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  13. 13.
    Woodcock, J.C.P., Davies, J.: Using Z-Specification, Refinement, and Proof. Prentice-Hall, Englewood Cliffs (1996)MATHGoogle Scholar
  14. 14.
    Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice-Hall Series in Computer Science. Prentice-Hall, Englewood Cliffs (1998)Google Scholar
  15. 15.
    Cavalcanti, A.L.C., Naumann, D.A.: A Weakest Precondition Semantics for Refinement of Object-oriented Programs. IEEE Transactions on Software Engineering 26, 713–728 (2000)CrossRefGoogle Scholar
  16. 16.
    Back, R.J.R.: Procedural Abstraction in the Refinement Calculus. Technical report, Department of Computer Science, Åbo, Finland, Ser. A No. 55 (1987)Google Scholar
  17. 17.
    Naumann, D.A.: Predicate transformers and higher-order programs. Theor. Comput. Sci. 150, 111–159 (1995)CrossRefMathSciNetMATHGoogle Scholar
  18. 18.
    Borba, P.H.M., Sampaio, A.C.A.: Basic Laws of ROOL: an object-oriented language. In: 3rd Workshop on Formal Methods, Brazil, pp. 33–44 (2000)Google Scholar
  19. 19.
    Kassios, I.T.: Decoupling in Object Orientation. In: Fitzgerald, J.S., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, pp. 43–58. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  20. 20.
    Hehner, E.: A Practical Theory of Programming, 2nd edn. Springer, New York (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Thiago Santos
    • 1
  • Ana Cavalcanti
    • 2
  • Augusto Sampaio
    • 1
  1. 1.Centre of InformaticsFederal University of PernambucoRecife-PEBrazil
  2. 2.Department of Computer ScienceUniversity of YorkHeslington YorkUnited Kingdom

Personalised recommendations