Metaprogramming taken to an unnecessarily high level- how can a program write not just other programs, but a programming language?
Of course we could in principle auto-generate a full programming language. First we'd have to say what being a full programming language actually entails. Here is my attempt:


Syntax of programs.
A notion of value (programs that have no further reductions, but are not stuck).
A reduction relation giving the operational semantic.
A notion of program equality.


All of this can be specified syntactically and generated by a computer. There are tools for part of this purpose, e.g. Ott, but specifying the whole operational semantics of a realistic PL is extremely hard work. One could argue that for example the C used in programming the Linux kernel is only specified by the official GCC version used for compilation of the kernel.

As specifying all of this is such a pain, nobody has so far produced a full-spectrum meta-programming tool. At this point it is not clear how it would look like and how it would help.