Linguistic Reflection in Java
G. N. C. Kirby, R. Morrison, D. W. Stemple

TL;DR
This paper introduces linguistic reflection in Java, enabling programs to generate and incorporate new code at runtime, enhancing flexibility, genericity, and system evolution.
Contribution
It presents a compiler-based approach to linguistic reflection in Java, demonstrating its benefits for code generation and system adaptability.
Findings
Supports high levels of genericity
Enables on-demand code generation
Evaluated as efficient and safe
Abstract
Reflective systems allow their own structures to be altered from within. Here we are concerned with a style of reflection, called linguistic reflection, which is the ability of a running program to generate new program fragments and to integrate these into its own execution. In particular we describe how this kind of reflection may be provided in the compiler-based, strongly typed object-oriented programming language Java. The advantages of the programming technique include attaining high levels of genericity and accommodating system evolution. These advantages are illustrated by an example taken from persistent programming which shows how linguistic reflection allows functionality (program code) to be generated on demand (Just-In-Time) from a generic specification and integrated into the evolving running program. The technique is evaluated against alternative implementation approaches…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsModel-Driven Software Engineering Techniques · Software Engineering and Design Patterns · Multimedia Communication and Technology
