Here is the entire implementation code for a language I have just invented, called Quine:
quine quine
As you can see, in Quine there is no fundamental distinction between program code and data: the quine interpreter may be passed to itself as an argument. Indeed, due to the rigorous nature of the Quine type system, the quine interpreter is the only value that the quine interpreter can accept as an argument.
Unfortunately, due to the inherent complexity of the aforementioned type system, it is not yet known whether the process of outputting the type error message that is generated when any other value is submitted will ever terminate.
One of the advantages of Quine’s static type-checking is the language’s immense reliability. Execution of the program quine quine will almost unfailingly cause the string “quine quine” to be printed to the console.
Venturesome souls with a mind for such things have been hard at work on a correctness proof for the program quine quine quine (as per the specification, the console output is expected to be “quine quine quine”; and empirical observation suggests that this is at least quite frequently the case). It is rumoured that Oleg Kiselyov is quite close to a solution.