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