The compiler support facility is not a new idea. There have been several attempts to provide similar services in existing languages.
For instance, a Prolog [C&M 81] or a Lisp program is a manageable Prolog (or Lisp) data structure. This property was originally meant to support some kind of meta-programming, but it soon appeared that it can prove extremely useful for software management purposes.
Forth [Forth 83] is also a language where the interpretation-compilation process is a documented part of the environment, and can be used by the programmer. New words can be defined, with a compile-time and a run-time behaviour. This makes Forth one of the most extensible languages available today.
Originally, the purpose of YAFL's compiler support facility was not to allow the creation of compilers for other specialized languages, somehow derived from YAFL; but to provide an efficient tool for software engineering and management of the systems developed in YAFL. However, things sometimes happen differently than predicted. In practice, there has been a significant development effort toward truly extending the YAFL programming language for specialized purposes [B&R 94].