jUCM: Universal Class Morphing (position paper)
Aggelos Biboudis, George Fourtounis, Yannis Smaragdakis

TL;DR
jUCM introduces a pattern-based compile-time reflection language that enables universal class morphing, allowing pattern-matching over types and maintaining modular type safety, enhancing metaprogramming capabilities.
Contribution
It extends class-morphing with universal morphing, allowing pattern-matching over types while ensuring type safety, which is a novel addition to compile-time reflection tools.
Findings
Provides a disciplined metaprogramming language with type safety.
Enables pattern-matching over classes and types.
Discusses design for integrating universal morphing into Java.
Abstract
We extend prior work on class-morphing to provide a more expressive pattern-based compile-time reflection language. Our MorphJ language offers a disciplined form of metaprogramming that produces types by statically iterating over and pattern-matching on fields and methods of other types. We expand such capabilities with "universal morphing", which also allows pattern-matching over types (e.g., all classes nested in another, all supertypes of a class) while maintaining modular type safety for our meta-programs. We present informal examples of the functionality and discuss a design for adding universal morphing to Java.
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
TopicsLogic, programming, and type systems · Model-Driven Software Engineering Techniques · Advanced Software Engineering Methodologies
