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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 90 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вс мар 12, 2017 16:23 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
Хватит ли двух кб под юзверей для функционирования многопоточного форта, если учесть что чуть более 1 кб уже занято?

"640 кбайт хватит всем" :D


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вс мар 12, 2017 17:39 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Цитата:
640 кбайт хватит всем

Ага, когда писался СПФ наверняка думали также :D
Но можно и разширить при надобности, в разумных пределах ест-но

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вс мар 12, 2017 19:18 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
Но можно и разширить при надобности, в разумных пределах ест-но

Боюсь, что разумные пределы окажутся "от и до". Чем больше в Форте ограничений, даже указанных в документации, тем сложнее все удерживать в голове. То тут, то там вылезают разнообразные "нельзя", и можно запутаться. В целом программисту комфортнее, когда он считает, что ограничений нет вообще - памяти хватает, причем и на программу, и на данные, и на стек. Если чего-то не хватает, тогда надо думать. Но по возможности для словаря стоит дать не просто максимум, а на порядок больше, для данных - 1-2-4 Гбайт (все равно ОС просто фиксирует запрос, а физически страницы выделяет в момент обращения к ним), для стеков столько, чтобы типичные алгоритмы заведомо не приближались к пределу даже близко. В этом плане заводить еще одну структуру с фиксированным размером - еще одна константа для удержания в голове. Даже если "можно зайти в исходные тексты, поправить и перекомпилировать".

Я пока не вижу существенных недостатков у идеи слепых ответвлений у словаря с локальными определениями внутри слов. Фактически это объявления с привязкой к глобальным адресам, но имена локальных объявлений видятся только пока создается слово. В этом плане можно хоть все слова иметь локальными, вложенными в общий MAIN, никаких дополнительных ограничений тут нет.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вс мар 12, 2017 20:57 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Hishnik писал(а):
Я пока не вижу существенных недостатков у идеи слепых ответвлений у словаря с локальными определениями внутри слов. Фактически это объявления с привязкой к глобальным адресам, но имена локальных объявлений видятся только пока создается слово. В этом плане можно хоть все слова иметь локальными, вложенными в общий MAIN, никаких дополнительных ограничений тут нет.

Это точно. Это не локальные объекты, а глобальные с локальными именами. Отсутствие ограничений в отличие от именно локальных
объектов - их огромное преимущество. Можно создавать такие слова в любом месте внутри тела определений по ходу создания определений. В случае использования локально-именованных глобальных переменных не надо править всю программу как если бы это было в случае использования глобальных переменных с глобальными именами. При этом издержки на память под локальный словарь, который на порядки компактнее основного словаря, крайне малы. Для ПК, с его огромным объемом ОЗУ, так вообще незаметны.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вс мар 12, 2017 21:45 
Не в сети

Зарегистрирован: Пн июл 04, 2016 13:28
Сообщения: 39
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Вот не пойму, зачем создатели новых форт-систем умышленно ограничивают пользователя? Я считаю, что форт-система должна самостоятельно контролировать размеры системных объектов (стеков, user-space, и др.). Так же необходим отдельный стек для хранения динамических объектов контролируемых сборщиком мусора.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вс мар 12, 2017 23:18 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Проще зафиксировать. Кроме того выч. модель не предполагает интенствное использование дин. памяти.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вс мар 12, 2017 23:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
loztcatz писал(а):
Вот не пойму, зачем создатели новых форт-систем умышленно ограничивают пользователя? Я считаю, что форт-система должна самостоятельно контролировать размеры системных объектов (стеков, user-space, и др.). Так же необходим отдельный стек для хранения динамических объектов контролируемых сборщиком мусора.

Причин много. Самая простая - если стек будет разрастаться, подстраиваясь под запросы, ошибки в программе будут вызывать его бесконтрольное разрастание, вплоть до падения программы из-за нехватки места на диске. И это вместо сообщения "программа обратилась по неверному адресу памяти", которое появится довольно быстро. Чем больше таких мелких сущностей вида "кэш хэша юзер-спейса непривилегированного потока размером 4 кб, но вы можете изменить, потому что вам доступны исходные тексты", тем больше у программиста голова пойдет кругом.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Пн мар 13, 2017 20:56 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Цитата:
Я считаю, что форт-система должна самостоятельно контролировать размеры системных объектов

