Здравствуйте, Gaperton, Вы писали:
G>Понятно. Я имел в виду несколько другое.
Я показал то, что есть. Некоторые асмовые функции используют естественно, кроме eax, esi, esp другие регистры.
Не проблема их использовать.
G>"Взрослые" компиляторы делают для сложных арифметических выражений раскладку на все доступные регистры, минимизируя обращение к памяти, есть специальный алгоритм для этого. Для того, чтобы это сделать, необходимо все выражение компилировать целиком.
Это всё понятно.
Но, по-моему, Форты никогда не были "взрослыми" компиляторами. Они оригинальны, мощны, но ПРИМИТИВНЫ.
И в этом их сила. Всё даётся с трудом, никто за тебя ничего не сделает и не соптимизирует, т.е. так-сказать "НЕ НРАВИТСЯ — НЕ ЮЗАЙ!".
G>В сети я встречал статью (в контексте Форт), где предлагался подобный алгоритм определения раскладки регистров для стековой арифметики — работает как оптимизация на байт-коде отдельным проходом (т. е. при кодогенерации опять рассматривается группа операций одновременно). В retroforth применяются подобные оптимизации?
Подобной оптимизации в ядре и стандартной реализации Retroforth НЕТ.
Ибо данная форт-система не является оптимизирующей.
Это одна из простейших, но при этом мощных и расширяемых систем.
Если есть желание, можно как-то продумать оптимизацию, взять идеи по оптимизации из существующих фортов, например из того же SP-FORTH'а, и внедрить в своей работе.