skip to main content
10.1145/3594671.3594672acmotherconferencesArticle/Chapter ViewAbstractPublication PagesprogrammingConference Proceedingsconference-collections
research-article

A Compact and Extensible Portable Scheme VM

Published:12 September 2023Publication History

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.

References

  1. Sean Bartell. 2021. Optimizing whole programs for code size. Thesis. University of Illinois Urban. https://hdl.handle.net/2142/113862Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A Compact and Extensible Portable Scheme VM

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      Programming '23: Companion Proceedings of the 7th International Conference on the Art, Science, and Engineering of Programming
      March 2023
      134 pages
      ISBN:9798400707551
      DOI:10.1145/3594671

      Copyright © 2023 Owner/Author

      Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 12 September 2023

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited
    • Article Metrics

      • Downloads (Last 12 months)11
      • Downloads (Last 6 weeks)1

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format .

    View HTML Format