Доброе утро, Аркадий!

Спасибо за ответ! А то Вы мне когда-то рассказывали про этот суперкомпилятор, и 
я уже всё забыл. Теперь информация зафиксирована в твёрдой письменной форме.

С размещением исходников на GitHub готов помочь и Аркадию, и Николаю, если 
интересно. Пишите в личку, чтобы не засорять рассылку частными вопросами.


С уважением,
Александр Коновалов



From: Arkady Klimov arkady.klimov_AT_gmail.com 
Sent: Saturday, March 27, 2021 9:10 PM
To: [email protected] 
Subject: Re: Refal6-basic

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


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


Что касается кода самого рефала, то да, рефал-6 это модификация рефала-6b, 
кодов общих много, даже названия файлов старые. Небольшие модификации поначалу 
были мотивированы тем, чтобы сделать более удобным включение новых отображенных 
функций. А потом, видимо, я вошел во вкус, и меня "понесло".
Кстати и рефал6 хотелось бы выложить в github с исходниками, но опять недосуг, 
а как сделать быстро и правильно, я пока не разбираюсь.
Надо, конечно, найти время, и еще хотя бы на такое же "описание реализации".
Коля, а что это за файл такой большой там на 150 МБ, по ссылке под "Studio 
Community 2019 solution", файл 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 

  Sent: Friday, March 26, 2021 3:22 PM

  To: [email protected] 

  Cc: 'Andrei Klimov' 

  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
        • ... Александр Гусев gusev_aleksandr_AT_mail . ru
        • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
        • ... nikolai . kondratiev_AT_gmail . com
        • ... nikolai . kondratiev_AT_gmail . com
        • ... Arkady Klimov arkady . klimov_AT_gmail . com
        • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
        • ... Александр Гусев gusev_aleksandr_AT_mail . ru
  • AW:... nikolai . kondratiev_AT_gmail . com
    • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
      • ... nikolai . kondratiev_AT_gmail . com
  • Re:... Александр Коновалов a . v . konovalov87_AT_mail . ru
  • Re:... Andrei Klimov andrei . klimov_AT_gmail . com

Ответить