skip to main content
10.1145/2162049.2162073acmconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Fine-grained modularity and reuse of virtual machine components

Published:25 March 2012Publication History

ABSTRACT

Modularity is a key concept for large and complex applications and an important enabler for collaborative research. In comparison, virtual machines (VMs) are still mostly monolithic pieces of software. Our goal is to significantly reduce to the cost of extending VMs to efficiently host and execute multiple, dynamic languages. We are designing and implementing a VM following the "everything is extensible" paradigm. Among the novel use cases that will be enabled by our research are: VM extensions by third parties, support for multiple languages inside one VM, and a universal VM for mobile devices.

Our research will be based on the existing state of the art. We will reuse an existing metacircular Java VM and an existing dynamic language VM implemented in Java. We will split the VMs into fine-grained modules, define explicit interfaces and extension points for the modules, and finally re-connect them.

Performance is one of the most important concerns for VMs. Modularity improves flexibility but can introduce an unacceptable performance overhead at the module boundaries, e.g., for inter-module method calls. We will identify this overhead and address it with novel feedback-directed compiler optimizations. These optimizations will also improve the performance of modular applications running on top of our VM.

The expected results of our research will be not only new insights and a new design approach for VMs, but also a complete reference implementation of a modular VM where everything is extensible by third parties and that supports multiple languages.

