Open C++ is a version of
CPP with the Metaobject Protocol providing
reflection capabilities.
The programmer who want to use Open C++ writes a meta-level program, which specifies how to translate or analyze a C++ program. It is written in C++ and defines a small number of classes. Then the meta-level program is compiled by the Open C++ compiler and (dynamically or statically)
linked to the compiler itself as a compiler plug-in. The resulting compiler translates or analyzes a source program (it is called a base-level program for distinction) as the meta-level program specifies.
See
http://www.csg.is.titech.ac.jp/~chiba/openc++.html
--
ArieVanDeursen