Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн июл 14, 2025 19:39

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Сборка мусора на Форте
СообщениеДобавлено: Вт июл 03, 2007 23:24 
Не в сети

Зарегистрирован: Сб янв 27, 2007 22:00
Сообщения: 106
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
В прошлом году на www.forth.org.ru в новостях висела ссылка на чью-то диссертацию, посвященную реализации динамических строк и сборки мусора на Форте. Сейчас не могу найти эту ссылку. Не подскажет ли кто-нибудь ее?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 04, 2007 00:00 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Ertl делал. http://www.complang.tuwien.ac.at/projects/forth.html
Не оно?

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 04, 2007 11:25 
---


Последний раз редактировалось profiT Сб мар 01, 2008 01:04, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 04, 2007 13:51 
Не в сети

Зарегистрирован: Сб янв 27, 2007 22:00
Сообщения: 106
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ygrek писал(а):

Нет. Там была именно диссертация, в которой мужик подробно рассказывал, как он делал динамические строки, сборку мусора, регулярные выражения и т.п.


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

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

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


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

Зарегистрирован: Сб янв 27, 2007 22:00
Сообщения: 106
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
вопрос писал(а):
Нельзя разве сдолать отдельный сегмент , куда класть всё динамическое размером не более
а основной кодофайл начинался бы после этого сегмента :?:
Никакой сборки мусора, каждая следующая процедура с временными данными просто затирает предыдущие.
:?:

А если данные разделяются между словами? Как насчет вложенных вызовов слов?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 04, 2007 18:04 
Не в сети

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

А если данные разделяются между словами? Как насчет вложенных вызовов слов?
И что это должно было бы менять? например

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 04, 2007 18:16 
yz писал(а):
Нет. Там была именно диссертация, в которой мужик подробно рассказывал, как он делал динамические строки, сборку мусора, регулярные выражения и т.п.


Скорее всего, речь о PatternForth, www(dot)zetetics(dot)com/bj/papers/index.html


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 04, 2007 18:21 
Не в сети

Зарегистрирован: Сб янв 27, 2007 22:00
Сообщения: 106
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Вот это оно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 04, 2007 18:25 
Не в сети

Зарегистрирован: Сб янв 27, 2007 22:00
Сообщения: 106
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
вопрос писал(а):
yz писал(а):
вопрос писал(а):
Нельзя разве сдолать отдельный сегмент , куда класть всё динамическое размером не более
а основной кодофайл начинался бы после этого сегмента :?:
Никакой сборки мусора, каждая следующая процедура с временными данными просто затирает предыдущие.
:?:

А если данные разделяются между словами? Как насчет вложенных вызовов слов?
И что это должно было бы менять? например

То, что вы предлагаете (фиксированная область памяти под данные процедур) годится разве что для Фортрана-66.
Рекомендую вам ознакомиться с алгоритмами распределения памяти и требованиями к ниv. Лучше всего для этого подходит книга Танненбаума "Языки программирования. Разработка и реализация".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 05, 2007 00:45 
Не в сети

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

То, что вы предлагаете (фиксированная область памяти под данные процедур) годится разве что для Фортрана-66.
Рекомендую вам ознакомиться с алгоритмами распределения памяти и требованиями к ниv. Лучше всего для этого подходит книга Танненбаума "Языки программирования. Разработка и реализация".
:D Странно было бы, еслит бы я был совсем не в курсе. НО тут речь о маленькой строке ... Кроме того, фиксированная память под ... массив - разделяемая процедурами, если известно, что одновременно использоваться ими она не может - это как-раз один из алгоритмов распределения памяти.

на С

union dynamic_data
{
int array_used_when_loading[1000];
char array_used_when_loading_finished_for_temporarily_strings[4000];
char array_for_programm_termination[200];
}

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


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

Зарегистрирован: Сб янв 27, 2007 22:00
Сообщения: 106
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
вопрос писал(а):
НО тут речь о маленькой строке

Речь идет о заранее неизвестном количестве строк неизвестной длины, выделяемых и уничтожаемых непредсказуемым образом.
Диплом, о котором я спрашивал, посвящен использованию в Форте идей Снобола.
Стоило ради одной строки весь сыр-бор затевать. Ее и в стек возвратов положить можно.
вопрос писал(а):
... Кроме того, фиксированная память под ... массив - разделяемая процедурами, если известно, что одновременно использоваться ими она не может - это как-раз один из алгоритмов распределения памяти.

Ну да, для Фортрана 66. А я о чем?
Статическая компиляция с заранее известными размерами массивов.


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Ну да, для Фортрана 66. А я о чем?
Статическая компиляция с заранее известными размерами массивов.
да для любого языка, пример был для С.

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


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

Зарегистрирован: Сб янв 27, 2007 22:00
Сообщения: 106
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
вопрос писал(а):
да для любого языка, пример был для С.

Пример чего, выделения места под три массива сразу?
В общем случае, в С используется стековая память, а впридачу к ней куча.


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
yz писал(а):
вопрос писал(а):
да для любого языка, пример был для С.

Пример чего, выделения места под три массива сразу?
В общем случае, в С используется стековая память, а впридачу к ней куча.

И статические данные тоже. Открываем любой исходник на С. Простой здравый смысл: если нам известно, что данные будут иметь такой-вот размер (доска в Шах-тах) то зачем делать их местоположение изменяемым. В стековую память всё не поместишь, тот же массив, рекомендую попробовать сделать массив приличного размера ЛОКАЛЬНОЙ переменной, компилятор попытается поместить его в стек и если размеры стека (сегмента) ограничены, кодер быстро это узнает.

Вот для DOS (взять модель памяти small)

int main(void){

int array[33000];

}

Пример был примером обьединения - структуры в си, когда на одно и то же место размещаются разные данные в разные моменты выполнения программы. Это удобно тем, что нет необходимости "чистить" память, данные просто затираются и это экономит время. Можно также обьявить для данного участка памяти данные в одном формате, а потом воспользоваться ими же как если бы они были записаны в другом формате с помощью того же обьединения.

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


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

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


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

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


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

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