Abstract
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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Plotkin, G.: A structural approach to operational semantics. Technical Report DAIMI FN-19, Aarhus University (1981)
Drossopoulou, S., Eisenbach, S.: Towards an Operational Semantics and Proof of Type Soundness for Java. Springer, Heidelberg (1998)
Schmdit, D.A.: Denotational Semantics. A Methodology for Language Development. Allyn and Bacon, Inc. (1986)
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)
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)
Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice-Hall, Englewood Cliffs (1998)
Jifeng, H., Li, X., Liu, Z.: A Refinement Calculus for Object Systems. Technical report 322, UNU-IIST, P.O.Box 3058, Macau (2005)
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)
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)
Mahony, B.P., Dong, J.S.: Timed Communicating Object Z. IEEE Transactions on Software Engineering 26, 150–177 (2000)
Cavalcanti, A.L.C., Sampaio, A.C.A., Woodcock, J.C.P.: Unifying Classes and Processes. Software and System Modelling 4, 277–296 (2005)
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)
Woodcock, J.C.P., Davies, J.: Using Z-Specification, Refinement, and Proof. Prentice-Hall, Englewood Cliffs (1996)
Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice-Hall Series in Computer Science. Prentice-Hall, Englewood Cliffs (1998)
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)
Back, R.J.R.: Procedural Abstraction in the Refinement Calculus. Technical report, Department of Computer Science, Åbo, Finland, Ser. A No. 55 (1987)
Naumann, D.A.: Predicate transformers and higher-order programs. Theor. Comput. Sci. 150, 111–159 (1995)
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)
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)
Hehner, E.: A Practical Theory of Programming, 2nd edn. Springer, New York (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Santos, T., Cavalcanti, A., Sampaio, A. (2006). Object-Orientation in the UTP. In: Dunne, S., Stoddart, B. (eds) Unifying Theories of Programming. UTP 2006. Lecture Notes in Computer Science, vol 4010. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11768173_2
Download citation
DOI: https://doi.org/10.1007/11768173_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34750-7
Online ISBN: 978-3-540-34752-1
eBook Packages: Computer ScienceComputer Science (R0)