On Wed, Feb 13, 2019 at 11:04 AM Andrei Klimov <and...@klimov.net> wrote:

> Я сменил сабж, так как тема шире, чем лишь для Рефала Плюс.
>
> ср, 13 февр. 2019 г., 0:18 Александр Коновалов a.v.konovalov87_AT_mail.ru
> <refal@botik.ru>:
>
>> Добрый вечер, Сергей!
>>
>> > 2.  Наконец, если нам пришлось делать длинное сравнение и в конце
>> выяснилось, что термы таки равны, то мы делаем "коллапсирующие джунгли" --
>> делаем присваивание: p2 = p1, L2=L1 (второе лишнее, но пусть будет).  Тут и
>> память освободилась и следующий раз сравнение на равенство пройдет быстрее
>> ;-)
>>
>> А если у нас в поле зрения есть несколько экземпляров одинаковых пар (p1,
>> L1), (p2, L2). В первый раз сравниваются пары в порядке (p1, L1) == (p2,
>> L2) и мы присвоили p1 := p2. В другой раз (другие экземпляры) сравнились в
>> порядке (p2, L2) == (p1, L1) и коллапсировались уже p2 := p1. Тогда память
>> не освободится. Такое может быть?
>>
>
> Отвечу за Сергея:😊
>
> Память освободится, но отдельно в первой паре и во второй, а чтобы остался
> один экземпляр из четырёх, нужно ещё одно сравнение. То есть, для склейки N
> (ещё несклеенных) термов нужно как минимум N-1 сравнений.
>
> Сергей, а я не помню, чтобы была такая реализация. Мне кажется, много раз
> обсуждали, что интересно было бы попробовать и измерить полезность на
> задачах типа компьютерной алгебры, но так и осталось в теории. Или кто-то
> сделал?
>
> Чтобы экономить память (и надеялись - и время), для системы Сантра Игоря
> Шенкова я ещё в 80-е годы разработал библиотечку ROTAB (References for
> Order Tabulation) для "коллапсирования рефал-выражений в ящики" (выдаётся
> ссылка на тот же ящик, если уже формировался ящик с таким же содержимым) и
> табуляции их отношения порядка. То есть в ящиках поддерживаются индексы в
> некотором отношении линейного порядка для последующего быстрого сравнения
> (для сортировки термов в представлении полиномов).
>
> ROTAB была реализована на Рефале-2 как прототип предполагавшейся
> реализации на PLI (на ЕС ЭВМ = IBM/370) или потом на С. Но за 30 лет у меня
> так и не дошли руки (самому или попросить кого-нибудь из молодежи)
> реализовать на низком уровне, а Игорь так и пользуется прототипом и сам
> перенёс ROTAB с Рефала-2 на Рефал-6.
>
> К сожалению, потенциальная польза от ROTAB  так и не исследована, и в
> Сантре неизвестная потеря памяти и времени заменена на линейное замедление
> - весьма большое из-за не эффективности прототипа реализации на Рефале.
>
> Кстати, сейчас на ящики в ROTAB не распространяется сборка мусора (которая
> есть в реализациях Рефала-2, но нет в основной реализации Рефала-6), а
> предполагалось сделать её в низкоуровневого реализации ROTAB.
>

Если кто заинтересуется, пользовательский интерфейс к ROTAB был описан в
препринте на стр. 29–35:

   - Анд.В. Климов, С.А. Романенко. Система программирования Рефал-2 для ЕС
   ЭВМ. Описание библиотеки функций. М.: ИПМ им. М.В. Келдыша АН СССР, 1986,
   препринт № 200. - 38 с. PDF
   
<https://pat.keldysh.ru/~roman/doc/1986-Klimov_Romanenko--Refal-2__Opisanie_biblioteki_funkcij.pdf>
    DJVU
   
<https://pat.keldysh.ru/~roman/doc/1986-Klimov_Romanenko--Refal-2__Opisanie_biblioteki_funkcij.djvu>

Вообще интересно, в каких-нибудь системах компьютерной алгебры и прочей
> символьной обработки используются ли подобные механизмы? Они могли быть
> опробованы в стародавние времена, когда памяти было мало, а, подозреваю, в
> нынешнее время никто не стал бы возиться с исследованиями такого вопроса.
> Но все-таки, может, были эксперименты? Никто не знает?
>
> Андрей
>
      • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
        • ... Andrei Klimov andrei_AT_klimov . net
      • ... Andrei Klimov andrei_AT_klimov . net
        • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
          • ... Andrei Klimov andrei_AT_klimov . net
            • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
              • ... Andrei Klimov andrei_AT_klimov . net
              • ... Andrei Klimov andrei_AT_klimov . net
        • ... Anton Orlov orlovan_AT_gmail . com
          • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
  • Re:... Andrei Klimov andrei_AT_klimov . net

Ответить