Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт апр 10, 2026 21:41

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Сборка мусора на Форте
Автор Сообщение
  Заголовок сообщения:  Re: Сборка мусора на Форте  Ответить с цитатой
Не знаю, может быть будет кому-то полезна эта идея.

Как работает сборщик:
1. Указатель на хип всегда помещается на стек возвратов.
2. Указатель на хип и указатель на ячейку в стеке возвратов, где хранится указатель на хип (*heap, **heap), передаются в поток.
3. Если указатель пропадает из выделенной ячейки на стеке возвратов, то поток освобождает память.

Я реализовал у себя для теста. Вполне рабочая схема. Можно чуть поменять условия. Например, память освобождается если указателя на хип нет среди стека данных и стека возвратов. Тем будет гибче и менее железобетонней.
Сообщение Добавлено: Пн июн 23, 2025 12:51
  Заголовок сообщения:   Ответить с цитатой
yz писал(а):
profiT писал(а):
Замечание 4: я никогда до этого момента не встречался с и не изучал алгоритмы сборки мусора. Хотя, примерное моё представление о том как это делается совпало с реализованным здесь mark and sweep.

Сейчас простой mark & sweep считается уже устаревшим. Обычно делается вариация на тему "трех цветов". Хороший обзор есть в Википедии.

Это не для критики, а в порядке обмена опытом.


Спасибо за информацию об алгоритме Дейкстры! Вобще говоря, ни один из алгоритмов gc не может являться панацеей. Сперва нужно исследовать, в каких конкретных условиях он будет использоваться. Например, готовы ли мы смириться с тем, что каждое обращение к распределителю памяти повлечет за собой некоторые накладные расходы, какая степень интерактивности всей системы нас бы устроила... и тд. Стековая модель Форта вобще располагает к нетрививальным решениям в этой области(см. home(dot)pipeline(dot)com/~hbaker1/ForthStack.html). На мой взгляд, тут есть еще пространство для исследований.

Кстати говоря, я оформил свою работу в виде статьи. Сборщик мусора в ней средство, а не цель, по этому выбран был самый простой и надежный вариант.

storage9(dot)myopera(dot)com/true-grue/files/forth-fp.html

Буду рад отзывам!
Сообщение Добавлено: Пт июл 27, 2007 20:06
  Заголовок сообщения:   Ответить с цитатой
profiT писал(а):
Quod Erat Demonstrandum. Так и есть -- мечу бисер. Я понимаю что у каждого своя реальность, но конкретно это вот был не я, а голем составленный из полнейшего непонимания и искажения практически любых сказанных слов.

да нет, просто речь шла о другом - что не стоит выкладывать код, в котором надо разбираться 8) потому как толку от такого нету никакого.
Ведь код приведен для иллюстрации реализации идеи, а не для того, чтобы в нем РАЗБИРАЛИСЬ серьезно - не так ли?
Сообщение Добавлено: Пн июл 09, 2007 21:32
  Заголовок сообщения:   Ответить с цитатой
profiT писал(а):
Замечание 4: я никогда до этого момента не встречался с и не изучал алгоритмы сборки мусора. Хотя, примерное моё представление о том как это делается совпало с реализованным здесь mark and sweep.

Сейчас простой mark & sweep считается уже устаревшим. Обычно делается вариация на тему "трех цветов". Хороший обзор есть в Википедии.

Это не для критики, а в порядке обмена опытом.
Сообщение Добавлено: Пн июл 09, 2007 21:26
  Заголовок сообщения:   Ответить с цитатой
---
Сообщение Добавлено: Пн июл 09, 2007 20:51
  Заголовок сообщения:   Ответить с цитатой
profiT писал(а):
Предскриптум. Ох, такое ощущение что я тут бисер мечу.

да нет, просто почему-то твои высказывания черезчур в последнее время категоричны 8(

profiT писал(а):
Если 5Кб, да ещё в условиях дефицита другого осмысленного материала в теме (кроме первых ссылок вначале) -- это "много", то я тогда не знаю.

Разбирать программу на форте как всегда надо с конца, с главной процедуры (если есть она) или с примеров использования. В данном случае примеры -- есть (есть!..), смотрим их:

тут главное слово разбирать программу надо!
Интересно, что ты сам не так давно говорил другое - что в либах разбираться не надо, а надо просто ими пользоваться 8)

