Garbage collection in an uncooperative environment
Software—Practice & Experience
Integrating the Scheme and C languages
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Subject-oriented composition rules
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Java Native Interface: Programmer's Guide and Reference
Java Native Interface: Programmer's Guide and Reference
Linux Journal
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Mirrors: design principles for meta-level facilities of object-oriented programming languages
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Queue - Performance
SWIG: an easy to use tool for integrating scripting languages with C and C++
TCLTK'96 Proceedings of the 4th conference on USENIX Tcl/Tk Workshop, 1996 - Volume 4
Debug all your code: portable mixed-environment debugging
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Cross-language, type-safe, and transparent object sharing for co-located managed runtimes
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
The JVM is not observable enough (and what to do about it)
Proceedings of the sixth ACM workshop on Virtual machines and intermediate languages
The operating system: should there be one?
Proceedings of the Seventh Workshop on Programming Languages and Operating Systems
Hi-index | 0.00 |
Current VM designs prioritise implementor freedom and performance, at the expense of other concerns of the end programmer. We motivate an alternative approach to VM design aiming to be unobtrusive in general, and prioritising two key concerns specifically: foreign function interfacing and support for runtime analysis tools (such as debuggers, profilers etc.). We describe our experiences building a Python VM in this manner, and identify some simple constraints that help enable low-overhead foreign function interfacing and direct use of native tools. We then discuss how to extend this towards a higher-performance VM suitable for Java or similar languages.