AbstractIn a typed language such as Java, inlining of virtual methods does not always preserve typability. The best known solution to this problem is to insert type casts, which may hurt performance. This paper presents a solution that never hurts performance. The solution is based on a transformation that modifies static type annotations and changes some virtual calls into static calls, which can then be safely inlined. The transformation is parametrised by a flow analysis, and for any analysis that satisfies certain conditions, the transformation is correct and idempotent. The paper presents the transformation, the conditions on the flow analysis, and proves the correctness properties in the context of a variant of Featherweight Java
This paper addresses the problem of resolving virtual method and interface calls in Java. The main f...
Java offers the real possibility that most programs can be written in a type-safe language. However,...
The main goal of a static type system is to prevent certain kinds of errors from happening at run ti...
In a typed language such as Java, inlining of virtual methods does not always preserve typability. ...
We discuss aspects of inlining of virtual method invocations. First, we introduce a new method test ...
. Parametric types and virtual types have recently been proposed as extensions to Java to support ge...
Virtual method calls are a fundamental feature offered by Java, an object-oriented programming langu...
In this thesis I describe an extension to the Java language that supports type-safe dynamic code gen...
Class inheritance and method overriding, as provided by standard class-based languages, are not flex...
AbstractIn Java bytecode, intra-method subroutines are employed to represent code in “finally” block...
Dynamic binding (dispatch) in object-oriented languages prevents compilers from performing static op...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
In Java bytecode, intra-method subroutines are employed to represent code in “finally” blocks. The u...
This paper addresses the problem of resolving virtual method and interface calls in Java. The main f...
This paper addresses the problem of resolving virtual method and interface calls in Java. The main f...
Java offers the real possibility that most programs can be written in a type-safe language. However,...
The main goal of a static type system is to prevent certain kinds of errors from happening at run ti...
In a typed language such as Java, inlining of virtual methods does not always preserve typability. ...
We discuss aspects of inlining of virtual method invocations. First, we introduce a new method test ...
. Parametric types and virtual types have recently been proposed as extensions to Java to support ge...
Virtual method calls are a fundamental feature offered by Java, an object-oriented programming langu...
In this thesis I describe an extension to the Java language that supports type-safe dynamic code gen...
Class inheritance and method overriding, as provided by standard class-based languages, are not flex...
AbstractIn Java bytecode, intra-method subroutines are employed to represent code in “finally” block...
Dynamic binding (dispatch) in object-oriented languages prevents compilers from performing static op...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
In Java bytecode, intra-method subroutines are employed to represent code in “finally” blocks. The u...
This paper addresses the problem of resolving virtual method and interface calls in Java. The main f...
This paper addresses the problem of resolving virtual method and interface calls in Java. The main f...
Java offers the real possibility that most programs can be written in a type-safe language. However,...
The main goal of a static type system is to prevent certain kinds of errors from happening at run ti...