История изменений
Исправление hateyoufeel, (текущая версия) :
Ну у Си-шки ещё к плюсам можно отнести, что даже несмотря на усложнения новых стандартов, в сущности, он простой, как валенок.
Тогда почему компиляторы такие жирные? Чтобы запилить простой язык, не нужен миллион строк кода. Даже полмиллиона не нужно.
Тут проблема в том, что C гораздо сложнее чем кажется. Дьявол, как всегда, кроется в мелочах. Там анон выше про «pointer provenance» написал. Что это такое? В стандарте не очень описано. Как эту проверку правильно реализовать? А хер знает. И такой лажи там очень много.
Запилить компилятор минимального подмножества C – задача, максимум, курсовой работы третьего курса для программистов. Особенно если это можно не на самом C делать. Запилить компилятор стандарта C18, даже без опциональных фич, да так чтобы он был совместим с GCC и шлангом – это как самому себе жопу на британский флаг порвать.
Если хочешь посмотреть на реально простые в реализации языки, смотри на Forth или Scheme. Вот они – действительно простые. Без шуток. Реализацию Forth, способную саму себя скомпилировать, можно за неделю-две написать.
Исходная версия hateyoufeel, :
Ну у Си-шки ещё к плюсам можно отнести, что даже несмотря на усложнения новых стандартов, в сущности, он простой, как валенок.
Тогда почему компиляторы такие жирные? Чтобы запилить простой язык, не нужен миллион строк кода. Даже полмиллиона не нужно.
Тут проблема в том, что C гораздо сложнее чем кажется. Дьявол, как всегда, кроется в мелочах. Там анон выше про «pointer provenance» написал. Что это такое? В стандарте не очень описано. Как эту проверку правильно реализовать? А хер знает. И такой лажи там очень много.
Запилить компилятор минимального подмножества C – задача, максимум, курсовой работы третьего курса для программистов. Особенно если это можно не на самом C делать. Запилить компилятор стандарта C18, даже без опциональных фич, да так чтобы он был совместим с GCC и шлангом – это как самому себе жопу на британский флаг порвать.
Если хочешь посмотреть на реально простые в реализации языки, смотри на Forth или Scheme. Вот они – действительно простые. Без шуток.