Интуитивно, кажется, что компилятор для языка Foo сам не может быть записан в Foo. Более конкретно, первый компилятор для языка Foo не может быть записан в Foo, но любой последующий компилятор может быть записан для Foo.
Но действительно ли это так? У меня есть очень смутное воспоминание о том, как читать язык, чей первый компилятор был написан в "самом себе". Возможно ли это, и если да, то как?