Это можно устроить.
Надо будет всего лишь перелопатить весь стек возвратов.
Но лучше см ответ хищника выше

_________________
Цель: сделать 64-битную Нову под Винду


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

Зарегистрирован: Пн июл 04, 2016 13:28
Сообщения: 39
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Хищник не убедителен. Я привык к динамическому стеку.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Пн мар 13, 2017 22:04 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
loztcatz писал(а):
Хищник не убедителен. Я привык к динамическому стеку.

Стек это лишь место для передачи параметров между процедурами. Сколько там может передано параметров?
Единственно когда нужен большой стек, так это в случае рекурсивных вызовов процедур. Но вместо рекурсии может быть использован цикл, и нужда в динамическом стеке отпадет.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Пн мар 13, 2017 22:52 
Не в сети

Зарегистрирован: Пн июл 04, 2016 13:28
Сообщения: 39
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
chess писал(а):
Стек это лишь место для передачи параметров между процедурами. Сколько там может передано параметров?
Без ограничений.
chess писал(а):
Единственно когда нужен большой стек, так это в случае рекурсивных вызовов процедур. Но вместо рекурсии может быть использован цикл, и нужда в динамическом стеке отпадет.
Походу у вас уйма времени, которое вы с удовольствием потратите на правку чужих библиотек и оптимизацию существующих рекурсивных алгоритмов. А когда возникнет реальная потребность в большом стеке создадите собственный, не так ли? Хотя нет, вы угадаете размер стека с трех попыток.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Пн мар 13, 2017 23:15 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Фортеры - одиночки. Ничего перелопачивать чужого не будут. А придумывать прцедуры с числом параметров больше 100 это увольте.
Рекурсия в реально производительных программах не используется поскольку тормозит программу. А игры в функц. программирование меня не интересуют.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вт мар 14, 2017 04:33 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Цитата:
Стек это лишь место для передачи параметров между процедурами. Сколько там может передано параметров?

сам Форт использует стек достаточно экономично, однако, это не касается вызываемых им функций.
Я с этим столкнулся в форке, когда расположил стек данных под стеком возвратов, и ста с лишним килобайт не хватало на элементарные функции (стек возвратов затирался) - пришлось поменять стеки местами.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вт мар 14, 2017 15:35 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Да где там чужие библиотеки-то? Тем более с интенсивным использованием рекурсии. У динамического стека есть большой недостаток, о котором я уже писал - он маскирует мелкие проблемы при отладке. Лучше, если программа упадет из-за переполнения стека, поскольку ошибка с балансом стека - это существенно более вероятный сценарий. А какие-то мифические тысячи библиотек от сотен разработчиков - это только повод придумать для Форта еще один пункт для реализации. Динамические стеки, хэши в словаре, тэгированные данные, собственная файловая система, IDE... что еще? В итоге такого навороченного Форта не будет по объективным причинам (кто-то не сможет, а кто сможет - тому не нужно), и пойдет очередной виток "у нас нет подходящего Форта".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вт мар 14, 2017 20:01 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Цитата:
А когда возникнет реальная потребность в большом стеке создадите собственный, не так ли?

Создаём. И?
Не так уж трудно создать массив и указатель
А касательно регистров тут уж надо думать сколькими стеками можно обойтись.
Мой вариант edi - стек исключений и указатель на юзверей ebp - данные esp - адреса возвратов.
Можно ещё один стек выделить, как в форке под адреса регистр esi .

Цитата:
Фортеры - одиночки. Ничего перелопачивать чужого не будут.

А если взять идейно и сохранить внешнее сходство, перелопатив внутренности?
Простой пример библиотека динамических строк от Черезова и библиотека статических строк на стеке возвратов от меня.
Внешнее сходство присутствует и там и там. Но внутренности отличаются значительно.

Цитата:
Я с этим столкнулся в форке, когда расположил стек данных под стеком возвратов, и ста с лишним килобайт не хватало на элементарные функции (стек возвратов затирался) - пришлось поменять стеки местами.


Можно поподробнее?
Я что-то не очень понял.

_________________
Цель: сделать 64-битную Нову под Винду


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

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


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

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


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

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