Компилятор LCC
2022-08-06 01:16Я подрихтовал маленько компилятор LCC. Теперь он нормально собирается и не глючит. Попробуем приспособить для БЭСМ-6.
Исходники на Гитхабе: github.com/besm6/lcc/
Сам компилятор качественно описан в книжке:

Исходники на Гитхабе: github.com/besm6/lcc/
Сам компилятор качественно описан в книжке:


no subject
Date: 2022-08-06 16:29 (UTC)У меня есть опасение, что у этого "retargetable" компилятора слишком много встроенных предвзятостей по отношению к таргет-архитектуре, чтобы процесс портирования был приятным.
Строго говоря, добавление к существующему Паскаль-компилятору понятия "указатель на packed char" сделает его равномощным Си-компилятору, а синтаксические различия можно будет устранять постепенно.
Упомяну, кстати о синтаксических различиях, почему в бэсмовском Паскале аналоги break и continue были сделаны с помощью "структурных меток". Дело в том, что в стиле break/continue потенциальная необходимость делать continue будет заставлять компилятор на всякий случай выравнивать начало каждого цикла на слово, что - для однопроходного компилятора без оптимизации на уровне кодогенератора - теряет в среднем полслова на цикл, а со структурными метками сразу видно, надо выравнивать или нет.
И таких мелочей, о которых lcc в принципе не заморачивается, наверное, многие десятки.