Efficient virtual machine support of runtime structural reflection

  • Authors:
  • Francisco Ortin;Jose Manuel Redondo;J. Baltasar García Perez-Schofield

  • Affiliations:
  • University of Oviedo, Computer Science Department, Calvo Sotelo s/n, 33007, Oviedo, Spain;University of Oviedo, Computer Science Department, Calvo Sotelo s/n, 33007, Oviedo, Spain;University of Vigo, Computer Science Department, As Lagoas s/n, 32004, Ourense, Spain

  • Venue:
  • Science of Computer Programming
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Increasing trends towards adaptive, distributed, generative and pervasive software have made object-oriented dynamically typed languages become increasingly popular. These languages offer dynamic software evolution by means of reflection, facilitating the development of dynamic systems. Unfortunately, this dynamism commonly imposes a runtime performance penalty. In this paper, we describe how to extend a production JIT-compiler virtual machine to support runtime object-oriented structural reflection offered by many dynamic languages. Our approach improves runtime performance of dynamic languages running on statically typed virtual machines. At the same time, existing statically typed languages are still supported by the virtual machine. We have extended the .Net platform with runtime structural reflection adding prototype-based object-oriented semantics to the statically typed class-based model of .Net, supporting both kinds of programming languages. The assessment of runtime performance and memory consumption has revealed that a direct support of structural reflection in a production JIT-based virtual machine designed for statically typed languages provides a significant performance improvement for dynamically typed languages.