но дело даже не в этом, нету ни одной строчки с пояснением, что же это такое и как этим пользоваться в самой либе.
нету ни одного коментария ни к одному слову 8(
А 5кб текста для форта не так уж и мало, кстати, текст не открывается сейчас!?
Сообщение Добавлено: Пн июл 09, 2007 20:36
  Заголовок сообщения:   Ответить с цитатой
---
Сообщение Добавлено: Пн июл 09, 2007 10:56
  Заголовок сообщения:   Ответить с цитатой
yz писал(а):
Это списки а ля Лисп со специализированным сборщиком мусора.

прекрасно, но все-таки не хватает ни коментариев, ни примеров применения, ни описания.
Толку от выкладывания такого кода очень мало 8( в нем надобно копаться, чтобы разобраться. То есть он применим только для того, кто его писал.
Сообщение Добавлено: Вс июл 08, 2007 21:20
  Заголовок сообщения:   Ответить с цитатой
mOleg писал(а):
Очень интересно - а что это такое?
Ни тебе для чего, ни тебе как?

Это списки а ля Лисп со специализированным сборщиком мусора.
Сообщение Добавлено: Вс июл 08, 2007 21:15
  Заголовок сообщения:   Ответить с цитатой
вообще приводить такой код в качестве аргумента совсем не корректно. Собственно вообще бесполезно 8(
вопрос писал(а):
названия функций - лисповые
cdr car
а зачем нужно - не пойму

в том-то и дело, толку от куска кода совсем нету. Понять что-то можно, но для этого нужно разбираться, причем достаточно долго, так как объем достаточно не маленький. Название s-expressions ничего не говорит 8(
Сообщение Добавлено: Вс июл 08, 2007 18:55
  Заголовок сообщения:   Ответить с цитатой
названия функций - лисповые
cdr car
а зачем нужно - не пойму

то функции работы с "надстраиваемыми" списками, т.е. списками, где "добавляется" В ГОЛОВУ ПО ЭЛЕМЕНТУ, А всё остальное - хвост :o
Сообщение Добавлено: Вс июл 08, 2007 18:25
  Заголовок сообщения:   Ответить с цитатой
profiT писал(а):
Пристыжаю бредоносцев:
http://files.myopera.com/true-grue/files/s-expr.f


Очень интересно - а что это такое?
Ни тебе для чего, ни тебе как?
Сообщение Добавлено: Вс июл 08, 2007 17:26
  Заголовок сообщения:   Ответить с цитатой
---
Сообщение Добавлено: Вс июл 08, 2007 13:03
  Заголовок сообщения:   Ответить с цитатой
WingLion писал(а):
/me думает, что на 256 выравнивание может быть полезно, если надо синхронизироваться с работой SD-RAM, читаемой страницами.

не верно, там выравнивание на 4кб 8) то есть на размер страницы

chess писал(а):
Может скажешь почему выравнивание делается на 16 байт, а не на восемь. В архитектуре IA-32 за одно обращение к памяти процессор читает 8 байт, так как адрес у памяти там 36-разрядный, а процессор имеет только 33-разрядную шину адреса. Младшие три бита на адресной шине памяти имеют нулевое значение. То есть выравнивать можно и на 8-байт.

Проверил: в init.f вместо 16 ALIGN-BYTES ! сделал 8 ALIGN-BYTES !. Пересобрал СПФ. Проверил быстродействие на тестовых программах - ничего не изменилось. Словарные статьи стали соответственно более компактными.

вполне возможно, просто где-то я читал, что советуют циклы выравнивать именно на 16 байт (где уже не скажу, так как сей вопрос меня не волновал и запомнилось походя). Вероятно цикл может начинаться с начала определения 8) а вообще лучше спросить у создателя СПФ или у Михаила - уж при создании оптимизатора ему наверняка приходилось с этим вопросом сталкиваться.

yz писал(а):
Я уже давно заметил, что чем ничтожнее вопрос, тем более жаркие споры он вызывает. Это живо напоминает законы Паркинсона: http://www.lib.ru/DPEOPLE/PARKINSON/parklaws.txt, раздел

что очень даже логично 8) на самом то деле.

но тут, все-таки другое.
Сообщение Добавлено: Пт июл 06, 2007 23:31
  Заголовок сообщения:   Ответить с цитатой
profiT писал(а):
Товарищи, вы что, все, издеваетесь?..

Я уже давно заметил, что чем ничтожнее вопрос, тем более жаркие споры он вызывает. Это живо напоминает законы Паркинсона: http://www.lib.ru/DPEOPLE/PARKINSON/parklaws.txt, раздел
"ВЫСОКАЯ ФИНАНСОВАЯ ПОЛИТИКА, или Точка безразличия"
Сообщение Добавлено: Пт июл 06, 2007 11:15

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


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