А я уже на него ответ пишу. Даже с офтопиком.

 

From: Eisymont Leonid [mailto:verger...@yandex.ru] 
Sent: Friday, February 23, 2018 8:00 PM
To: refal@botik.ru
Subject: Re: Не понял про ограниченный РЕФАЛ

 

Ошибочно переслал письмо, немного допишу.

 

23.02.2018, 19:02, "Eisymont Leonid" <verger...@yandex.ru 
<mailto:verger...@yandex.ru> >:

Александр, мы с Сергеем Бычковым, он был моим близким другом, учились в одной 
группе в МИФИ и в 1973 году его заканчивали в совместной разработке компилятора 
языка Симула-1 в язык АЛМО на БЭСМ-6, это было реализовано на Рефале. Мы даже 
еще рефал-интерпретатор Олюнина-Флоренцева еще использовали, который мне 
пришлось по двоичным кодам по ходу дела изучать и немного править ошибки. 
Симула-1 в этой разработке был реализован в СССР впервые, люди брались за него, 
но сделать не смогли. У нас был научный руководитель, Слава Фисун, который с 
нами возился как дядька-воспитатель, т.е. не только по технике, направлял и по 
жизни. Да и вообще, коллектив отдела, тогда это был отдел 9 Михаила Романовича 
Шура-Бура, к нам по отечески отнесся, очень нас это поддержало.

 

У меня в этой разработке была большая часть, поскольку к этому времени я уже 
успел сделать компилятор языка Фортран-ЦЕРН, его с Сашей Красовским делали. 
Потом мы взялись вместе за компилятор языка Симула-67. Но меня тогда захватила 
идея разработки аппаратной реализации Рефала, да и вообще специализированных 
компьютеров, особенно параллельные реализации. Я оставил эту разработку 
компилятора Симула-67 Сергею, она была в самом начале, на него лег огромный 
груз. Он с этим блестяще справился, сумел организовать рабочий коллектив из 
сотрудников сектора 7 отдела 12, зав. сектором был Игорь Борисович Задыкайло. 
Сергей так и остался работать в МИФИ, а я к тому времени перешел в ИПМ и стал 
непосредственно с Задыхайло работать по теме разработки символьного процессора. 
Защищался также по этой теме, по входному языку символьного процессора, который 
был расширением Рефала-2. До 1983 года, в русле работ по символьному процессору 
я с сотрудниками ИПМ сделал полный аналог компилятора Фортран 4 (G) фирмы IBM, 
но на языке Рефал-2. Это был своеобразный "эксперимент на людях", мы в рамках 
работ по символьеому процессору этим доказали, что это средство разработки 
настолько сильно, что можно очень ограниченным коллективом и за короткий срок 
разаботать такое сложное ПО. Убедили, это также в мою диссертацию вошло. Ну а 
после 1983 года уже начался Буран и другие работы стратегического характера с 
использованием Рефала. Об этом я рассказывал.


Сергей Бычков блестяще защитился на компиляторе Симула-67 в МИФИ. Это ПО было, 
например, применено в процессе проектирования специального суперкомпьютера 
Булат, за этот суперкомпьютер его разработчики получили потом Ленинскую премию. 
Сергей, к сожалению, очень рано ушел, умер во время операции. У него остался 
сын Константин, который работает в области микроэлектроники в МЦСТ, очень 
способный специалист, а также дочь.

 

Что касается параллельных реализаций Рефала, то то, о чем Вы упоминаете, на 
совсем крошечных микропроцессорах, это также хороший вариант. Та логика, 
которая была для одномерных клеточных автоматов, годится и в этом случае.

Распараллеливание на уровне выполнения функций - первое, что бросается в глаза. 
Однако здесь есть коварный подводный камень - побочные эффекты выполнения 
функций из-за введенных статических и динамических ящиков. Даже если с ними 
работа не так интенсивна, они резко затрудняют динамическое распараллеливание 
программ на уровне функций. С этим я экспериментировал на живом компиляторе. В 
итоге удалось такую проблему обойти за счет введения специальных средств работы 
с ящиками типа мониторов. Не так уж это и обременительно было, ведь работа с 
ящиками не является основным стилем, легко локализуется и налаживается для 
параллельной программы. Сразу скажу, ящики выбрасывать не стоит из-за проблем 
работы с ними.

