Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт апр 25, 2024 03:57

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Насколько легко реализуема подстановка?
СообщениеДобавлено: Вт окт 21, 2008 09:17 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Рассуждение на тему "что действительно необходимо всякому форту" быстро приводит к мысли, что Форт
    1. выигрывает в скорости работы программиста от большой структурированности
    2. проигрывает по скорости исполнения от большого числа вызовов

эта ситуация могла бы улучшиться за счёт подстановки кода небольших слов в код слов старшего уровня где возможно
это можно назвать inline - подстановкой или как-то иначе (всё-таки это не соответствует модификатору inline из С++)
но как легко это реализовать?
Тут говорили, что оптимизатор Михаила сильно перегрузил СПФ дополнительным кодом (усложнил)

Может ли быть простой алгоритм такой подстановки?
Может ли быть алгоритм, пригодный для всех типов шитого кода, т.е. переносимый с форта на форт независимо от шитого кода?

кто что знает (думает)?

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 09:22 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Флажок inline для базовых слов. Такое слово не компилируется в call, а "разворачивается". Выигрыш по скорости наблюдался в 1-3%, так что оно не особо критично.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 09:54 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
Флажок inline для базовых слов. Такое слово не компилируется в call, а "разворачивается". Выигрыш по скорости наблюдался в 1-3%, так что оно не особо критично.
Способ "разворачивания" зависит от типа шщитого кода?
Как может быть такой маленький процент прироста производительности? Может быть алгоритм несовершенен? Просто самый грубый подсчёт показывает, что должно быть больше (около 20% минимум)

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 10:03 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
вопрос писал(а):
Тут говорили, что оптимизатор Михаила сильно перегрузил СПФ дополнительным кодом (усложнил)


Что значит перегрузил? Дефицит ОЗУ? И что усложнил? Какие проблемы?

вопрос писал(а):
Может ли быть простой алгоритм такой подстановки?


Можно просто урезать мой оптимизатор оставив один подстановщик.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 10:09 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Что значит перегрузил?
это говорил не я , смысл был - усложнил манипуляции с кодом самого форта
Цитата:
Можно просто урезать мой оптимизатор оставив один подстановщик.
и насколько это просто (переносимо)?

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 10:20 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
вопрос писал(а):
усложнил манипуляции с кодом самого форта


Это как? Можно пример? (вопрос не только к вопросу).

вопрос писал(а):
и насколько это просто (переносимо)?


Проще некуда. Есть сово DIS-OPT (выклющение оптимизатора)
обнуляющий флаг OPT? . Все что этот флаг блокирует, при 0-ом значении,
то удаляется.


Последний раз редактировалось Mihail Вт окт 21, 2008 11:34, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 10:57 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
Способ "разворачивания" зависит от типа шщитого кода?

Нет, конечно. Содержимое вызываемого слова просто вставляется в код вместо call.
вопрос писал(а):
Как может быть такой маленький процент прироста производительности? Может быть алгоритм несовершенен? Просто самый грубый подсчёт показывает, что должно быть больше (около 20% минимум)

Да какой же там алгоритм? Просто ряд слов помечаются как вставляемые прямо в код со всеми потрохами. И уж какой прирост реально получился, такой и получился. Не знаю, откуда там 20% должно быть.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 11:12 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
Нет, конечно. Содержимое вызываемого слова просто вставляется в код вместо call. Просто ряд слов помечаются как вставляемые прямо в код со всеми потрохами. И уж какой прирост реально получился, такой и получился. Не знаю, откуда там 20% должно быть.

А вложенность присутствует? очень мало 3 %

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 11:21 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
А вложенность присутствует? очень мало 3 %

Тестировалось на имевшихся в тот момент проектах. Нормальный, не синтетический код. Объемы текста десятки килобайт.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 12:09 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Mihail писал(а):
вопрос писал(а):
усложнил манипуляции с кодом самого форта

Это как? Можно пример? (вопрос не только к вопросу).


Например: При реализации GOTO для spf4 у меня были некоторые трудности:)

Но это можно обойти, если работать с моделью кода spf4 ( формируемым jpf )
а далее передавать его оптимизатору.

P.S. Достижимо ли это?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Насколько легко реализуема подстановка?
СообщениеДобавлено: Вт окт 21, 2008 13:33 
Не в сети

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
вопрос писал(а):
Рассуждение на тему "что действительно необходимо всякому форту" быстро приводит к мысли, что Форт
    1. выигрывает в скорости работы программиста от большой структурированности
    2. проигрывает по скорости исполнения от большого числа вызовов

