*"Данный суперкомпилятор умел повышать местность функций и распознавал
«параметры-призраки» — параметры, при передаче значений в которые не нужно
инкрементировать счётчики ссылок."*


Хочу уточнить, чтобы не было недоразумений, что "полусуперкомпилятор" из
Рефала в С состоял из двух отдельных частей: собственно
(полу)суперкомпилятор, написанный Н.Кондратьевым, вырабатывающий граф
конфигураций, и отображение графа в С, mapping, как назвал его Турчин еще в
70х гг., которое было "поручено" сделать мне. Повышение местности
производил первый компонент, а "призраки", actual/ghost variables (это
термин Турчина) возникали уже при отображении, на уровне графа они еще не
имеют смысла. На самом деле, и в mapping-е это работа была недоделана: этот
аспект еще как-то проработан в пределах одной C-функции (образа одной
конфигурации), при том, что все входные параметры-выражения конфигураций
считались actual. Хотелось иметь глобальную оптимизацию этой разметки, было
понятно как, и я даже статью про это написал, когда был у Турчина (в
1990м), и под его "пинками", но ее тогда не приняли, там куда я ее послал,
и на этом все закончилось.
Ох, сейчас хотелось бы все это реанимировать, но нужно время, силы... К
большому сожалению сопроводительные отчеты по маппингу утрачены (они
делались в CHI-writer, бумажные копии передавались через посредника в ИПС,
который за эту работу платил, мои же копии потерялись). Сохранились только
коды на рефале, надеюсь работоспособные. Там был введен и использовался
некий промежуточный символьный язык - РАМАЛ (как бы "Refal Assembler
Mapping Language").
Аналог языка сборки, но бесстековый, для прямой трансляции в С.

Что касается кода самого рефала, то да, рефал-6 это модификация рефала-6b,
кодов общих много, даже названия файлов старые. Небольшие модификации
поначалу были мотивированы тем, чтобы сделать более удобным включение новых
отображенных функций. А потом, видимо, я вошел во вкус, и меня "понесло".
Кстати и рефал6 хотелось бы выложить в github с исходниками, но опять
недосуг, а как сделать быстро и правильно, я пока не разбираюсь.
Надо, конечно, найти время, и еще хотя бы на такое же "описание реализации".
Коля, а что это за файл такой большой там на 150 МБ, по ссылке под "Studio
Community 2019 solution <http://nkon04.ddns.net/refal6b/Refal6b.zip>", файл
refal6.zip. У меня после загрузки он выглядит пустым. Судя по названию и
размеру, это, вероятно, сборка проекта (-ов) под MS Visual Studio со всеми
исходниками и (промежуточными) результатами.

Аркадий

сб, 27 мар. 2021 г. в 01:38, nikolai.kondratiev_AT_gmail.com <[email protected]
>:

> Спасибо за замечания!
>
>
>
> OPEN исправлю.
>
> Имена в system.ref не остаются в таблице имен, насколько я помню, поэтому
> чистить не обязательно, правда память не освобождается.
>
> В dinload.ref может быть было опасно оставлять определения функций кроме
> LOAD и DELETE.
>
>
>
> Должен заметить, что эти тексты программ были написаны в 1988 году и я не
> все помню.
>
> Я не писал диссертации, связанной с Рефалом и не работал в ИПМ.
>
>
>
> >Стало быть, когда-то была реализация Рефала-6, гораздо более близкая к
> Рефалу-5, чем нынешняя реализация Аркадия Климова
>
> > (которая приобрела ряд черт Рефала Плюс и некоторых своих, уникальных
> черт).
>
> >Ваши исходники позволяют получить представление о том, как эта реализация
> могла выглядеть.
>
> Это, собственно, она и есть. Изменения с тех пор незначительны.
>
>
>
> Я не использовал исходных текстов предыдущих реализаций, но использовал
> язык сборки Романенко-Турчина и теоремы об удлинениях Сергея Романенко (не
> все). Тогдашняя реализация Рефала-5 не использовала теоремы об удлинениях.
> На каких-то примерах Рефал-6 сильно выигрывал.
>
>
>
> *Von:* Александр Коновалов <[email protected]>
> *Gesendet:* Freitag, 26. März 2021 22:41
> *An:* [email protected]
> *Betreff:* Re: Refal6-basic
>
>
>
> Добрый вечер, Николай Викторович!
>
>
>
> *«Все замечания приветствуются»*
>
>
>
> В функции OPEN не поддерживается режим 'a'. В функции rb_open()
> допускаются только «r» и «w» в обоих регистрах.
>
>
>
> В файле dinload.ref не чистится функция Resort в Null. В system.ref
> вообще ничего не чистится.
>
>
>
>
>
> Андрей Валентинович рассказывал, что в ИПМ кто-то писал диссертацию про
> проверку типов Рефала с использованием регулярных выражений, а потом уехал
> в Германию. Это не Вы были?
>
>
>
>
>
> С уважением,
> Александр Коновалов
>
>
>
>
>
> *From**:* nikolai.kondratiev_AT_gmail.com <[email protected]>
>
> *Sent:* Friday, March 26, 2021 3:22 PM
>
> *To:* [email protected]
>
> *Cc:* 'Andrei Klimov' <[email protected]>
>
> *Subject:* Refal6-basic
>
>
>
> Уважаемые коллеги!
>
>
>
> После того, как Рефал-6 был передан Аркадию Климову для дальнейшей с ним
> работы, язык довольно сильно изменился, что не всегда мне нравилось. В
> своей работе я использовал имеющуюся у меня реализацию, в которой тоже
> понемногу происходили изменения, наиболее важным из которых была длинная
> арифметика. Я считал, что в реализации Рефала неограниченное целое число
> должно быть одним символом с точки зрения языка.
>
>
>
> Поскольку на мой взгляд реализация достаточно устойчива, я решил сделать
> ее доступной для Рефал-сообщества.
>
>
>
> Вся документация на русском языке.
>
>
>
> Тексты программ должны быть в ASCII.
>
>
>
> Рефал-6b находится на моем домашнем компьютере, который доступен по
> ссылке:
>
>                 http://nkon04.ddns.net/refal6b/
>
>
>
> Реализация состоит из файлов:
>
> refal (refal.exe для Windows)
>
> refal.sys
>
> refal.comp
>
> refal.dynldr
>
> refal.tracer
>
>
>
> Все они должны находиться в одном каталоге файловой системы.
>
> Это либо каталог Windows,
>
> Либо /usr/local/bin/ под Linux
>
>
>
> Все замечания приветствуются.
>
>
>
> Успехов.
>
>
>
> Николай Кондратьев
>


-- 
_______________
*С уважением, *
*Аркадий Климов,*
*с.н.с. ИППМ РАН,*
*+7(499)135-32-95*
*+7(916)072-81-48*
  • Ref... nikolai . kondratiev_AT_gmail . com
    • ... nikolai . kondratiev_AT_gmail . com
    • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
    • ... nikolai . kondratiev_AT_gmail . com
      • ... Andrei Klimov andrei_AT_klimov . net
        • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
          • ... Andrei Klimov andrei_AT_klimov . net
      • ... Arkady Klimov arkady . klimov_AT_gmail . com
        • ... Александр Гусев gusev_aleksandr_AT_mail . ru
          • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
            • ... Andrei Klimov andrei_AT_klimov . net
              • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
                • ... Andrei Klimov andrei_AT_klimov . net
                • ... nikolai . kondratiev_AT_gmail . com
                • ... Александр Гусев gusev_aleksandr_AT_mail . ru
                • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
                • ... nikolai . kondratiev_AT_gmail . com
                • ... nikolai . kondratiev_AT_gmail . com

Ответить