В духе этот вопрос, я хотел бы задать аналогичный вопрос, но о компиляторах, а не о интерпретаторах.
Что представляет собой концептуально самый маленький компилятор, который может скомпилировать свой собственный код?
Когда я говорю "концептуально наименьший", я имею в виду, что он использует только очень простые понятия и строит оттуда, а не содержит очень короткий код. Примером того, почему это важное различие, является OTCC очень крошечный компилятор C, который является небольшим, потому что он запутывается, не обязательно потому, что он концептуально простой (он также может быть концептуально простым, но я не знаю, он запутан).
Я также хотел бы добавить, что следующая также может быть очень концептуально маленькой программой, но она на самом деле ничего не говорит нам о том, что происходит, поэтому на самом деле это не то, что я ищу:
(writefile argv[2] (generate (parse (readfile argv[1]))))
То, что я действительно ищу, - это язык, который:
- Тьюринг завершен.
- Возможность компиляции.
Мне это интересно, потому что
- было бы интересным тематическое исследование и
- он может быть полезен в качестве отправной точки для компиляторов начальной загрузки.
Если он не существует, я могу просто написать его сам.:)