Inside the C++ object model
A specification of Java loading and bytecode verification
CCS '98 Proceedings of the 5th ACM conference on Computer and communications security
Representing Java classes in a typed intermediate language
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Hardware Realization of a Java Virtual Machine for High Performance Multimedia Applications
Journal of VLSI Signal Processing Systems - Special issue on the 1997 IEEE workshop on signal processing systems (SiPS): design and implementation
Marmot: an optimizing compiler for Java
Software—Practice & Experience
Standard fixpoint iteration for Java bytecode verification
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type elaboration and subtype completion for Java bytecode
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient implementation of Java interfaces: Invokeinterface considered harmless
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java Virtual Machine Specification
Java Virtual Machine Specification
Making Java Work for Microcontroller Applications
IEEE Design & Test
Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Message Dispatch on Pipelined Processors
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Efficient subtyping tests with PQ-encoding
ACM Transactions on Programming Languages and Systems (TOPLAS)
Lowest common ancestors in trees and directed acyclic graphs
Journal of Algorithms
SableVM: a research framework for the efficient execution of java bytecode
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Secure, Real-Time and Multi-Threaded General-Purpose Embedded Java Microarchitecture
DSD '07 Proceedings of the 10th Euromicro Conference on Digital System Design Architectures, Methods and Tools
Increasing the efficiency of an embedded multi-core bytecode processor using an object cache
Proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems
Hi-index | 0.00 |
This paper describes an approach that enables the fast constant-time and memory-efficient runtime handling of interface data types as found in several object-oriented programming languages like Java. It extends an idea presented by League et al. [22] to attach an itable to a class object to obtain an interface object. A practical implementation of this approach based on an automated rather than a manual type conversion is presented. Its practibility in the context of Java is evaluated by an adaptation in the SableVM [15]. Several measures for its improvement have been derived and implemented. The adoption of the resulting technique for the implementation of interface method dispatches within SHAP [26, 32], a small-footprint embedded implementation of a Java bytecode processor, is described. This realization currently also contains a tradeoff compromising some generality of the support for interface typecasts while it ensures both a small memory demand as well as a fast constant-time interface method dispatch. The loss of generality is shown to be a minimal practical impact under the measures taken before.