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