Вобщем, первая статья по глубокому распараллеливанию рефал-программ была в 1977 
году в киевском журнале "Управляющие системы и машины", ее автором был я, у 
меня есть ее скан. Если честно, то тогда параллелить было рановато, не было 
соответствующих аппаратных возможностей. Мы явно поторопились. Была оценка, что 
на сорок лет. Забавно, но потом с экспертами, кто давал эту оценку мне пришлось 
работать по другим темам. Я их поздравил с тем, насколько они были точны. 
Правда они про эти свои оценки уже и забыли.

Сейчас параллелить рефал можно на существующих микропроцессорах, в том числе и 
графических, но лучше на специализированных типа мультитредовых с глобально 
адресуемой памятью. Такими процессорами я занимался - в интернете есть много 
ссылок на эти работы - суперкомпьютер стратегического назначения, СКСН, 
"Ангара". Очень надеюсь работы этого типа продолжить, хотя сейчас основные 
заботы немного о другом. Сам не успею доделать - доделают другие, я сейчас их 
готовлю. Если есть желание - подключайтесь. У нас не только по Рефалу темы. 
Посылаю статью своего сына c его товарищами по микропроцессору NM6408, я им 
немного помогал в написании.

Пока у нас складывается сотрудничество: ЗАО"НТЦ"Модуль" - ФГУП"НИИ"Квант" - 
МФТИ. Надеемся соединить усилия и с ИСП им.В.П.Иванниикова РАН, ну и конечно 
сотрудничаем с ИПМ им.М.В.Келдыша РАН. Вобщем, восстанавливаем то, как работа 
по новой технике была построена в старые добрые времена в СССР, инициатива 
снизу.

Л.Эйсымонт

 

23.02.2018, 15:45, "Александр Коновалов" <a.v.konovalo...@mail.ru 
<mailto:a.v.konovalo...@mail.ru> >:

Добрый день, Леонид!

Собрался с мыслями, чтобы ответить на это письмо.

О параллельной реализации Рефала и других архитектурах

Посмотрел приложенные презентацию и статью. Крупнозернистое распараллеливание 
(параллельное вычисление нескольких функций) — вещь довольно очевидная вообще 
для функциональных языков. И внедрить такой параллелизм для Рефала сравнительно 
несложно для распространённых многоядерных PC. В 2008 году Сергей Скоробогатов 
[неопубликовано] предлагал распараллеливаемое представление и язык сборки для 
своего компилятора Рефала-7. У меня есть его довольно интересная рукопись, но 
без его разрешения я её переслать не могу (кстати там он ссылается на 
публикацию А.С. Фролова и Л.К. Эйсымонта в журнале «Информационные 
технологии»). Не помню на счёт реализации — была ли она или были только 
прототипы — надо у него спросить.

Мелкозернистое распараллеливание на PC реализовывать бессмысленно, даже, 
наверное, на видеокартах бессмысленно (хотя я на них не программировал). Тут 
уже нужны совсем другие компьютерные архитектуры. Один из вариантов предлагаете 
Вы — одномерные клеточные автоматы Фон-Неймана. Я о них прочитал (в статье и 
презентации), но мало что понял, поскольку не умею мыслить в терминах этих 
автоматов.

Другой интересный вариант, на котором хорошо пошёл бы Рефал — это FFP-машины, 
предложенные Gyula A. Mago (я затрудняюсь траслитировать это имя). Это машины 
редукции строк, построенные на большом количестве маленьких процессоров, 
объединённых в древовидную структуру. Я затрудняюсь кратко и понятно описать их 
в письме, поэтому отсылаю к диссертации Р. Кента Дибвига (1987 год), где они 
подробно и ясно описаны в пятой главе:

https://mazdaywik.github.io/direct-link/dybvig-disser.pdf

