Size: a a a

Compiler Development

2021 May 18

к

кана in Compiler Development
не один раз, а скорее каждый раз, когда сильно меняется язык, и меняется код компилятора под эти изменения
источник

к

кана in Compiler Development
и возникает целом вопрос, а стоит ли бутстрапинг того?
источник

к

кана in Compiler Development
это чисто фишечка мол мы так можем, или это дает какие-то ощутимые фичи для тестирования например, чтобы этот гемор окупить?
источник

к

кана in Compiler Development
если компилятор пишут те же люди, что и разрабатывают язык, то как минимум это дает опыт, чтобы понять, что в их языке можно улучшить, чтобы было проще писать компиляторы
источник

AK

Andrei Kurosh in Compiler Development
почему? добавили в язык новые фичи, но сам исходный код компилятора при этом остается совместим со старой версией, и новую им вполне можно собрать
источник

к

кана in Compiler Development
> но сам исходный код компилятора при этом остается совместим со старой версией
кто это сказал?
источник

к

кана in Compiler Development
я вот решу в новой мажорной версии поменять = на -> для определений
источник

к

кана in Compiler Development
или в стандартной библиотеке поменять определения на более удобные
источник

AK

Andrei Kurosh in Compiler Development
вот смотри. у тебя есть язык X версии 1.0, и компилятор этого языка, написанный на нем же самом, версии 1.0
источник

AK

Andrei Kurosh in Compiler Development
ты собираешься выпустить версию 2.0 с брейкинг ченджами
источник

AK

Andrei Kurosh in Compiler Development
но пока ты ее пишешь, ты пользуешься компилятором языка версии 1.0
источник

AT

Alexander Tchitchigi... in Compiler Development
Компилятор неизбежно будет написан на старой версии языка, потому что компилятора для новой версии ещё нет! 😂
источник

AK

Andrei Kurosh in Compiler Development
значит сначала у тебя появляется компилятор языка 2.0, написанный на версии 1.0
источник

AK

Andrei Kurosh in Compiler Development
а уже потом ты можешь этот код обновить до 2.0 и будет компилятор 2.0 языка 2.0
источник

к

кана in Compiler Development
а потом еще раз уже на новой
источник

к

кана in Compiler Development
так что блин такого дает бутстрапинг, чтобы столько запариваться?
источник

AK

Andrei Kurosh in Compiler Development
да, потом ты рефакторишь \ переписываешь старый код с новыми фичами, если хочется
источник

AK

Andrei Kurosh in Compiler Development
насколько я понимаю, сейчас компиляторы языков переписывают на сам язык уже когда он становится mature и обилие ломающих изменений больше не предвидится
источник

А

Алексей ayaye :)... in Compiler Development
миграции нужны, как в базах данных :)
источник

AK

Andrei Kurosh in Compiler Development
либо новый язык дает нечто такое, что на других невозможно \ неудобно - поддерживать кодовую базу компилятора Typescript на динамически типизированном JS было бы нереально
источник