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/ |