Диссертация вообще посвящена тремя моделям компиляции Scheme: с использованием 
промежуточного представления на односвязных списках, с использованием 
системного стека в виде массива и компиляцию Scheme для вот этих вот 
гипотетических машин. Когда я читал вот эту последнюю главу, только и думал о 
том, что для программирования этих машин куда лучше подошёл бы Рефал, нежели 
Scheme. Для Лиспа эти гипотетические машины — прокрустово ложе, а Рефал ложится 
красиво. Будет время — почитайте.

О реализациях компиляторов на Рефале в советские годы

У меня есть книжка Андрианов А. Н., Бычков С. П., Хорошилов А. И. 
Программирование на языке симула-67. — М.: Наука. Глав. ред. физ.-мат. лит., 
1985. — 288 с. В ней описывается язык Симула-67 и две его реализации на 
советских машинах. И между делом упоминается, что обе реализации написаны на 
Рефале (кажется, я об этом писал в рассылку):

«При реализации компиляторов широко применялся язык рефал [5], ориентированный 
на программирование сложных символьных преобразований. Наличие на машинах 
БЭСМ-6 и ЕС ЭВМ реализаций рефала [5, 14], практически полностью совместимых по 
входному языку, позволило значительно сократить трудоемкость разработки 
симула-компиляторов, особенно компилятора для ЕС ЭВМ, основу которого составили 
программы ранее разработанного транслятора с языка симула-67 для БЭСМ-6.» (стр. 
169)

«Авторы считают приятным долгом выразить благодарность своим научным 
руководителям доц. И. Б. Задыхайло, проф. Л. Т. Кузину, проф. А. Н. Мямлину за 
постоянное внимание и поддержку в работе по реализации языка симула-67. 
Искреннюю благодарность авторы выражают И. М. Седовой, Г. В. Попковой, А. Л. 
Пытелю, А. Е. Шестакову, участвовавшим в разработке трансляторов с языка 
симула-67, А. А. Веденову, С. А. Романенко, А. Е. Фирсову за помощь в 
использовании рефал-систем на БЭСМ-6 и ЕС ЭВМ, а также всем пользователям, чьи 
замечания способствовали совершенствованию трансляторов с языка симула-67 на ЕС 
ЭВМ и БЭСМ-6.» (стр. 8)

Выделение жирным моё. Других упоминаний Рефала в книжке я уже не помню. Такую 
длинную цитату благодарностей я написал на случай — может Вам знакомы 
перечисленные фамилии (мне известна только фамилия Романенко в списке).

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

 

From: Eisymont Leonid [mailto:verger...@yandex.ru <mailto:verger...@yandex.ru> ]
Sent: Monday, January 22, 2018 10:03 PM
To: refal@botik.ru <mailto:refal@botik.ru> 
Subject: Re: Не понял про ограниченный РЕФАЛ

 

Здравствуйте, Александр.

Я занимался более двадцати лет в ИПМ им.М.В.Келдыша АН СССР практическими 
приложениями Рефала. Это были разные компиляторы для изделий новой техники, 
среди них бортовой компьютер МТКК Буран и несколько в то время засекреченных 
суперкомпьютеров с нестандартной архитектурой.

Некоторым образом это описано в приложенных файлах, в 2012 году мы об этом 
рассказали.

Еще я занимался проблемой аппаратной реализации рефала, это все про рефал-2 я 
говорю.

Там были две линии. Одна - это микропрограммная реализация языка сборки Сергея 
Романенко. Вторая - параллельная версия, в которой распараллеливание происходит 
на нескольких уровнях. Идея эта была опубликована еще в конце семидесятых 
годов, у меня есть скан этой статьи в журнале Управляющие системы и машины. 
Перешлю потом. Эта тема также отображена в присоединенных файлах.

В начале восьмидесятых годов такую реализацию пришлось забросить, поскольку она 
сильно опережала время, а меня попросили заняться актуальной проблематикой МТКК 
Буран, связанной с баллистическими вычислениями, потом пошли другие темы, 
связанные с суперкомпьютерами, сейчас - со специализированными СБИС для 
суперкомпьютеров специального назначения. Это все есть в сети под моей 
фамилией, так что можно посмотреть. Параллельный рефал на уровне выполнения 
функций был реализован моим дипломником, Сашей Фроловым в МИФИ в начале 
двухтысячных годов, его диплом у меня есть. Есть и исходные тексты, но он 
сейчас на другую тематику переключился, хотя, если найдутся энтузиасты, то он, 
по-моему, мог бы помочь и тему передать.

