Александр, мы с Сергеем Бычковым учились в одной группе в МИФИ и в 1973 году его заканчивали в совместной разработке компилятора языка Симула-1 в язык АЛМО на БЭСМ-6, это было реализовано на Рефале. У меня в этой разработке была большая часть. Потом мы взялись вместе за компилятор языка Симула-67. Но меня тогда захватила идея разработки аппаратной реализации Рефала, особенно его параллельной реализации. Я оставил эту разработку компилятора Симула-67 Сергею. Он с этим блестяще справился, сумел организовать рабочий коллектив из сотрудников сектора 7 отдела 12, зав. сектором был Игорь Борисович Задыкайло. Сергей так и остался работать в МИФИ, а я к тому времени перешел в ИПМ и стал непосредственно с Задыхайло работать по теме разработки символьеого процессора. Защищался также по этой теме, по входному языку символьного процессора, который был расширением Рефала-2. До 1983 года, в русле работ по символьному процессору я с сотрудниками ИПМ сделал полный аналог компилятора Фортран 4 (G) фирмы IBM, но на языке Рефал-2. Это был своеобразный "эксперимент на людях", мы в рамках работ по символьеому процессору этим доказали, что это средство разработки настолько сильно, что можно очень ограниченным коллективом и за короткий срок разаботать такое сложное ПО. Убедили, это также в мою диссертацию вошло. Ну а после
 
23.02.2018, 15:45, "Александр Коновалов" <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]
Sent: Monday, January 22, 2018 10:03 PM
To: refal@botik.ru
Subject: Re
: Не понял про ограниченный РЕФАЛ

 

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

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

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

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

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

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

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

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

Л.Эйсымонт

 

22.01.2018, 20:34, "Александр Коновалов" <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]
Sent: Monday, January 22, 2018 5:26 PM
To: refal@botik.ru
Subject: Re: Не понял про ограниченный РЕФАЛ

 

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

Л.Эйсымонт

 

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

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

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

 

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

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

 

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

 

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

 

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

Ответить