An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Two-directional record layout for multiple inheritance
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Bidirectional object layout for separate compilation
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
Efficient type inclusion tests
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Thin locks: featherweight synchronization for Java
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Fast, effective code generation in a just-in-time Java compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Optimizing direct threaded code by selective inlining
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
An efficient meta-lock for implementing ubiquitous synchronization
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A study of locking objects with bimodal fields
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Practicing JUDO: Java under dynamic optimizations
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Java Virtual Machine Specification
Java Virtual Machine Specification
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Taming Message Passing: Efficient Method Look-Up for Dynamically Typed Languages
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Efficient JavaVM Just-in-Time Compilation
PACT '98 Proceedings of the 1998 International Conference on Parallel Architectures and Compilation Techniques
LaTTe: A Java VM Just-in-Time Compiler with Fast and Efficient Register Allocation
PACT '99 Proceedings of the 1999 International Conference on Parallel Architectures and Compilation Techniques
Overview of the IBM Java just-in-time compiler
IBM Systems Journal
IBM Systems Journal
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
Lock reservation: Java locks can mostly do without atomic operations
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Space- and Time-Efficient Implementation of the Java Object Model
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Stress-testing Control Structures for Dynamic Dispatch in Java
Proceedings of the 2nd Java Virtual Machine Research and Technology Symposium
A Modular and Extensible JVM Infrastructure
Proceedings of the 2nd Java Virtual Machine Research and Technology Symposium
The case for virtual register machines
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
Joeq: a virtual machine and compiler infrastructure
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
vBET: a VM-based emulation testbed
MoMeTools '03 Proceedings of the ACM SIGCOMM workshop on Models, methods and tools for reproducible network research
An optimized Java interpreter for connected devices and embedded systems
Proceedings of the 2003 ACM symposium on Applied computing
MyJVM: a 100% pure Java customizable Java Virtual Machine
PPPJ '03 Proceedings of the 2nd international conference on Principles and practice of programming in Java
Thin locks: featherweight Synchronization for Java
ACM SIGPLAN Notices - Best of PLDI 1979-1999
The design and implementation of a modular and extensible Java virtual machine
Software—Practice & Experience
Relative factors in performance analysis of Java virtual machines
Proceedings of the 2nd international conference on Virtual execution environments
An object-aware memory architecture
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
Jelatine: a virtual machine for small embedded systems
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
The case for virtual register machines
Science of Computer Programming - Special issue on advances in interpreters, virtual machines and emulators (IVME'03)
Joeq: a virtual machine and compiler infrastructure
Science of Computer Programming - Special issue on advances in interpreters, virtual machines and emulators (IVME'03)
Optimizing indirect branch prediction accuracy in virtual machine interpreters
ACM Transactions on Programming Languages and Systems (TOPLAS)
Enabling constant-time interface method dispatch in embedded Java processors
JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems
Implementing fast JVM interpreters using Java itself
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Perfect hashing as an almost perfect subtype test
ACM Transactions on Programming Languages and Systems (TOPLAS)
An object-aware memory architecture
An object-aware memory architecture
Effective inline-threaded interpretation of Java bytecode using preparation sequences
CC'03 Proceedings of the 12th international conference on Compiler construction
ECOOP'07 Proceedings of the 2007 conference on Object-oriented technology
Implementation, compilation, optimization of object-oriented languages, programs and systems
ECOOP'06 Proceedings of the 2006 conference on Object-oriented technology: ECOOP 2006 workshop reader
KESO: an open-source multi-JVM for deeply embedded systems
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
Implementing statically typed object-oriented programming languages
ACM Computing Surveys (CSUR)
A comprehensive evaluation of object scanning techniques
Proceedings of the international symposium on Memory management
JP2: collecting dynamic bytecode metrics in JVMs
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Optimized memory management for class metadata in a JVM
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Context-Based storage management for wearable and portable devices
ARCS'05 Proceedings of the 18th international conference on Architecture of Computing Systems conference on Systems Aspects in Organic and Pervasive Computing
An embedded GC module with support for multiple mutators and weak references
ARCS'10 Proceedings of the 23rd international conference on Architecture of Computing Systems
Tailor-made JVMs for statically configured embedded systems
Concurrency and Computation: Practice & Experience
GPUs as an opportunity for offloading garbage collection
Proceedings of the 2012 international symposium on Memory Management
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 |
SableVM is an open-source virtual machine for Java intended as a research framework for efficient execution of Java bytecode. The framework is essentially composed of an extensible bytecode interpreter using state-of-the-art and innovative techniques. Written in the C programming language, and assuming minimal system dependencies, the interpreter emphasizes high-level techniques to support efficient execution. In particular, we introduce a biderectional layout for object instances that groups reference fields sequentially to allow efficient garbage collection. We also introduce a sparse interface virtual table layout that reduces the cost of interface method calls to that of normal virtual calls. Finally, we present a technique to improve thin locks[13] by eliminating busy-wait in presence of contention.