—Concurrent programming with shared memory in an object-oriented language such as Java is notoriously difficult. Therefore, it is important to study new program understanding te...
In most object-oriented languages and systems, objects must belong to a single most specific class. Relaxing this requirement, also known as role modeling, has been proposed by sev...
Gerti Kappel, Werner Retschitzegger, Wieland Schwi...
This paper outlines a sound and complete Hoare logic for a sequential object-oriented language with inheritance and subtyping like Java. It describes a weakest precondition calculu...
In this paper we introduce an object-oriented coordination language for multi-agents systems. The beliefs and reasoning capabilities ent are specified in terms of a corresponding ...
Frank S. de Boer, Cees Pierik, Rogier M. van Eijk,...
SELF is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritanc...
Dynamic dispatching is a major source of run-time overhead in object-oriented languages, due both to the direct cost of method lookup and to the indirect effect of preventing othe...
An object encoding translates a language with object primitives to one without. Similarly, a class encoding translates classes into other primitives. Both are important theoretica...
Bounded quantification was introduced by Cardelli and Wegner as a means of typing functions that operate uniformly over all subtypes of a given type. They defined a simple “ob...
Peter S. Canning, William R. Cook, Walter L. Hill,...
The performance of object-oriented languages can be greatly improved if methods can be specialized for particular classes of arguments. Such specialization can provide the compile...
Abstract. An object-oriented language that permits changing the behavior of a class or of a single object is said to support computational reflection. Existing reflective facilitie...