Virtual class support at the virtual machine level

  • Authors:
  • Anders Bach Nielsen;Erik Ernst

  • Affiliations:
  • University of Aarhus, Denmark;University of Aarhus, Denmark

  • Venue:
  • Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
  • Year:
  • 2009
  • Homogeneous family sharing

    Proceedings of the ACM international conference on Object oriented programming systems languages and applications

  • Tribal ownership

    Proceedings of the ACM international conference on Object oriented programming systems languages and applications

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes how virtual classes can be supported in a virtual machine. Main-stream virtual machines such as the Java Virtual Machine and the .NET platform dominate the world today, and many languages are being executed on these virtual machines even though their embodied design choices conflict with the design choices of the virtual machine. For instance, there is a non-trivial mismatch between the main-stream virtual machines mentioned above and dynamically typed languages. One language concept that creates an even greater mismatch is virtual classes, in particular because fully general support for virtual classes requires generation of new classes at run-time by mixin composition. Languages like CaesarJ and Object Teams can express virtual classes restricted to the subset that does not require run-time generation of classes, because of the restrictions imposed by the Java Virtual Machine. We have chosen to support virtual classes by implementing a specialized virtual machine, and this paper describes how this virtual machine supports virtual classes with full generality.