Forth
http://fforum.winglion.ru/

обсуждение оптимизатора
http://fforum.winglion.ru/viewtopic.php?f=2&t=1130
Страница 1 из 1

Автор:  yz [ Чт май 17, 2007 18:09 ]
Заголовок сообщения:  обсуждение оптимизатора

Mihail писал(а):
Кому понятного? Что значит понятного? Всем понятно быть не может.

Можно сформулировать требования более четко, например, так:

1) Структурированность
2) Легкость добавления новых правил и замены старых
3) Общность правил
4) Легкость замены таблицы с целью оптимизации по различным критериям (по скорости, по объему, позиционно-независимый код)

Mihail писал(а):
Еще нужен компромис с простотой реализации.

Я думаю, что это уже критерий оценки результата. Все-таки это учебный конкурс.
На реализацию можно объявлять отдельный :-)
Разработка удобного языка - достаточно сложная задача.

Кстати, Михаил, пользуясь моментом. Вы не могли бы описать формальный интерфейс с реальным оптимизатором SPF?

Я его отключил в целевом компиляторе, заменив MCOMPILE, на TC-CALL,
но не уверен, что сделал правильно.

Автор:  Mihail [ Чт май 17, 2007 19:14 ]
Заголовок сообщения: 

yz писал(а):
Можно сформулировать требования более четко, например, так


Тоже давольно обстрактно и субъективно.

yz писал(а):
4) Легкость замены таблицы с целью оптимизации по различным критериям (по скорости, по объему, позиционно-независимый код)


Лучше сделать разные оптимизаторы.
За тем, можно выделить общие части и представить как общую библиотеку.

yz писал(а):
Вы не могли бы описать формальный интерфейс с реальным оптимизатором SPF?


Если я правильно понял вопрос, то должен помочь файл заглушек:

http://fforum.winglion.ru/posting.php?mode=quote&p=1929

В нем собраны слова оптимизатора применяемые вне файла src\macroopt.f .
Может служить заменой src\macroopt.f для изъятия оптимизатора.

yz писал(а):
Я его отключил в целевом компиляторе, заменив MCOMPILE, на TC-CALL,
но не уверен, что сделал правильно


Это только для ЦК.
В рантайме можно
В src\compiler\spf_compile.f
Код:
: COMPILE,  _COMPILE, ;


Вообще для отключения есть слово DIS-OPT.

Автор:  in4 [ Пт май 18, 2007 12:43 ]
Заголовок сообщения: 

yz писал(а):
1) Структурированность
2) Легкость добавления новых правил и замены старых
3) Общность правил
4) Легкость замены таблицы с целью оптимизации по различным критериям (по скорости, по объему, позиционно-независимый код)

5) Легкость рефакторизации - оптимальное выделение понятий и предоставление механизмов(описанных) для различных обработок

Mihail писал(а):
Лучше сделать разные оптимизаторы.
За тем, можно выделить общие части и представить как общую библиотеку.

А можно ли выделить лексикон вариантов обработок, чтобы менять все-таки таблицами? :)
Тем более, что некоторые части таблиц явно будут общими. Особенно, если удачно выделить системно-зависимые вещи!!
Обобщать по готовым сложным вещам не очень удобно - слишком много связей надо учитывать...
Чем раньше начать продумывание - тем меньше напрасной работы - иначе прийдется делать 2 раза - сначала оптимальное решение, потом его же переписывать на новом базисе (лексиконе обработок)...

Автор:  chess [ Вс май 20, 2007 20:11 ]
Заголовок сообщения: 

yz писал(а):
2) Легкость добавления новых правил и замены старых
3) Общность правил

Слова новые правила и понятие общности правил противоречат друг другу.
Не должно быть правил - должен быть алгоритм оптимизации, основанный на определенной вычислительной модели.
Мое мнение - модель должна быть основана на строках, отражающих семантику программы. Строки строятся на основе исходного текста программы, затем используются алгоритмы преобразования строк к оптимальному виду для перевода в код.

Автор:  Victor__v [ Чт июн 07, 2018 15:02 ]
Заголовок сообщения:  Re:

chess писал(а):
yz писал(а):
2) Легкость добавления новых правил и замены старых
3) Общность правил

Слова новые правила и понятие общности правил противоречат друг другу.
Не должно быть правил - должен быть алгоритм оптимизации, основанный на определенной вычислительной модели.
Мое мнение - модель должна быть основана на строках, отражающих семантику программы. Строки строятся на основе исходного текста программы, затем используются алгоритмы преобразования строк к оптимальному виду для перевода в код.


Для форта не катит.
Нельзя 100% указать, что строка "DUP" и слово DUP являются одним и тем же.
Это либо писать хитросделанный интерпретатор форта, который при компиляции будет что-там химичить.
Легче уж постфактум. Легче. К тому же работаем с кодофайлом как со стеком. По-фортовски Ж :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/