Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: |
|
|
chess писал(а): yz писал(а): 2) Легкость добавления новых правил и замены старых 3) Общность правил Слова новые правила и понятие общности правил противоречат друг другу. Не должно быть правил - должен быть алгоритм оптимизации, основанный на определенной вычислительной модели. Мое мнение - модель должна быть основана на строках, отражающих семантику программы. Строки строятся на основе исходного текста программы, затем используются алгоритмы преобразования строк к оптимальному виду для перевода в код. Для форта не катит. Нельзя 100% указать, что строка "DUP" и слово DUP являются одним и тем же. Это либо писать хитросделанный интерпретатор форта, который при компиляции будет что-там химичить. Легче уж постфактум. Легче. К тому же работаем с кодофайлом как со стеком. По-фортовски Ж
[quote="chess"][quote="yz"]2) Легкость добавления новых правил и замены старых 3) Общность правил [/quote] Слова новые правила и понятие общности правил противоречат друг другу. Не должно быть правил - должен быть алгоритм оптимизации, основанный на определенной вычислительной модели. Мое мнение - модель должна быть основана на строках, отражающих семантику программы. Строки строятся на основе исходного текста программы, затем используются алгоритмы преобразования строк к оптимальному виду для перевода в код.[/quote]
Для форта не катит. Нельзя 100% указать, что строка "DUP" и слово DUP являются одним и тем же. Это либо писать хитросделанный интерпретатор форта, который при компиляции будет что-там химичить. Легче уж постфактум. Легче. К тому же работаем с кодофайлом как со стеком. По-фортовски Ж :)
|
|
|
|
Добавлено: Чт июн 07, 2018 15:02 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
yz писал(а): 2) Легкость добавления новых правил и замены старых 3) Общность правил
Слова новые правила и понятие общности правил противоречат друг другу.
Не должно быть правил - должен быть алгоритм оптимизации, основанный на определенной вычислительной модели.
Мое мнение - модель должна быть основана на строках, отражающих семантику программы. Строки строятся на основе исходного текста программы, затем используются алгоритмы преобразования строк к оптимальному виду для перевода в код.
[quote="yz"]2) Легкость добавления новых правил и замены старых 3) Общность правил [/quote]
Слова новые правила и понятие общности правил противоречат друг другу.
Не должно быть правил - должен быть алгоритм оптимизации, основанный на определенной вычислительной модели.
Мое мнение - модель должна быть основана на строках, отражающих семантику программы. Строки строятся на основе исходного текста программы, затем используются алгоритмы преобразования строк к оптимальному виду для перевода в код.
|
|
|
|
Добавлено: Вс май 20, 2007 20:11 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
yz писал(а): 1) Структурированность 2) Легкость добавления новых правил и замены старых 3) Общность правил 4) Легкость замены таблицы с целью оптимизации по различным критериям (по скорости, по объему, позиционно-независимый код) 5) Легкость рефакторизации - оптимальное выделение понятий и предоставление механизмов(описанных) для различных обработок Mihail писал(а): Лучше сделать разные оптимизаторы. За тем, можно выделить общие части и представить как общую библиотеку.
А можно ли выделить лексикон вариантов обработок, чтобы менять все-таки таблицами?
Тем более, что некоторые части таблиц явно будут общими. Особенно, если удачно выделить системно-зависимые вещи!!
Обобщать по готовым сложным вещам не очень удобно - слишком много связей надо учитывать...
Чем раньше начать продумывание - тем меньше напрасной работы - иначе прийдется делать 2 раза - сначала оптимальное решение, потом его же переписывать на новом базисе (лексиконе обработок)...
[quote="yz"]1) Структурированность 2) Легкость добавления новых правил и замены старых 3) Общность правил 4) Легкость замены таблицы с целью оптимизации по различным критериям (по скорости, по объему, позиционно-независимый код) [/quote] 5) Легкость рефакторизации - оптимальное выделение понятий и предоставление механизмов(описанных) для различных обработок
[quote="Mihail"]Лучше сделать разные оптимизаторы. За тем, можно выделить общие части и представить как общую библиотеку.[/quote]
А можно ли выделить лексикон вариантов обработок, чтобы менять все-таки таблицами? :)
Тем более, что некоторые части таблиц явно будут общими. Особенно, если удачно выделить системно-зависимые вещи!!
Обобщать по готовым сложным вещам не очень удобно - слишком много связей надо учитывать...
Чем раньше начать продумывание - тем меньше напрасной работы - иначе прийдется делать 2 раза - сначала оптимальное решение, потом его же переписывать на новом базисе (лексиконе обработок)...
|
|
|
|
Добавлено: Пт май 18, 2007 12:43 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
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.
[quote="yz"]Можно сформулировать требования более четко, например, так[/quote]
Тоже давольно обстрактно и субъективно.
[quote="yz"]4) Легкость замены таблицы с целью оптимизации по различным критериям (по скорости, по объему, позиционно-независимый код)[/quote]
Лучше сделать разные оптимизаторы. За тем, можно выделить общие части и представить как общую библиотеку.
[quote="yz"]Вы не могли бы описать формальный интерфейс с реальным оптимизатором SPF? [/quote]
Если я правильно понял вопрос, то должен помочь файл заглушек:
http://fforum.winglion.ru/posting.php?mode=quote&p=1929
В нем собраны слова оптимизатора применяемые вне файла src\macroopt.f . Может служить заменой src\macroopt.f для изъятия оптимизатора.
[quote="yz"]Я его отключил в целевом компиляторе, заменив MCOMPILE, на TC-CALL, но не уверен, что сделал правильно[/quote]
Это только для ЦК.
В рантайме можно
В src\compiler\spf_compile.f
[code] : COMPILE, _COMPILE, ; [/code]
Вообще для отключения есть слово DIS-OPT.
|
|
|
|
Добавлено: Чт май 17, 2007 19:14 |
|
|
|
|
|
Заголовок сообщения: |
обсуждение оптимизатора |
|
|
Mihail писал(а): Кому понятного? Что значит понятного? Всем понятно быть не может.
Можно сформулировать требования более четко, например, так: 1) Структурированность 2) Легкость добавления новых правил и замены старых 3) Общность правил 4) Легкость замены таблицы с целью оптимизации по различным критериям (по скорости, по объему, позиционно-независимый код) Mihail писал(а): Еще нужен компромис с простотой реализации.
Я думаю, что это уже критерий оценки результата. Все-таки это учебный конкурс.
На реализацию можно объявлять отдельный
Разработка удобного языка - достаточно сложная задача.
Кстати, Михаил, пользуясь моментом. Вы не могли бы описать формальный интерфейс с реальным оптимизатором SPF?
Я его отключил в целевом компиляторе, заменив MCOMPILE, на TC-CALL,
но не уверен, что сделал правильно.
[quote="Mihail"] Кому понятного? Что значит понятного? Всем понятно быть не может. [/quote] Можно сформулировать требования более четко, например, так:
1) Структурированность 2) Легкость добавления новых правил и замены старых 3) Общность правил 4) Легкость замены таблицы с целью оптимизации по различным критериям (по скорости, по объему, позиционно-независимый код)
[quote="Mihail"] Еще нужен компромис с простотой реализации. [/quote]
Я думаю, что это уже критерий оценки результата. Все-таки это учебный конкурс.
На реализацию можно объявлять отдельный :-)
Разработка удобного языка - достаточно сложная задача.
Кстати, Михаил, пользуясь моментом. Вы не могли бы описать формальный интерфейс с реальным оптимизатором SPF?
Я его отключил в целевом компиляторе, заменив MCOMPILE, на TC-CALL,
но не уверен, что сделал правильно.
|
|
|
|
Добавлено: Чт май 17, 2007 18:09 |
|
|
|
|