А от большого числа инициализаций классов другие языки что выигрывают в скорости? Давайте возмем еще фрамеворк и скажем что он быстрей форта. Второй пункт совсем не катит давно. Если сравнивать Си, асм с фортом то возможно (и то можно с оптимизировать один к одному), но языков то ой на сколько больше и все они практически уже по другую сторону скорости.

_________________
Меня нет, не будет и не было.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 14:20 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Kopa писал(а):
При реализации GOTO для spf4 у меня были некоторые трудности


Чтобы заработало http://home.earthlink.net/~neilbawd/goto.txt
предворительно нужно определить
REQUIRE [IF] ~MAK\CompIF.f
REQUIRE [IFDEF] ~nn\lib\ifdef.f
REQUIRE CASE-INS lib\ext\caseins.f

[IFNDEF] CS-ROLL
: CS-ROLL
1+ 2* DUP ROLL
SWAP 1- ROLL ;
[THEN]

Хотя, по моему, GOTO можно определить проще и корректней.

Kopa писал(а):
Но это можно обойти, если работать с моделью кода spf4 ( формируемым jpf )


Что нужно обходить? Что за "модель кода" ?
Ты можешь привести пример исходного кода который идет под SPF3 или
под fork http://fforum.winglion.ru/viewforum.php?f=25 , а под SPF4 не идет?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 15:14 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Mihail писал(а):
Kopa писал(а):
Но это можно обойти, если работать с моделью кода spf4 ( формируемым jpf )

Что нужно обходить? Что за "модель кода" ?


Например классическая модель организации Форт-системы в виде косвенного шитого кода.:)
для spf4. ( с точки зрения внутренней организации Форт-системы)
Полагаю, в своё время, многие Форт-системы очень сильно использовали эту возможность.

Код программы в этом случае, в большей степени, соответствует токенному текстовому варианту.
А оптимизатор можно включать при загрузке или отключив, при необходимости, из файла программы получить её исходный код.

Mihail писал(а):
Ты можешь привести пример исходного кода который идет под SPF3 или
под fork http://fforum.winglion.ru/viewforum.php?f=25 , а под SPF4 не идет?


А зачем? Неужели они на 100% совместимы?

Например, в spf375 был пример реализованной игры "Реверси" и где он для spf4:)
( возможно это некорректный пример т.к. программа работала под Win98).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 16:44 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Kopa писал(а):
Например классическая модель организации Форт-системы в виде косвенного шитого кода.
для spf4. ( с точки зрения внутренней организации Форт-системы)


Из клонов SPF3 только у dsForth http://www.delosoft.com/fs.exe?action=i ... h/download
косвенный шитый код. У остальных нативный включая JPF.

Kopa писал(а):
многие Форт-системы очень сильно использовали эту возможность.


Не понял фразу. Возможность использовать косвенный шитый код (КШК) ?
Или решать некие задачи в результате использования КШК?

Kopa писал(а):
А оптимизатор можно включать при загрузке или отключив, при необходимости, из файла программы получить её исходный код.


Ничего не понял. В СП4 оптимизатор можно включать и выключать, при необходимости.
Если хочешь восстанавливать исходный текст, можно выключить инлайн подстановщик
обнулением допустимого размера инлайн подстановки 0 TO MM_SIZE .

Kopa писал(а):
Mihail писал(а):

Ты можешь привести пример исходного кода который идет под SPF3 или
под fork http://fforum.winglion.ru/viewforum.php?f=25 , а под SPF4 не идет?

А зачем? Неужели они на 100% совместимы?


Мелкая несовместимость есть. При обнулении MM_SIZE , наличие инлайн подстановки в
SPF4 не должно играть роли.

Kopa писал(а):
Например, в spf375 был пример реализованной игры "Реверси" и где он для spf4:)


Ты-бы хоть ссылку дал. Нет времени копаться в большой программе.
Простой пример можешь предоставить? Ты говорил о пробеме при реализации GOTO.
Эта проблема может быть продемонстрирована в виде простой программы?
Или просто - твоя реализация GOTO на том-же JPF?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 21, 2008 17:43 
Не в сети

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Mihail писал(а):
Ты говорил о пробеме при реализации GOTO.
Эта проблема может быть продемонстрирована в виде простой программы?
Или просто - твоя реализация GOTO на том-же JPF?

Вот нашли проблему. Да нет ни какой проблемы сделать GOTO в одном слове, но вопрос такой, а зачем GOTO нужно? Что do-loop не катит? (Для Кора) (только не говорите мне что GOTO нужно для другого, для другого есть другие нормальные решения и GOTO тут совсем не катит, только для за цикливания оно удобно и все)

_________________
Меня нет, не будет и не было.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 49


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB