Abstract

Studying the semantics of programming languages has a long tradition in computer science. Various approaches use various formalisms with various objectives. In the last two decades, algebraic specifications have frequently been used to study functional as well as imperative languages, and, in particular, object-orientated ones, thereby often focusing on specific aspects and concepts of this programming paradigm. In this paper, we follow this tradition and develop an algebraic semantics of a sample object-oriented language. We thereby distinguish between the object-oriented concepts of the language to structure code, and the imperative ones to implement functionality and thus the algorithmic parts of the language. Therefore, our approach encompasses two steps: first, we develop an algebraic semantics of basic object-oriented principles, into which, secondly, the semantics of the language’s imperative parts is embedded. Static semantic aspects are captured by structured algebraic specifications, whereas dynamic ones are reflected bymany-sorted algebras. These aspects are treated as second order concepts and are thus interpreted within a model class of the underlying specification. The approach elaborated here can be employed to formalize the semantics of standard object-oriented languages such as Eiffel, Java, or C++.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call