Тема параллельного отождествления и замены на линейке клеточных автоматов так и 
зависла пока. Я порываюсь ею время от времени заняться, но другие дела 
оказываются важнее, отнимают все время.

Вот такая пока история. Я очень надеюсь, что язык типа рефала-два , есть еще 
близкий американский вариант, язык AMBIT, мог бы стать внутренним языком 
функционального суперкомпьютера не фон-Неймановского типа на пост-Муровской 
элементной базе. Но пока все не складывается этим заняться, да и более 
очевидные проекты типа мультитредовых микропроцессоров невозможно запустить.

Л.Эйсымонт

 

22.01.2018, 20:34, "Александр Коновалов" <a.v.konovalo...@mail.ru 
<mailto:a.v.konovalo...@mail.ru> >:

Добрый вечер, Леонид!

«Заодно вопрос, какие очаги деятельности по Рефалу сейчас остались?»

За себя отвечу. Я преподаю в МГТУ имени Баумана и на кафедре ИУ9 «Теоретическая 
информатика и компьютерные технологии» по мере сил развиваю Рефал. Сам 
разрабатываю компилятор Рефала-5λ:

https://github.com/bmstu-iu9/simple-refal

Нормальная документация к нему сейчас пишется, основные отличия от 
классического Рефала-5 (все они являются расширениями) записаны в README.md 
(внизу страницы сразу после списка файлов).

И студентов привлекаю к реализации той или иной функциональности в этом 
компиляторе (курсовые, дипломы). Вот здесь можно найти устаревшую документацию 
и записки студентов:

https://github.com/bmstu-iu9/simple-refal/tree/master/doc

А другие очаги Рефала, если они есть в рассылке, пускай сами за себя 
отписываются.

«Что-то мне внутренний голос говорит, что он снова станет актуальным из-за 
работ по пост-кремниевым технологиям в этом десятилетии. Заманчиво воскресить 
работу по параллельному рефалу да еще на клеточных автоматах. Такие автоматы, 
например, в сверхпроводниковой электронике любят.»

Понятия не имею, о чём Вы говорите. Но курсовой по параллельному Рефалу могу, 
наверное, дать на следующий год.

Коллега с соседней кафедры (ИУ8) как-то говорил мне, что Рефал надо 
компилировать в прошивки для ПЛИС. Я немного знаком с программированием ПЛИСов, 
но представления не имею, как ПЛИСы скрестить с Рефалом.

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

 

From: Eisymont Leonid [mailto:verger...@yandex.ru <mailto:verger...@yandex.ru> ]
Sent: Monday, January 22, 2018 5:26 PM
To: refal@botik.ru <mailto:refal@botik.ru> 
Subject: Re: Не понял про ограниченный РЕФАЛ

 

Ну, я рад за вас. Да еще любимую книгу из ЦНИПИАС-а процитировали. Заодно 
вопрос, какие очаги деятельности по Рефалу сейчас остались? Что-то мне 
внутренний голос говорит, что он снова станет актуальным из-за работ по 
пост-кремниевым технологиям в этом десятилетии. Заманчиво воскресить работу по 
параллельному рефалу да еще на клеточных автоматах. Такие автоматы, например, в 
сверхпроводниковой электронике любят.

Л.Эйсымонт

 

22.01.2018, 16:52, "Andrei Klimov" <kli...@keldysh.ru 
<mailto:kli...@keldysh.ru> >:

2018-01-22 7:58 GMT+03:00 Eisymont Leonid <verger...@yandex.ru 
<mailto:verger...@yandex.ru> >:

Настоящие ученые, один в 4.16 вопрос задал, другой в 6.59 ответил.

 

Леонид, какой ты наблюдательный! 🤗

Да, засиделся: хотел уже ложиться спать, а тут редкий вопрос по Рефалу 
пришел...😳

 

Душа радуется, нас не победить.

 

Да, еще держимся! 🤓

 

Андрей Климов

Ответить