from http://cliki.tunes.org/Meta-Circular
A term describing an interpreter for a language L written in the same language L (or a subset thereof), said to be a meta-circular interpreter. More generally, any kind of metaprogram (implementation infrastructure or otherwise) written in a system S made to compute or reason about the meaning of programs written in system S is said to be meta-circular. Hence, you can have meta-circular compilers (what you do when bootstrapping a language implementation), meta-circular definitions of language extensions (see the CLOS MOP), meta-circular reasoning systems (NuPRL? ACL2), etc.