We present a sound and complete method for reasoning about con-textual equivalence between different implementations of classes in an imperative subset of Java. To the extent of our knowledge this is the first such method for a language with unrestricted inheritance, where the context can arbitrarily extend classes to distinguish other-wise equivalent implementations. Similar reasoning techniques for class-based languages [1, 12] don’t consider inheritance at all, or forbid the context from extending related classes. Other techniques that do consider inheritance [3] study whole-program equivalence. Our technique also handles public, private, and protected interfaces of classes, imperative fields, and invocations of callbacks. Using our tech...
AbstractSome object oriented programming languages allow inner classes. All of them admit inheritanc...
. In object-oriented languages, multiple inheritance can cause ambiguities when methods of the same ...
Fickle is a class-based object oriented imperative language, which extends Java with object re- clas...
We present a sound and complete method for reasoning about contextual equivalence between different ...
We present a sound and complete method for reasoning about contextual equivalence between different ...
Abstract. In this paper, we consider a direct, source-to-source, specialization of Java programs. In...
We present FJig, a simple calculus where basic building blocks are classes in the style of Featherwe...
This note briefly discusses how some of the ideas developed in the theory of coalgebras are used in ...
AbstractWe present FJig, a simple calculus where basic building blocks are classes in the style of F...
While class-based object-oriented programming languages provide a flexible mechanism for re-using an...
The presence of Multiple Inheritance in a language raises subtle problems related to possible ambigu...
We propose a conservative extension of the polymorphic lambda calculus ()# * ) as an intermediate la...
The object-oriented programming paradigm provides strong support for code re-use via inheritance mec...
Elaboration-based type class resolution, as found in languages like Haskell, Mercury and PureScript,...
Backward compatibility of class libraries ensures that an old implementation of a library can safely...
AbstractSome object oriented programming languages allow inner classes. All of them admit inheritanc...
. In object-oriented languages, multiple inheritance can cause ambiguities when methods of the same ...
Fickle is a class-based object oriented imperative language, which extends Java with object re- clas...
We present a sound and complete method for reasoning about contextual equivalence between different ...
We present a sound and complete method for reasoning about contextual equivalence between different ...
Abstract. In this paper, we consider a direct, source-to-source, specialization of Java programs. In...
We present FJig, a simple calculus where basic building blocks are classes in the style of Featherwe...
This note briefly discusses how some of the ideas developed in the theory of coalgebras are used in ...
AbstractWe present FJig, a simple calculus where basic building blocks are classes in the style of F...
While class-based object-oriented programming languages provide a flexible mechanism for re-using an...
The presence of Multiple Inheritance in a language raises subtle problems related to possible ambigu...
We propose a conservative extension of the polymorphic lambda calculus ()# * ) as an intermediate la...
The object-oriented programming paradigm provides strong support for code re-use via inheritance mec...
Elaboration-based type class resolution, as found in languages like Haskell, Mercury and PureScript,...
Backward compatibility of class libraries ensures that an old implementation of a library can safely...
AbstractSome object oriented programming languages allow inner classes. All of them admit inheritanc...
. In object-oriented languages, multiple inheritance can cause ambiguities when methods of the same ...
Fickle is a class-based object oriented imperative language, which extends Java with object re- clas...