References

  1. A.-R. Adl-Tabatabai, J. Bharadwaj, D.-Y. Chen, A. Ghuloum, V. Menon, B. Murphy, M. Serrano, and T. Shpeisman. The StarJIT compiler: A dynamic compiler for managed runtime environments. phIntel Technology Journal, 7 (1): 19--31, 2003.Google ScholarGoogle Scholar
  2. B. Alpern, C. R. Attanasio, J. J. Barton, M. G. Burke, P.Cheng, J.-D. Choi, A. Cocchi, S. J. Fink, D. Grove, M. Hind, S. F. Hummel, D. Lieber, V. Litvinov, M. F. Mergen, T. Ngo, J. R. Russell, V. Sarkar, M. J. Serrano, J. C. Shepherd, S. E. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeno virtual machine. phIBM Systems Journal, 39 (1): 211--238, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Apache. phApache Harmony, Dynamic Runtime Layer Virtual Machine, 2010. http://harmony.apache.org/subcomponents/drlvm/.Google ScholarGoogle Scholar
  4. C. Chambers. The Cecil language specification and rationale, version 3.0. Technical report, Department of Computer Science and Engineering, University of Washington, 1998.Google ScholarGoogle Scholar
  5. C. Chambers, D. Ungar, and E. Lee. An efficient implementation of SELF, a dynamically-typed object-oriented language based on prototypes. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 49--70. ACM Press, 1989. 10.1145/74878.74884. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Cierniak, M. Eng, N. Glew, B. Lewis, and J. Stichnoth. The open runtime platform: a flexible high-performance managed runtime environment. Concurrency and Computation: Practice and Experience, 17 (5--6): 617--637, 2005. 10.1002/cpe.852. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. L. P. Deutsch and A. M. Schiffman. Efficient implementation of the Smalltalk-80 system. In Proceedings of the ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 297--302. ACM Press, 1984. 10.1145/800017.800542. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Dynamic Language Runtime. Dynamic Language Runtime, 2010. http://dlr.codeplex.com/.Google ScholarGoogle Scholar
  9. N. Geoffray, G. Thomas, G. Muller, P. Parrend, S. Frénot, and B. Folliot. I-JVM: a Java virtual machine for component isolation in OSGi. In Proceedings of the International Conference on Dependable Systems and Networks, pages 544--553. IEEE Computer Society, 2009. 10.1109/DSN.2009.5270296.Google ScholarGoogle ScholarCross RefCross Ref
  10. A. Goldberg and D. Robson. phSmalltalk-80: The Language and Its Implementation. Addison-Wesley, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. T. L. Harris. phExtensible Virtual Machines. PhD thesis, Computer Laboratory, University of Cambridge, UK, 2001.Google ScholarGoogle Scholar
  12. M. Haupt, B. Adams, S. Timbermont, C. Gibbs, Y. Coady, and R. Hirschfeld. Disentangling virtual machine architecture. IET Software, 3: 201--218, 2009. 10.1049/iet-sen.2007.0121.Google ScholarGoogle ScholarCross RefCross Ref
  13. M. Haupt, S. Marr, and R. Hirschfeld. CSOM/PL - A virtual machine product line. Journal of Object Technology, 10: 12:1--30, 2011. 10.5381/jot.2011.10.1.a12.Google ScholarGoogle ScholarCross RefCross Ref
  14. D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, and A. Kay. Back to the future: the story of Squeak, a practical Smalltalk written in itself. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 318--326. ACM Press, 1997. 10.1145/263698.263754. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Java Specification Request 223. Java Specification Request 223: Scripting for the Java#8482; Platform, 2006. http://www.jcp.org/en/jsr/detail?id=223.Google ScholarGoogle Scholar
  16. Jikes. Jikes RVM, 2010. http://www.jikesrvm.org/.Google ScholarGoogle Scholar
  17. JRuby. JRuby, 2010. http://www.jruby.org/.Google ScholarGoogle Scholar
  18. Jython. Jython, 2010. http://www.jython.org//.Google ScholarGoogle Scholar
  19. T. Kotzmann, C. Wimmer, H. Mössenböck, T. Rodriguez, K. Russell, and D. Cox. Design of the Java HotSpot#8482; client compiler for Java 6. ACM Transactions on Architecture and Code Optimization, 5 (1): Article 7, 2008. 10.1145/1369396.1370017. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Maxine. Maxine Research Virtual Machine, 2010. https://wikis.oracle.com/display/MaxineVM/.Google ScholarGoogle Scholar
  21. J. McCarthy. History of LISP. In Proceedings of History of Programming Languages, pages 173--185. ACM Press, 1978. 10.1145/960118.808387.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Oracle. The Java HotSpot Performance Engine Architecture, 2006. http://www.oracle.com/technetwork/java/whitepaper-135217.html.Google ScholarGoogle Scholar
  23. ORP. Open Runtime Platform, 2010. Intel Corp. http://sourceforge.net/projects/orp/.Google ScholarGoogle Scholar
  24. OSGi. OSGi - The Dynamic Module System for Java, 2010. http://www.osgi.org/.Google ScholarGoogle Scholar
  25. M. Paleczny, C. Vick, and C. Click. The Java HotSpot#8482; server compiler. In Proceedings of the Java Virtual Machine Research and Technology Symposium, pages 1--12. USENIX, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. S. Pemberton and M. Daniels. Pascal Implementation: The P4 Compiler and Interpreter. Ellis Horwood, 1983.Google ScholarGoogle Scholar
  27. Rhino. Rhino: JavaScript for Java, 2010. http://www.mozilla.org/rhino/.Google ScholarGoogle Scholar
  28. A. Rigo and S. Pedroni. PyPy's approach to virtual machine construction. In Companion to the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 944--953. ACM Press, 2006. 10.1145/1176617.1176753. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. R. Strnivsa, P. Sewell, and M. Parkinson. The Java module system: core design and semantic definition. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 499--514. ACM Press, 2007. 10.1145/1297027.1297064. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. G. Thomas, N. Geoffray, C. Clément, and B. Folliot. Designing highly flexible virtual machines: The JnJVM experience. Software: Practice and Experience, 38 (15): 1643--1675, 2008. 10.1002/spe.887. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. B. L. Titzer, T. Würthinger, D. Simon, and M. Cintra. Improving compiler-runtime separation with XIR. In Proceedings of the ACM/USENIX International Conference on Virtual Execution Environments, pages 39--50. ACM Press, 2010. 10.1145/1735997.1736005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. D. Ungar, A. Spitz, and A. Ausch. Constructing a metacircular virtual machine in an exploratory programming environment. In Companion to the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 11--20. ACM Press, 2005. 10.1145/1094855.1094865. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. N. Wirth and J. Gutknecht. Project Oberon. Addison-Wesley, 1992.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Fine-grained modularity and reuse of virtual machine components

    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 Conferences
      AOSD '12: Proceedings of the 11th annual international conference on Aspect-oriented Software Development
      March 2012
      286 pages
      ISBN:9781450310925
      DOI:10.1145/2162049

      Copyright © 2012 ACM

      Permission to make digital or hard copies of all or part 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 components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 25 March 2012

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      AOSD '12 Paper Acceptance Rate20of79submissions,25%Overall Acceptance Rate41of139submissions,29%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader