↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы
Компилятор Руст написан на Руст. Как и чем он компилирует сам себя, когда в язык вносят изменения?
#B1ZWT0 / @o01eg / 3678 дней назад

Компилятор си написан на си. Как и чем он компилирует сам себя, когда в язык вносят изменения?
#B1ZWT0/016 / @l29ah / 3678 дней назад
@l29ah В C и C++ не вносят ломающих изменений
#B1ZWT0/NYU / @o01eg --> #B1ZWT0/016 / 3678 дней назад
рустом
#B1ZWT0/BBW / @buckbeak / 3678 дней назад
@buckbeak Какой версии?
#B1ZWT0/QV1 / @o01eg --> #B1ZWT0/BBW / 3678 дней назад
@o01eg последней собранной
#B1ZWT0/4I3 / @buckbeak --> #B1ZWT0/QV1 / 3678 дней назад
@buckbeak Но если в новом коммите изменили синтаксис, последняя собранная не сможет собрать новый исходники, не?
#B1ZWT0/1LA / @o01eg --> #B1ZWT0/4I3 / 3678 дней назад
@o01eg можно к примеру для начала написать компилятор который сможет скушать синтаксис, а потом уже писать на синтаксисе, не?
#B1ZWT0/C4B / @buckbeak --> #B1ZWT0/1LA / 3678 дней назад
Принцип бутстрапа описан в книге дракона, но читать тебе конечно лень. 1 Write a compiler C1 for language X in language Y. 2 Use the compiler C1 to write compiler C2 for language X in language X. Now C2 is a fully self hosting environment.
#B1ZWT0/WIR / @je / 3678 дней назад
@je this
#B1ZWT0/F83 / @buckbeak --> #B1ZWT0/WIR / 3678 дней назад

Компилятор эрланга написан на эрланге.
Компилятор хаскеля написан на хаскеле.

идея топ-свежак карочи, палю: https://en.wikipedia.org/wiki/Bootstrapping_%28compilers%29

#B1ZWT0/9WV / @ulidtko / 3678 дней назад

ну и «Раст» всё-таки, а не «Руст» // сорь

#B1ZWT0/ZTZ / @ulidtko / 3678 дней назад
@ulidtko Не, ты не понял. Вот случились ломающие изменения в языке. Чтобы старая версия компилятора могла собрать новую, он должен быть написан на старой версии, но тогда на второй и третьей стадии компиляции новый компилятор не соберёт себя из старых исходников.
#B1ZWT0/P2S / @o01eg --> #B1ZWT0/9WV / 3678 дней назад
@ulidtko грамар-улитка в чяти
#B1ZWT0/UC4 / @buckbeak --> #B1ZWT0/ZTZ / 3678 дней назад
@o01eg #B1ZWT0/WIR // ебать ты тупой
#B1ZWT0/5EG / @anonymous --> #B1ZWT0/P2S / 3678 дней назад
@anonymous Нет, ты. Там не указано, что делать если в языке сменился синтаксис.
#B1ZWT0/5MP / @o01eg --> #B1ZWT0/5EG / 3678 дней назад
@o01eg написать компилятор на коде предыдущего синтаксиса для компиляции нового синтаксиса например
#B1ZWT0/7GT / @anonymous --> #B1ZWT0/5MP / 3678 дней назад
@anonymous там используется трёхкратная сборка. Новый компилятор старые исходники себя же не соберёт
#B1ZWT0/A1K / @o01eg --> #B1ZWT0/7GT / 3678 дней назад
Ебать, вопросы уровня начальной школы.
#B1ZWT0/VXV / @komar / 3678 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.