arrow
Return

Efficient runtime metaprogramming services for Java

delete2019-07-01
delete4
delete
OA
AI
I
Ignacio Lagartos
J
José Manuel Redondo
F
Francisco Ortín *
DOI:10.1016/j.jss.2019.04.030delete
deleteOriginal
deleteShare
deleteSave
View PDF
Abstract

Abstract

En 中文
The Java programming language and platform provide many optimizations to execute statically typed code efficiently. Although Java has gradually incorporated more dynamic features across its versions, it does not provide several metaprogramming features supported by most dynamic languages, such as structural intercession (the ability to dynamically modify the structure of classes) and dynamic code generation. Therefore, we propose a method to add those metaprogramming features to Java in order to increase its runtime adaptiveness, while taking advantage of the robustness of its static type system and the performance of its virtual machine. We support the dynamic addition, deletion and replacement of class methods and fields, and dynamic code generation. The metaprogramming services are provided as a library, so neither the Java language nor its virtual machine are modified. We evaluate our system, called JMPLib, and compare it with the existing metaprogramming systems for the Java platform and other highly optimized dynamic languages. JMPLib obtains similar runtime performance to the existing fastest system that modifies the implementation of the Java virtual machine. Moreover, our system introduces no performance penalty when metaprogramming is not used, and consumes fewer memory resources than the rest of implementations for the Java platform. (C) 2019 Elsevier Inc. All rights reserved.
Keywords:
Metaprogramming
Structural intercession
Static type checking
Dynamic code evaluation
Code instrumentation
Runtime performance
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

Journal of Systems and Software cover
Journal of Systems and Software
IF:
4.1
Papers:
5.4K
Citations:
8.4K

Organization

U
University of Oviedo
Scholars:
1.1W
Papers: 1.0W
Citations: 15