Towards the Integration of Metaprogramming Services into Java

Ignacio Lagartos, Jose Manuel Redondo, Francisco Ortin
2017 Proceedings of the 12th International Conference on Evaluation of Novel Approaches to Software Engineering  
Dynamic languages are widely used in scenarios where runtime adaptability is a strong requirement. The metaprogramming features provided by these languages allow the dynamic adaptation of the structure of classes and objects, together with the evaluation of dynamically generated code. These features are used to build software capable of adapting to runtime changing environments. However, this flexibility is counteracted with the lack of static type checking provided by statically typed
more » ... such as Java. Static type checking supports the earlier detection of type errors, involving a valuable tool in software development. In this position paper, we describe the steps we are following to add some runtime metaprogramming services to Java. We intend to provide the runtime flexibility of structural intercession and dynamic code evaluation provided by most dynamic languages, without losing the robustness of the compile-time type checking of Java. The metaprogramming services are provided as a library so, unlike other existing systems, any standard virtual machine and language compiler could be used.
doi:10.5220/0006355802770284 dblp:conf/enase/LagartosRO17 fatcat:k3yraekrcnhgtjeu3ojw6l4jge