Meta-Object Protocol (MOP) is an effective method to meet requirements from usage pattern and execution environment that are not known or decidable at implementation time but at run time. Despite its effectiveness, MOP brings heavy performance overhead due to run-time interpretation. To reduce the performance overhead from MOP, there are some techniques such as partial evaluation technique, compile-time technique, and unification technique of compile-time and run-time. Among them, compile-time technique causes little run-time performance overhead and is adequate to compiler-based programming languages which are used for most commercial applications and. However, compile-time technique lacks support for run-time meta-operation.
In this paper, we investigate that meta-relation used by run-time meta-operation can be processed at compile-time by transformation of meta-object. With the transformation, we propose a new implementation technique for MOP based on compile-time technique. Our technique supports run-time meta-operation and doesn't have run-time interpretation process which causes heavy runt-time performance overhead. Our technique is very promising in applications where multiple implementation strategies are needed for different usage patterns which can be decided only at run time.