ABSTRACT
Virtual Machines (VM) tend to evolve over their life cycle with features being added regularly and a growing footprint. In a VM designed for resource constrained environments this trend deteriorates the VM’s primary quality. We present how extensibility is implemented in the Ribbit Scheme VM that is both compact and portable to multiple languages. Our approach adds annotations to the VM’s source code allowing the compiler to generate the source code of a specialized VM extended with user-defined primitives and with needless ones removed. This gives the best of both worlds: an extensible VM packed with all and only the features needed by the source code, while maintaining a small code footprint.
- Sean Bartell. 2021. Optimizing whole programs for code size. Thesis. University of Illinois Urban. https://hdl.handle.net/2142/113862Google Scholar
- Camillo Bruni, Stéphane Ducasse, Igor Stasenko, and Guido Chari. 2014. Benzo: Reflective Glue for Low-level Programming. In Proceedings of the International Workshop on Smalltalk Technologies. Association for Computing Machinery, New York, NY, USA. https://hal.inria.fr/hal-01060551Google Scholar
- Kevin Casey, David Gregg, and M. Ertl. 2005. Tiger - An Interpreter Generation Tool., Vol. 3443. 246–249. https://doi.org/10.1007/978-3-540-31985-6_18Google ScholarDigital Library
- Patrick Doyle, Carlos Cavanna, and Tarek S. Abdelrahman. 2004. The design and implementation of a modular and extensible Java Virtual Machine. Software: Practice and Experience 34, 3 (2004), 287–313. https://doi.org/10.1002/spe.565Google ScholarDigital Library
- M. Anton Ertl, David Gregg, Andreas Krall, and Bernd Paysan. 2002. Vmgen—a generator of efficient virtual machine interpreters. Software: Practice and Experience 32, 3 (2002), 265–294. https://doi.org/10.1002/spe.434Google ScholarDigital Library
- Tim Harris. 1999. An Extensible Virtual Machine Architecture. In Proceedings of the OOPSLA’99 Workshop on Simplicity, Performance and Portability in Virtual Machine Design. Association for Computing Machinery. https://www.microsoft.com/en-us/research/publication/an-extensible-virtual-machine-architecture/Google Scholar
- Philip Levis and David Culler. 2002. Maté: a tiny virtual machine for sensor networks. ACMSIGPLAN Notices 37, 10 (Oct 2002), 85–95. https://doi.org/10.1145/605432.605407Google ScholarDigital Library
- Samuel Yvon and Marc Feeley. 2021. A small scheme VM, compiler, and REPL in 4k. In Proceedings of the 13th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages(VMIL 2021). Association for Computing Machinery, New York, NY, USA, 14–24. https://doi.org/10.1145/3486606.3486783Google ScholarDigital Library
Index Terms
- A Compact and Extensible Portable Scheme VM
Recommendations
A small scheme VM, compiler, and REPL in 4k
VMIL 2021: Proceedings of the 13th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate LanguagesCompact language implementations are increasingly popular for use in resource constrained environments. For embedded applications such as robotics and home automation, it is useful to support a Read-Eval-Print-Loop (REPL) so that a basic level of ...
Pre-Copy and post-copy VM live migration for memory intensive applications
Euro-Par'12: Proceedings of the 18th international conference on Parallel processing workshopsVirtualization technology provides a means for server consolidation, reducing the number of physical servers required for running a given workload. Virtual Machine (VM) live migration facilitates the transfer of a running (VM) between physical hosts ...
Virtual Device Passthrough for High Speed VM Networking
ANCS '15: Proceedings of the Eleventh ACM/IEEE Symposium on Architectures for networking and communications systemsSupporting network I/O at high packet rates in virtual machines is fundamental for the deployment of Cloud data centers and Network Function Virtualization. Historically, SR-IOV and hardware passthrough were thought as the only viable solution to reduce ...
Comments