Fwd: День памяти В.Ф. Турчина 7 апреля и семинар 10.04.2024

2024-04-09 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Изменение: семинар пройдет в Zoom'е:

Join Zoom Meeting
https://us06web.zoom.us/j/82193993914?pwd=Qvs6v9JaCS0HLPbcMW5rjmGGZQRscf.1
Meeting ID: 821 9399 3914
Passcode: 849619

В Skype-чате по ссылке, приведенной в объявлении ниже, об этом дана
информация с Zoom-ссылкой.

Всего наилучшего,
Андрей


-- Forwarded message -
From: Andrei Klimov 
Date: Tue, 9 Apr 2024 at 16:21
Subject: День памяти В.Ф. Турчина 7 апреля и семинар 10.04.2024

Дорогие друзья и коллеги!

Позавчера мы помянули Валентина Федоровича в день его памяти. Его влияние
на нас невозможно переоценить, как оно велико. Его наследие огромно, и
многие его философско-научные заделы, к нашему огорчению (и по нашей тоже
вине), не получают достаточного развития и ожидаемого (им самим) влияния на
людей и человечество. Каждый раз, поминая его, чувствуешь и его утрату, и
еще не осуществленные задачи, которые он ставил и остались на будущее.

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

Ниже — объявление о семинаре с подробностями.

Всего наилучшего,
Андрей Климов
--

В среду 10 апреля 2024 с 16:00 состоится онлайн-семинар STEP (Software
Engineering, Theory and Experimental Programming,
https://persons.iis.nsk.su/en/STEP-2024), рук. Н.В. Шилов (Innopolis Uni,
Казань), приуроченных к дню памяти В.Ф. Турчина. Семинар пройдет в Skype,
можно смотреть в браузере или установив приложение, подключившись по ссылке:
https://join.skype.com/DOsdMMwFpqsm
Не исключено, что семинар будет перенесен в Zoom. Тогда в постоянном чате
семинара (по этой ссылке) будет информация об этом с Zoom-ссылкой.

*Тема*: Научное наследие В.Ф. Турчина и его кибернетические основания
математики

*Андрей В. Климов* (Институт прикладной математики им. М.В. Келдыша РАН,
Москва)

*Аннотация*: Валентин Федорович Турчин (14.02.1931–07.04.2010) считал своим
главным достижением эволюционную концепцию с центральным понятием
метасистемного перехода как кванта эволюции. Он говорил, что философ должен
сам продемонстрировать плодотворность идей, получая результаты в различных
областях человеческой деятельности и объясняя, почему они такие, в терминах
его концепции. Его научно-философское наследие состоит из трех частей:

   1. философской, объясняющей эволюционную концепцию с центральным
   понятием метасистемного перехода как кванта эволюции, — книга «Феномен
   науки: Кибернетический подход к эволюции» [1];
   2. социальной: обсуждение эволюции общества и человека — книга «Инерция
   страха: Социализм и тоталитаризм» [2];
   3. научной: суперкомпиляция в программировании и кибернетические
   основания математики — статья «A constructive interpretation of the full
   set theory» [5] и отчеты «The Cybernetic Foundation of Mathematics» [3,4].

В докладе будет кратко охарактеризованы первые части, суперкомпиляция
опущена и дано введение в кибернетические основания математики —
потенциалистской интерпретации, являющейся расширением алгоритмического
конструктивизма А.А. Маркова и Э. Бишопа путем введения (модели) математика
в теорию — таким образом, что удалась конструктивная интерпретация теории
множеств ZF.

Несмотря на такую фундаментальность темы, доклад не будет
научно-математической заумью, и, надеюсь, будет доступен широкому кругу, в
том числе разработчикам и исследователям языков программирования и
трансляторов (это основные участники семинара STEP). У этого мероприятия
есть и «корыстные» цели: а) учиться излагать идеи В.Ф. Турчина популярно,
заражая ими математиков и computer scientist’ов; б) формировать кружок,
если не заинтересованных, то хотя бы любопытствующих, с надеждой обсуждать
и развивать эти идеи и их приложения.

*Ссылки*

   1. Феномен науки: Кибернетический подход к эволюции. Англ.: NY, 1977.
   Рус.: Москва, 1993, 2003. http://refal.ru/turchin/phenomenon/
   2. Инерция страха: Социализм и тоталитаризм. Изд-во «Хроника», 1977.
   
https://royallib.com/book/turchin_valentin/inertsiya_straha_sotsializm_i_totalitarizm.html
   ,
   https://vtoraya-literatura.com/pdf/turchin_inertsiya_strakha_1978__ocr.pdf
   3. The Cybernetic Foundation of Mathematics. Technical report of the
   City College, City University of New York, 1983.
   4. The Cybernetic Foundation of Mathematics. Part I & II. Unpublished,
   1983.
   5. A constructive interpretation of the full set theory. Journal of
   Symbolic Logic, 52(1), 172 –201. https://doi.org/10.2307/2273872

См. DJVU и PDF [3,4] на сайте: https://pat.keldysh.ru/~roman/doc/Turchin/


Re: Совместное совещание по Рефалу 17 июня

2023-06-21 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Wed, 21 Jun 2023 at 17:44, Andrei Klimov  wrote:

> Да, доступ к сайту refal.net из России только через VPN, так как он
> находится в Харькове.
>

Забыл сразу добавить: сейчас он работает. Я только что проверил через VPN.


> Есть еще зеркало refal.ru у российского провайдера valuehost.ru (сервера
> в Питере и в Лондоне, насколько я понимаю).
> Оба сайта меняются редко, но при каждом изменении на refal.net Леонид тут
> же делал копию на refal.ru.
> Раньше еще были за нами домены refal.org и refal.com — синонимы основных
> двух. Но потом мы посовещались и решили, что не будет больше платить, и я
> отказался от них в 2017 году.
>
> Андрей
>
> On Wed, 21 Jun 2023 at 15:18, Boyko Bantchev boykobb_AT_gmail.com <
> refal@botik.ru> wrote:
>
>> On Wed, 21 Jun 2023 at 14:44, Arkady Klimov arkady.klimov_AT_gmail.com
>>  wrote:
>> > Сайт refal.net я попробовал, он переадресуется на сайт Харькова.
>> Возможно, он у нас заблокирован: я входил при включенном впн. Самого
>> рефал-сайта там я не нашел. Возможно, сервер у Леонида Б. отключен.
>> Хотелось бы узнать, что там.
>>
>> Здравствуйте,
>>
>> Хотел только сказать: отсюда (г. София) сайт refal.net виден.
>> Внешний вид тот же, что у refal.ru, но дальше похоже что не всё
>> одинаково.
>>
>> Если нужно поискать на этом сайте что-то конкретное, я буду рад
>> попробовать
>> и поделиться результатом.
>>
>> Бойко
>>
>


Re: Совместное совещание по Рефалу 17 июня

2023-06-21 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Да, доступ к сайту refal.net из России только через VPN, так как он
находится в Харькове.
Есть еще зеркало refal.ru у российского провайдера valuehost.ru (сервера в
Питере и в Лондоне, насколько я понимаю).
Оба сайта меняются редко, но при каждом изменении на refal.net Леонид тут
же делал копию на refal.ru.
Раньше еще были за нами домены refal.org и refal.com — синонимы основных
двух. Но потом мы посовещались и решили, что не будет больше платить, и я
отказался от них в 2017 году.

Андрей

On Wed, 21 Jun 2023 at 15:18, Boyko Bantchev boykobb_AT_gmail.com <
refal@botik.ru> wrote:

> On Wed, 21 Jun 2023 at 14:44, Arkady Klimov arkady.klimov_AT_gmail.com
>  wrote:
> > Сайт refal.net я попробовал, он переадресуется на сайт Харькова.
> Возможно, он у нас заблокирован: я входил при включенном впн. Самого
> рефал-сайта там я не нашел. Возможно, сервер у Леонида Б. отключен.
> Хотелось бы узнать, что там.
>
> Здравствуйте,
>
> Хотел только сказать: отсюда (г. София) сайт refal.net виден.
> Внешний вид тот же, что у refal.ru, но дальше похоже что не всё одинаково.
>
> Если нужно поискать на этом сайте что-то конкретное, я буду рад попробовать
> и поделиться результатом.
>
> Бойко
>


Re: Совместное совещание по Рефалу 17 июня

2023-06-19 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Василий, добрый вечер!

> или рефал всё же умер?

Вы же не первый раз задаете этот вопрос. На него здесь были ответы, но,
по-видимому, вы были не удовлетворены. Чтобы понять вас, у меня встречный
вопрос-уточнение:

   - А какая у вас линейка измерения «умер рефал»?

Например, возможны такие линейки и мои ответы:

   - Если «число действующих рефал-программистов больше 0», то не умер.
   - Если «число действующих рефал-программистов больше 100», то умер.

Или это риторический вопрос, не предполагающий ответа, а лишь для
дискуссии? 😉

Всего наилучшего,
Андрей

On Mon, 19 Jun 2023 at 18:21, Стеллецкий Василий sw710_AT_yandex.ru <
refal@botik.ru> wrote:

> - metacomputation-ru@
>
> Уважаемые господа, добрый день!
> С радостью узнал, о продолжении "совещания по рефалу"!
> В воскресенье-понедельник просмотрел всю запись от а до я...
> И где же здесь рефал?
> Он чуть появился в последней трети в учебных планах А.Коновалова и в
> отзывах еще не получивших оценок студентов,
> да и в последнем докладе про нюансы в 5-лямбда...
> Снова перечитал программу - у Антонины Николаевны "анализ моделей" и
> "теорию строк" - помню, было, - рефал - не заметил :(
> ...
> Вот Александр Владимирович для знакомства с рефалом отводит две лекции...
> Я 15-летниму внуку рассказал основы рефала (базисного) за 10 минут (между
> шахматами и ужином), и мы еще успели попрактиковаться,
> и он еще успел написать аналог моей функции на Питоне...
> (кстати, реверс в регулярных выражениях в Питоне даже выглядит
> компактнее)...
>
> Что-то очень грустно...
> Не видно востребованности рефала...
>
> Извините за эмоции,
> но надо ж как-то всколыхнуть рефал-общество ;)
>
> или рефал всё же умер?
>
> --
> С уважением,
> Василий
> sw...@yandex.ru
>
>
>
> 16.06.2023, 09:52, "A N a_nevod_AT_mail.ru" :
>
> Добрый день!
>
> Завтра, в субботу 17 июня, проводится ставшее уже традиционным совместное
> совещание по языку Рефал ИПС им. А.К. Айламазяна РАН и МГТУ им. Н.Э.
> Баумана. Расписание совещания и ссылка на трансляцию расположены по адресу
> https://bmstu-iu9.github.io/JointRefal/
>
> Для очного участия необходимо написать сегодня до 12 часов дня мне на
> почту или Александру В. Коновалову на почту a.v.konovalov87 at mail.ru,
> для оперативного оформления одноразового пропуска. Виртуально можно
> участвовать через браузер.
>
> До встречи!
> Антонина Н. Непейвода
>
>
>


Re: [NON-SUBSCRIBER POST] Fwd: Refal и ChatGPT 4.0

2023-04-07 Пенетрантность Andrei Klimov andrei_AT_klimov . net
В общем, итоговый ответ в первом предложении правильный:

Сумерки протекают быстрее весной и осенью, когда день и ночь примерно равны
> по продолжительности.


А дальше в объяснениях оно запутывалось. Особенно восхитило вот это место:

Когда Земля находится ближе к Солнцу, день становится длиннее, а ночь -
> короче. Когда Земля находится дальше от Солнца, день становится короче, а
> ночь - длиннее.


Сначала я подумал, что это глупости, а потом понял, что в этом есть
сермяга, если определять день от первого лучика солнца до последнего. Это
ли оно имело в видe или просто «галлюцинировало»?

Зададим вопрос «попроще»:

Почему зимой холодно, а летом тепло?


Зимой наша планета находится ближе к Солнцу, и солнечные лучи падают на
> землю под более крутым углом, что приводит к тому, что энергия солнца
> рассеивается в атмосфере и не достигает поверхности земли. Кроме того,
> зимой дни короче, а ночи длиннее, что означает, что земля имеет меньше
> времени, чтобы нагреться от солнечных лучей. Летом же земля находится
> дальше от Солнца, и солнечные лучи падают на землю под более прямым углом,
> что приводит к тому, что больше энергии солнца достигает поверхности земли.
> Кроме того, летом дни длиннее, а ночи короче, что означает что земля имеет
> больше времени, чтобы нагреться от солнечных лучей.


Как мне помнится с детства, зимой в северном полушарии Земля действительно
ближе к Солнцу, а летом дальше. Этим объясняется меньшая разница температур
в северном полушарии по сравнению с южным. Но здесь-то это причем? Оно
похоже на студента, которые ничего не понимает содержательно, но много чего
помнит и хаотически привлекает аргументы, какие вспомнит.

И ему не хватило то ли чувства юмора, то ли здравого смысла, чтобы просто
ответить: «по определению зимы и лета».😜

Андрей

>


Re: [NON-SUBSCRIBER POST] Fwd: Refal и ChatGPT 4.0

2023-04-07 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Fri, 7 Apr 2023 at 17:09, Arkady Klimov arkady.klimov_AT_gmail.com <
refal@botik.ru> wrote:

> А вот еще задачка, теперь по школьной геометрии:
> A rectangle is inscribed in a circle of radius R. The midpoints of the
> sides of the rectangle are vertices of a rhombus. What is the side of the
> rhombus?
>

По-русски (на сайте https://gpt-chat-bot.ru) оно споткнулось в другом
месте: во втором абзаце в предложении «Тогда по теореме Пифагора» описало
несуществующий прямоугольный треугольник. Условие переведено
Яндекс-переводчиком:
Прямоугольник вписан в окружность радиуса R. Середины сторон прямоугольника
являются вершинами ромба. Какова сторона ромба?
Пусть стороны прямоугольника равны a и b. Тогда диагональ прямоугольника
равна √(a²+b²), а радиус окружности равен R. Так как диагональ ромба
является диаметром окружности, то она равна 2R. Пусть сторона ромба равна
d. Тогда по теореме Пифагора дляеугольника, образованного половиной
диагонали прямоугольника, стороной ромба и радиусом окружности, получаем:
(d/2)² + (a²+b²)/4 = R² Также заметим, что диагональ ромба равна √(d²+d²) =
d√2. Используя свойство ромба, что диагонали перпендикулярны и делятся
пополам, получаем: d²/2 + d²/2 = (a/2)² + (b/2)² d² = (a²+b²)/2 Теперь мы
можем выразить d через R: (d/2)² + (a²+b²)/4 = R² d²/4 + (a²+b²)/4 = R²
d²/2 = 2R² - (a²+b²) d² = 4R² - 2(a²+b²) d² = 2(2R² - (a²+b²)) d = √(2(2R²
- (a²+b²))) Таким образом, сторона ромба равна: d = √(2(2R² - (a²+b²)))

>


Re: [NON-SUBSCRIBER POST] Fwd: Refal и ChatGPT 4.0

2023-04-06 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Thu, 6 Apr 2023 at 15:01, Sergei M. Abramov abram_AT_botik.ru <
refal@botik.ru> wrote:

> А еще в рефале есть сконки. Интересно, как зверушке зайдет такая функция?
>
> f {
>  = ;
>  s.1 e.2 =  s.1
>  (e.1) e.2 =  ();
> }
>
> Ну, там стандартные вопросы: чему равно > и т.п.
>

См. ниже результат. Видно, что скобки оно НЕ понимает.

Занятно, что как выявилось еще в предыдущих экспериментах, оно по-разному
понимает код рефала с точками и без точек (желтый запрос и зеленый ответ).
Наверно, оно учило диалекты Рефала по разным учебникам с разными примерами.

Андрей

Дано следующее определение функции f на языке программирования Рефал: ``` f
{ = ; s.1 e.2 =  s.1 (e.1) e.2 =  (); } ``` Верно ли,
что > == e.x ?
Для ответа на этот вопрос нужно выполнить несколько шагов вычисления
функции f: 1. >> 2.ffe.x>>> 3. >f >> 4. >
> <> 5. > >> 6. >ffe.x>> >> 7. >f > > <> 8. >> 9. > <> 10. >
Таким образом, мы получили > = >. Но это не равно e.x в общем
случае. Например, если e.x = (1), тоfe.x>> = > =f>> =>, тогда как
e.x = (1).
Дано следующее определение функции f на языке программирования Рефал: ``` f
{ = ; s1 e2 =  s1 (e1) e2 =  (); } ``` Верно ли, что
> == ex ?
Для ответа на этот вопрос необходимо понимать, как работает функция f. Если
на вход функции f подается пустой список (первое правило), то она просто
возвращает этот список без изменений. Если на вход функции f подается
список, состоящий из одного элемента (второе правило), то она рекурсивно
вызывает себя для второго элемента списка и возвращает результат, который
получается из второго элемента списка и результата рекурсивного вызова
функции f для него, помещенных в новый список. Теперь рассмотрим
выражениеf>. Сначала происходит вызов функции f для внутреннего
выражения f. Согласно второму правилу функции f, результатом этого
вызова будет список, состоящий из двух элементов: результата вызова функции
f для ex и самого ex, помещенных в новый список. То есть получится список,
эквивалентный выражению  ex. Теперь происходит вызов функции f для
этого списка. Согласно второму правилу функции f, результатом этого вызова
будет список, состоящий из двух элементов: результата вызова функции f для
ex и списка, содержащего результат вызова функции f для ex и сам ex,
помещенных в новый список. То есть получится список, эквивалентный
выражению  ( ex). Таким образом,f> эквивалентно выражению
 ( ex).
Ответ на вопрос зависит от того, какое значение имеет ex. Если ex является
пустым списком, тоf> будет эквивалентно пустому списку. Если ex
является любым другим списком, то > не будет эквивалентно ex.


Re: [NON-SUBSCRIBER POST] Fwd: Refal и ChatGPT 4.0

2023-04-03 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Сергей, спасибо!

Да, впечатляет, как оно умудряется «понять» код и прокомментировать его!
Вот за этим уже просматривается практическое значение:

Как считается, программисты тратят больше 70% своего времени, изучая чужой
код, в который потом делают вставки для реализации нового функционала. А
при освоении новой системы, я бы сказал по своему опыту, и все 90%+. Важные
системы должны поставляться с документацией о внутреннем устройстве. Ладно,
что документация подчас плохая: если очень надо, можно «выжать»
документацию из разработчиков с помощью дополнительного штата технических
писателей. А основная проблема, что документация часто расходится с кодом,
который убегает вперед в быстром развитии на потребу пользователям.

Представим такую технологию работы: Комментарии к программе и документация
о ее устройстве «наговариваются» Chat'у GPT, чтобы кроме общего знания и
умения объяснять код, оно владело особенностями данной системы и умело
отвечать на вопросы о конкретном коде. После того, как код изменяется (как
правило, не в слишком революционных пределах), оно само сможет
комментировать измененных код без дополнительного обучения или с минимумом
оного. После рефакторинга программист может поговорить с ним и, убедившись,
что оно правильно «поняло» новый код, завершить работу или наговорить
уточнения.

А для новых пользователей «ИИ», обученный на данную систему, вообще
бесценен. У разных людей возникают разные вопросы: кто-то буксует уже на
вопросе, как инсталлировать, а кого-то сразу волнует, какие глубокие фичи
есть у системы. Я бы с удовольствием начинал освоение с бесед с таким «ИИ».
Сейчас ищешь туториалы в виде текстов с примерами или роликами на Ютубе.
Уже на это уходит много времени, пока найдешь то, что отвечает на твои
вопросы (которые еще нужно осознать). А в такой беседе быстро выйдешь
на информацию, интересующую тебя лично.

Пока мне в голову пришла лишь такая польза в нашей области. Заявки Google и
MS, что они сделают качественно новый поиск на таком «интеллекте» пока
вызывают сомнение. Прок, конечно, будет. Но не «качественный скачок». Когда
на вопрос о свежих статьях, оно ответило мне: «К сожалению, я не могу дать
рекомендации по свежим статьям по суперкомпиляции, так как я не имею
возможности искать и анализировать последние научные публикации» — я понял,
что «всё еще впереди». Здесь пахнет не просто недоученностью нейросетки.
Подозреваю пока еще принципиальное неумение анализировать научную
информацию.

Андрей


On Mon, 3 Apr 2023 at 13:28, Sergei Skorobogatov
s.yu.skorobogatov_AT_gmail.com  wrote:

> Повторил ваш эксперимент, заменив рефал на питон. (Мой запрос -- зелёный,
> ответ ChatGPT -- синий).
>
>>
>>


Re: Refal и ChatGPT 4.0

2023-04-02 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Sun, 2 Apr 2023 at 17:30, Sergei M. Abramov abram_AT_botik.ru <
refal@botik.ru> wrote:

> > Можно было бы и по-русски, но по-английски меньше расходуется...
>
> Спасибо! Содержательное знание.
>

Да, шум вокруг этой GPT-3,4 явно преувеличен. Я посмотрел кое-то ролики
лидера OpenAI: хорошо ведет рекламную кампанию. На вопросы, которые он
задает GPT во время презентации, та отвечает неплохо. Естественно,
возникает обоснованное подозрение, что он готовился к презентации. А как же
иначе? Мы же все готовимся, примеры тщательно подбираем... 😆

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

--
Что такое суперкомпиляция?
Суперкомпиляция - это метод автоматической оптимизации программ, который
позволяетлучшить их производительность и эффективность. Он основан на
анализе и преобразовании кода программы, с целью устранения избыточных
вычислений и улучшения структуры программы. Суперкомпиляция используется в
различных областях, включая компиляцию, интерпретацию, анализ и оптимизацию
программного кода.
Посоветуй свежие статьи по суперкомпиляции?
К сожалению, я не могу дать рекомендации по свежим статьям по
суперкомпиляции, так как я *не имею возможности искать и анализировать
последние научные публикации*. Однако, я могу порекомендовать некоторые
классические статьи по суперкомпиляции, которые могут быть полезными для
изучения этой темы: 1. "The essence of compiling with continuations"
(Daniel P. Friedman and David S. Wise, 1976) 2. "A tutorial on the
universality and expressiveness of fold" (Neil D. Jones, 1995) 3. "Partial
evaluation and automatic program generation" (Neil D. Jones, Carsten K.
Gomard, and Peter Sestoft, 1993) 4. "The essence of supercompilation"
(Vladimir V. Kirillov, 1998) 5. "Supercompilation: Ideas and Methods"
(Sergei A. Romanenko, 2001) Эти статьи могут помочь в пониманииновных
концепций и методов суперкомпиляции.
--

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

И для развлечения:

--
В чем смысл жизни?

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

Андрей


Re: Refal и ChatGPT 4.0

2023-04-02 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Я перевел запрос Сергея Скоробогатова на русский Яндекс-переводчиком, и вот
что получилось. Свалился в Хаскель:

Пожалуйста, напишите краткую спецификацию для нового функционального языка
программирования. Язык должен максимально сохранять синтаксис и семантику
языка Refal, но каждое объявление функции в нем должно быть типизировано.
Название языка: Refal-T Основные особенности: - Синтаксис и семантика языка
Refal сохранены - Объявления функций типизированы - Поддержка статической
типизации - Поддержка базовых типов данных: целочисленный тип, тип с
плавающей точкой, логический тип, символьный тип - Поддержка
пользовательских типов данных - Поддержка функций высшего порядка -
Поддержка рекурсии и итерации Синтаксис объявления функции: <имя функции>
:тип входного параметра 1> -> <тип входного параметра 2> -> ... -> <тип
входного параметра n> -> <тип выходного параметра> Пример: Reverse : (List
a) -> (List a) Типы данных: - Целочисленный тип: int - Тип с плавающей
точкой: float - Логический тип: bool - Символьный тип: char -
Пользовательские типы данных: объявляются с помощью ключевого слова type
Пример: type List a = Nil | Cons a (List a) Функции высшего порядка: -
Поддерживаются функции, которые принимают другие функции в качестве
аргументов или возвращают функции в качестве результата Пример: Map : (a ->
b) -> (List a) -> (List b) Рекурсия и итерация: - Поддерживаются
рекурсивные и итеративные функции Пример: Factorial : int -> int Factorial
0 = 1 Factorial n = n * Factorial (n - 1)


Re: Refal и ChatGPT 4.0

2023-04-02 Пенетрантность Andrei Klimov andrei_AT_klimov . net
вс, 2 апр. 2023 г. в 15:29, Sergei M. Abramov abram_AT_botik.ru <
refal@botik.ru>:

> Что ж она(он, оно) про рефал не по-русски то?


По-русски он/о/а тоже может (цветом выделены мои запросы): 😜

Расскажи про язык программирования Рефал
Рефал - это язык программирования, созданный в СССР в 1966 году. Он был
разработан А. К. Саломаа и М. Я. Райзеном в Институте кибернетики имени В.
М. Глушкова в Киеве. Рефал был создан для решения задач символьной
обработки, таких как обработка текстов, формул, графов и т.д. Язык имеет
мощные средства для работы с регулярными выражениями, синтаксическими
деревьями и шаблонами. Основными принципами Рефала являются рекурсия и
сопоставление с образцом. Рекурсия позволяет определять функции, которые
вызывают сами себя, что упрощает написание кода и повышает его читаемость.
Сопоставление с образцом позволяет определять шаблоны, которые могут быть
использованы для поиска и замены в тексте. Рефал имеет свой синтаксис,
который отличается от синтаксиса большинства других языков
программирования. Например, в Рефале нет операторов и скобок, вместо этого
используются ключевые слова и символы. Сегодня Рефал не является широко
используемым языком программирования, однако он все еще используется в
некоторых областях, таких как лингвистика, компьютерная логика и
искусственный интеллект.
Приведи пример программы на Рефале
Вот пример программы на Рефале, которая считает факториал числа: $ENTRY
FAKTORIAL (N) = $ $ 1 = N \to1>; $ $ N * FAKTORIAL (N - 1) = N > 1 \to <2,
1>; $ $ <2, 1> = FAKTORIAL (N - 1) \to3, 2, 1>; $ $3, 2, 1> = N * FAKTORIAL
(N - 1) \to <4>; $ $ <4> = N \to FAKTORIAL; $
В этой программе мы используем рекурсию для вычисления факториала числа N.
Сначала мы проверяем, равно ли N единице, и если да, то возвращаем 1. Затем
мы умножаем N на результат вызова функции FAKTORIAL с аргументом (N - 1),
если N больше 1. Мы продолжаем рекурсивные вызовы, пока N не станет равным
1, после чего возвращаем результат.


On Sun, 2 Apr 2023 at 16:01, Sergei Skorobogatov
s.yu.skorobogatov_AT_gmail.com  wrote:

> Можно было бы и по-русски, но по-английски меньше расходуется контекст
> языковой модели, максимальный размер которого в ChatGPT 4.0 ограничен 32
> тыс. токенов.
>
> Дело в том, что английский текст при подаче в модель токенизируется по
> словам, а точнее -- одному английскому слову, как правило, соответствует
> один или два токена. А русский текст токенизируется даже не по буквам, а по
> байтам UTF-8. Поэтому порождение русского текста обходится во много раз
> дороже, чем английского. Ну и максимальный размер диалога на русском языке
> будет во много раз меньше, чем на английском.
>
> вс, 2 апр. 2023 г. в 15:29, Sergei M. Abramov abram_AT_botik.ru <
> refal@botik.ru>:
>
>> Чтож она(он, оно) про рефал не по-русски то?
>>
>> Всего доброго,
>>
>> Сергей Абрамов
>>
>>


Re: Refal и ChatGPT 4.0

2023-03-30 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Да-а-а! Пример крутой! Как «оно» «догадалось» построить пример фильтрации
по типу?!

Тут уж стоит задуматься: откуда он(о) не просто «знает» про Рефал, а
еще «понимает» его, в смысле может содержательно варьировать синтаксис?

Угловые скобки и двоеточие мог позаимствовать из Хаскеля. Но для этого
надо «понимать», что это родственные языки!

Пишет выражения внутри [], «подразумевая» не один элемент списка, а его
фрагмент. В принципе, это допустимая идея. Кажется, так сделано в
Wolfram'овской Mathematica. Кстати, язык Wolfram — это фактически Рефал с
синтаксисом, подкрученным под мат-формулы.

Андрей


On Thu, 30 Mar 2023 at 21:45, Sergei Skorobogatov
s.yu.skorobogatov_AT_gmail.com  wrote:

> Запрос удалось сформулировать с первой попытки.
> Другое дело, что я ведь на этом не остановился, и вторая попытка принесла
> гораздо более забавные результаты :-)
>
> Вторая попытка отличалась от первой добавлением следующей фразы:
>
>> Please, be extremely precise and pedantic. All parts of the specification
>> should be consistent with each other and contain sample programs.
>
> В результате получился гораздо более симпатичный рефал, без элементов
> синтаксиса C++.
>
> Мне, в частности, понравился вот такой пример:
> FilterInt: [A] -> [Int] {
> [] = []; [s.1 : e.tail] = [s.1 : ]; [s.1 : e.tail]
> = ; }
>
> Здесь мы видим generic-функцию, принимающую на вход произвольный список и
> возвращающую список целых чисел. При этом "гопота" изобрела гарды по типу в
> образцах (s.1), хотя никто её об этом специально не просил. Это, так
> сказать, творческое осмысление задания: раз попросили добавить в рефал
> статическую типизацию, значит неплохо бы ещё добавить динамическую проверку
> типов :-)
>
> Завтра, наверное, попробую ещё раз. Мне пришло в голову, что "гопота",
> видимо, не просекла, что списки в рефале можно разбирать с любой стороны, и
> надо бы ей явно об этом напомнить.
>
> чт, 30 мар. 2023 г. в 21:11, Andrei Klimov andrei_AT_klimov.net <
> refal@botik.ru>:
>
>> Да, впечатляет! Сам я еще не научился пользоваться ChatGPT-ом (может,
>> Сергей научит?), а с интересом изучаю диалоги, что выставили другие на
>> просторах интернета.
>>
>> То, что некий «ИИ» может писать связный текст, хорошо структурированный
>> по теме запроса (как здесь четко воспроизводится структура описания языка),
>> — это, в принципе, может быть: на то он и содержит «базу знаний» как «базу
>> шаблонов». Что удивительно — то, что он (она, оно) понимает задания,
>> сформулированные короткими запросами.
>>
>> В связи с этим вопрос: Сергей, с какой попытки удалось сформулировать
>> запрос, чтобы получить осмысленный ответ? Сколько «бреда» пришлось
>> забраковать?
>>
>> Спрашиваю потому, что подозреваю, что всё выставляют удачные варианты
>> беседы с ChatGPT, а муки поиска не показывают. Мои подозрения имеют смысл?
>>
>> Андрей
>>
>>
>> On Thu, 30 Mar 2023 at 14:57, Sergei Skorobogatov
>> s.yu.skorobogatov_AT_gmail.com  wrote:
>>
>>> Всем привет!
>>>
>>> Я тут поразвлекался с четвёртой версией ChatGPT, выдав ей следующее
>>> задание:
>>>
 Please, write a short specification for a new functional programming
 language. The language should preserve the syntax and semantics of Refal
 language as much as possible, but every function declaration in it must be
 typed.
>>>
>>>
>>> Результат получился довольно забавный, и мне захотелось им поделиться:
>>>
>>> Title: TypedRefal - A Typed Functional Programming Language Based on
>>> Refal
>>>
>>>
>>>


Re: Refal и ChatGPT 4.0

2023-03-30 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Да, впечатляет! Сам я еще не научился пользоваться ChatGPT-ом (может,
Сергей научит?), а с интересом изучаю диалоги, что выставили другие на
просторах интернета.

То, что некий «ИИ» может писать связный текст, хорошо структурированный по
теме запроса (как здесь четко воспроизводится структура описания языка), —
это, в принципе, может быть: на то он и содержит «базу знаний» как «базу
шаблонов». Что удивительно — то, что он (она, оно) понимает задания,
сформулированные короткими запросами.

В связи с этим вопрос: Сергей, с какой попытки удалось сформулировать
запрос, чтобы получить осмысленный ответ? Сколько «бреда» пришлось
забраковать?

Спрашиваю потому, что подозреваю, что всё выставляют удачные варианты
беседы с ChatGPT, а муки поиска не показывают. Мои подозрения имеют смысл?

Андрей


On Thu, 30 Mar 2023 at 14:57, Sergei Skorobogatov
s.yu.skorobogatov_AT_gmail.com  wrote:

> Всем привет!
>
> Я тут поразвлекался с четвёртой версией ChatGPT, выдав ей следующее
> задание:
>
>> Please, write a short specification for a new functional programming
>> language. The language should preserve the syntax and semantics of Refal
>> language as much as possible, but every function declaration in it must be
>> typed.
>
>
> Результат получился довольно забавный, и мне захотелось им поделиться:
>
> Title: TypedRefal - A Typed Functional Programming Language Based on Refal
>
>
>


Re: Нашел лекцию: конкуренты

2023-03-15 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Коля, большое спасибо!

Меня удивляло, почему уже давно существующий GraalVM не породил шума. Вроде
есть, но живет где-то на заднем плане общественного интереса. Послушаю эту
лекцию. Может, она объяснит, в чем пробуксовка, или наоборот, расскажет,
что докладчик с командой сделали, чтобы продвинуть метавычисления дальше в
жизнь.

Андрей

On Wed, 15 Mar 2023 at 20:54, nikolai.kondratiev_AT_gmx.de 
wrote:

> Уважаемые коллеги!
>
>
>
> Случайно набрел на любопытную левцию.
>
>
>
> https://yandex.ru/video/preview/13941593127661880266
>
>
>
> Олег Шелаев — Суперкомпиляция, partial evaluation, проекции Футамуры и как
> GraalVM
>


POPL & PEPM 2022

2022-01-17 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Привет всем!

Вчера (16 января) началась конференция *49th ACM SIGPLAN Symposium on
Principles of Programming Languages (POPL 2022)*:
https://popl22.sigplan.org/

Кроме основной программы конференции, при ней несколько workshop'ов,
включая ведущий для нашего сообщества *ACM SIGPLAN Workshop on Partial
Evaluation and Program Manipulation (PEPM)*, который пройдет сегодня 17 и
завтра 18 января.
https://popl22.sigplan.org/home/pepm-2022#program
Первый доклад на PEPM'22:

   - 17.01.22 *18:15* (мск) 60m Keynote
   *Why are partial evaluation and supercompilation still not widely used
   in practice? Reflections in light of Russian work on metacomputation*
   Andrei Klimov, Keldysh Institute of Applied Mathematics of Russian
   Academy of Sciences

На странице с программой есть ссылка на extended abstract. Позже появится и
файл презентации.

Сессии начинаются по утрам по восточно-американскому времени, в Москве это
вечер – с 17-18 часов. На сайте можно выставить time zone, чтобы было
удобно смотреть программу.

Чтобы участвовать online и задавать вопросы нужно было зарегистрироваться и
заплатить оргвзнос. Но только слушать можно в Ютубе. На странице
Ютуб-канала ACM SIGPLAN сразу видны прямые трансляции, а для прослушивания
после нужно будет поискать в архиве:
https://www.youtube.com/channel/UCwG9512Wm7jSS6Iqshz4Dpg

Всего наилучшего,
Андрей Климов


Re: Актуальные реализации и текущее состояние.

2021-10-11 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Mon, Oct 11, 2021 at 1:11 PM Mike Potanin mpotanin_AT_gmail.com <
refal@botik.ru> wrote:

> Научить суперкомпилятор функциям высших порядков
> будет не просто, а сделать еще пакет для суперкомпилятора было бы полезно.
>

Суперкомпилировать язык с функциями высшего порядка – в первом приближении
нет проблем: можно это делать «в лоб», держа в голове какие-нибудь
представление замыканий на языке первого порядка, либо даже скомпилировать
высший порядок в первый и применить старый суперкомпилятор. На хлеб
мазаться...[зачеркнуто] Суперкомпилировать будет.

Однако, используя такой суперкомпилятор, заметите одну проблему: обобщение
по наивному краскаллическому свистку будет часто казаться преждевременным.
Возникнет соблазн сделать его более «тонким», пореже сваливая в одну кучу
слишком разные конфигурации с замыканиями. Попытавшись сделать свисток
более «тонким», будем сваливаться в незавершаемость.

И тут вам в помощью диссертация и соответствующая серия статей Ильи
Ключникова под рук. Сергея Романенко. См. публикации на странице Ильи:

   - https://pat.keldysh.ru/~ilya/

Илья получил удивительный результат:

   - Предложил свисток на достаточно естественном «более тонком»
   гомеоморфном вложении, которое по классической теории не является
   well-quasi-order, то есть согласно ей такой свисток не является
   завершающим.
   - Обнаружил и доказал, что в множестве конфигураций, возникающих в
   процессе прогонки в суперкомпиляторе, этот свисток является завершающим.

Мне в этом результате нравится, что он получен там, где предшественники не
задумываясь считали, что ничего не получится. В истории науки такие
примеры – самые красивые и интригующие.

Всего наилучшего,
Андрей Климов

>


Re: Актуальные реализации и текущее состояние.

2021-10-10 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Sun, 10 Oct 2021 at 17:56, Dr Mikhail Kovtun, Ph.D.
mikhail.kovtun_AT_duke.edu  wrote:

> Поэтому обращаюсь (к Рефал-компании) -- думайте и о людях, работающих на
> машинах без соединения с интернетом.
>

Миша, я в чем проблема? Ценный несекретный софт может лежать в двух видах:
как в интернет-системах, так и устанавливаться без оного. До сих пор
много десятилетий, мы считали нормальным готовить дистрибутивы без связи с
интернетом по привычкам, сложившимся в доинтернетовские времена. А сейчас,
как я понял, поступил запрос сделать в том числе и интернетовский
дистрибутив в ДОПОЛНЕНИЕ к старым традициям.

Однако сейчас наша реальная проблема – другая: далеко не все
существующие Рефалы имеют нормальные классические дистрибутивы. Нужно
ковыряться, чтобы что-то заработало.

Всего наилучшего,
Андрей Климов


Re: Приглашение на онлайн семинар ruSTEP в пятница 11 июня в 12:00 мск (=16:00 нск).

2021-06-11 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый день всем!

По итогам только что прошедшего семинара, в связи с возникшим обсуждением
целей Рефала при его создании, хочу обратить внимание на предисловие
В.Ф.Турчина к первому изданию в 1993 году на русском языке его книги
"Феномен науки". Оно неявно содержит цели Рефала как метаалгоритмического
языка, предназначенного для компьютерной обработки формально-языковых
систем, математических и физических теорий, то есть как инструмент
построения метанауки. Об этом Турчин явно говорил нам в 60-70-е годы.
Приведу копипаст со страницы
http://www.refal.net/turchin/phenomenon/preface.htm:

Предисловие

Русское издание этой книги выходит через двадцать с лишним лет после ее
написания. За это время наука существенно продвинулась вперед. Достаточно
вспомнить раскрытие генетического кода, открытия в астрофизике, новую
теорию элементарных частиц. Персональные компьютеры вошли чуть ли не в
каждый дом. Между тем книга выходит в том виде, в каком она была
подготовлена к печати в 1970 г. Если бы я стал что-то добавлять к ней, то
это превратилось бы, в конечном счете, в написание новой книги, гораздо
большей по объему, и она включала бы в себя старую практически целиком и
без перемен. Ибо основная тема книги — Эволюция Вселенной как
последовательность метасистемных переходов — не пострадала от времени.
Напротив, появились новые указания на плодотворность этого подхода. В
настоящее время мы с группой коллег начали работу над проектом PRINCIPIA
CYBERNETICA, который включает дальнейшее развитие этих идей. Некоторое
представление об этом проекте дает написанная мною совместно с Клиффом
Джослиным статья “Кибернетический манифест”. Эта статья также включает
краткое изложение основных идей книги и включена в качестве приложения
 к
настоящему изданию.

“Феномен науки” вышел в английском и японском переводах. Я очень рад, что
он может, наконец, выйти и в русском оригинале.

Одно место в “Феномене науки” требует комментария в свете последних
достижений физики. В разделе “Сумасшедшие теории и метанаука” я высказал
мысль, что для того, чтобы разрешить трудности в современной теории
элементарных частиц, надо разработать методы “метанауки”, т. е. теории о
том, как строить теории. Причину я усматривал в том, что основные понятия
физики на ранних стадиях ее развития брались из нашей интуиции
макроскопического мира. Но для познания законов микромира (а точнее, для
построения математических моделей этого мира) наша “макроскопическая”
интуиция неадекватна. Если интуиция не дает нам впрямую тех “колесиков”, из
которых можно строить модели микромира, то нам нужны какие-то теории о том,
как эти колесики выбирать и как модели строить. Это и будет метанаука.

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

В.Ф.Турчин
Обнинск, август 1990 г.

Небольшое пояснение о месте и дате подписи. Они умышленные. Это был второй
визит Валентина Федоровича с Татьяной Ивановной на родину после 12 лет
прерывания практически всех контактов между нами (и без веры на встречу).
Тогда мы провели в Обнинске семинар по Рефалу и суперкомпиляции, на котором
прокачивали накопившиеся к тому времени идеи суперкомпиляции и развития
Рефала. Обнинск – это место начала научной карьеры Турчина, где еще жили
друзья его молодости. Именно они помогли организовать семинар в самом
респектабельном (на тот момент) месте, называвшемся, если мне не изменяет
память, "Международной пристройкой", кажется, к зданию горкома партии. (Во
как!😁)

Всего наилучшего,
Андрей Климов



On Fri, 11 Jun 2021 at 13:19, Andrei Klimov  wrote:

> Накануне доклада я послал это письмо в гугл-группу
> metacomputation...@googlegroups.com и рассылку refal@botik.ru и забыл
> послать сюда, в ru-step-discussion-group. Посылаю в разгар доклада, как
> материал к обсуждению по его окончании.
>
>
> Добрый вечер всем!
>
> Приятно слышать, что не все рефальщики вымерли, а в Бауманке под
> руководством Александра Коновалова теплится рефал-жизнь.
>
> Вопросы принято задавать после докладов, но если их сформулировать до,
> есть надежда, что докладчики учтут их уже в своих выступлениях. Мне было бы
> интересно услышать личное (пусто субъективное) мнение докладчиков,
> представляющих молодое поколение рефальщиков, и слушателей – рефал-зубров и
> новичков (и я тоже, конечно, имею какие-то свои соображения) по таким
> вопросам:
>
>- Почему "умер" Рефал?
>- Кавычки и вопросительный знак умышленные, чтобы не навязывать
>   мнение: чтобы и те, кто считает "умер", и те, кто говорит "не умер",
>   высказывались без обид. Обсуждение может (и должно, на мой взгляд) 
> ставить
>   такие воп

Re: Приглашение на онлайн семинар ruSTEP в пятница 11 июня в 12:00 мск (=16:00 нск).

2021-06-10 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый вечер всем!

Приятно слышать, что не все рефальщики вымерли, а в Бауманке под
руководством Александра Коновалова теплится рефал-жизнь.

Вопросы принято задавать после докладов, но если их сформулировать до, есть
надежда, что докладчики учтут их уже в своих выступлениях. Мне было бы
интересно услышать личное (пусто субъективное) мнение докладчиков,
представляющих молодое поколение рефальщиков, и слушателей – рефал-зубров и
новичков (и я тоже, конечно, имею какие-то свои соображения) по таким
вопросам:

   - Почему "умер" Рефал?
   - Кавычки и вопросительный знак умышленные, чтобы не навязывать мнение:
  чтобы и те, кто считает "умер", и те, кто говорит "не умер",
высказывались
  без обид. Обсуждение может (и должно, на мой взгляд) ставить
такие вопросы
  и отвечать не только узко применительно к Рефалу, а и вообще, как языки
  программирования живут и умирают. Хорошо бы выделить общие
принципы, и с их
  колокольни глянуть на Рефал.


   - Что определяет срок жизни и сферу распространения языков
   программирования?
  - Для затравки: Языки живут, пока есть сообщество его любителей и
  потребителей (по-простому, "юзеров"). В СССР любители Рефала возникали по
  одним причинам и закономерностям, после его окончания по другим. Каким?
  - Есть мнение, что в нынешние времена жизнь языка в значительной
  степени определяет поддержка фирм.
  - Можно поперебирать распространенные языки и подумать, благодаря
  чему они живут.


   - У Рефала были отличительные положительные свойства в 60-80-е годы, по
   которым он "выигрывал конкуренцию". Какие именно? Потом многие из них
   разошлись по другим языкам.
  - Остались ли в нынешние времена какие-либо сильные отличительных
  качества Рефала?


   - Хотя бы чисто гипотетически, были ли возможности у Рефала остаться на
   плаву? А может еще есть?
  - Какие черты стоило бы добавить Рефалу и инструментам и системам
  программирования на нем, чтобы (хотя бы гипотетически) он мог бы получить
  "второе дыхание"?

Надеюсь, эти вопросы раззадорят докладчиков и слушателей, чтобы доклад и
его обсуждение прошли интереснее и веселее.😍

Всего наилучшего,
Андрей Климов


On Thu, 10 Jun 2021 at 18:21, Andrei Klimov  wrote:

> -- Forwarded message -
> From: Shilov Nikolay 
> Date: Thu, 10 Jun 2021 at 08:48
> Subject: Приглашение на онлайн семинар ruSTEP в пятница 11 июня в 12:00
> мск (=16:00 нск).
> To: Shilov Nikolay 
>
> Уважаемые подписчики новостей о предстоящих заседаниях ru-STEP!
> (ruSTEP=russian seminar on Software Engineering, Theory and Experimental
> Programming, https://persons.iis.nsk.su/ru/ruSTEP)
>
> Во-первых, *извините за задержку с объявлением программы семинара* на
> июнь 2021 г. — возникли некоторая неопределенность с доступностью
> докладчиков.
>
> Во-вторых, *очередное заседание состоится в пятницу 11 июня 2021 г. (с
> 12:00 до 13:30 московского времени, 16:00-17:30 в Новосибирске).*
>
> *Семинар пройдет в Zoom* (
> https://us02web.zoom.us/j/83462558349?pwd=azR1cWwrdWlZbXo2dm0rdzVtdFVmQT09, 
> идентификатор
> 834 6255 8349, пароль 633666). — Уважаемые участники из Университета
> Иннополис! Обратите внимание, что в этот раз очного семинара не будет.
>
> *Программа семинара: 2 выступления из МГТУ им. Баумана*
>
>1. *Александр Владимирович Коновалов*: *Введение в язык Рефал*
>   - Аннотация: В докладе будет рассказано о языке программирования
>   Рефал — история, синтаксис, семантика и основы метавычислений над
>   ним. Цель — предварить (предполагаемые в июле-августе) доклады про
>   особенности суперкомпиляции Рефала (а участники семинара с предметной
>   областью не знакомы).
>
>2. *Никита Ольшевский*: *Аспекты программирования как языковой
>деятельности*
>- Аннотация. Язык, на котором пишутся программы, это не только язык
>   программирования… — Выступление по материалам дипломного проекта,
>   выполненного под руководством А.В. Коновалова.
>
> Регламент семинара:
>
>- 12:00-12:05 — открытие заседания семинара
>- 12:05-13:00 — выступление А.В. Коновалова (с вопросами и обсуждением)
>- 13:00-13:05 — перерыв
>- 13:05-13:35 — выступление Н. Ольшевского (с вопросами и обсуждением)
>- 13:35-13:40 — закрытие заседания семинара
>
> Ведет заседание Николай В. Шилов (Университет Иннополис)
> ==
> P.S. Пожалуйста, распространяйте информацию о нашем семинаре среди ваших
> коллег, приглашайте их регистрироваться в
> https://forms.gle/earZy3hFJKmHQLoZ7.
>
>


Приглашение на онлайн семинар ruSTEP в пятница 11 июня в 12:00 мск (=16:00 нск).

2021-06-10 Пенетрантность Andrei Klimov andrei_AT_klimov . net
-- Forwarded message -
From: Shilov Nikolay 
Date: Thu, 10 Jun 2021 at 08:48
Subject: Приглашение на онлайн семинар ruSTEP в пятница 11 июня в 12:00 мск
(=16:00 нск).
To: Shilov Nikolay 

Уважаемые подписчики новостей о предстоящих заседаниях ru-STEP!
(ruSTEP=russian seminar on Software Engineering, Theory and Experimental
Programming, https://persons.iis.nsk.su/ru/ruSTEP)

Во-первых, *извините за задержку с объявлением программы семинара* на июнь
2021 г. — возникли некоторая неопределенность с доступностью докладчиков.

Во-вторых, *очередное заседание состоится в пятницу 11 июня 2021 г. (с
12:00 до 13:30 московского времени, 16:00-17:30 в Новосибирске).*

*Семинар пройдет в Zoom* (
https://us02web.zoom.us/j/83462558349?pwd=azR1cWwrdWlZbXo2dm0rdzVtdFVmQT09,
идентификатор
834 6255 8349, пароль 633666). — Уважаемые участники из Университета
Иннополис! Обратите внимание, что в этот раз очного семинара не будет.

*Программа семинара: 2 выступления из МГТУ им. Баумана*

   1. *Александр Владимирович Коновалов*: *Введение в язык Рефал*
  - Аннотация: В докладе будет рассказано о языке программирования
  Рефал — история, синтаксис, семантика и основы метавычислений над
  ним. Цель — предварить (предполагаемые в июле-августе) доклады про
  особенности суперкомпиляции Рефала (а участники семинара с предметной
  областью не знакомы).

   2. *Никита Ольшевский*: *Аспекты программирования как языковой
   деятельности*
   - Аннотация. Язык, на котором пишутся программы, это не только язык
  программирования… — Выступление по материалам дипломного проекта,
  выполненного под руководством А.В. Коновалова.

Регламент семинара:

   - 12:00-12:05 — открытие заседания семинара
   - 12:05-13:00 — выступление А.В. Коновалова (с вопросами и обсуждением)
   - 13:00-13:05 — перерыв
   - 13:05-13:35 — выступление Н. Ольшевского (с вопросами и обсуждением)
   - 13:35-13:40 — закрытие заседания семинара

Ведет заседание Николай В. Шилов (Университет Иннополис)
==
P.S. Пожалуйста, распространяйте информацию о нашем семинаре среди ваших
коллег, приглашайте их регистрироваться в
https://forms.gle/earZy3hFJKmHQLoZ7.


Re: Харитоновские Научные Чтения - 2021

2021-05-25 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Можно загрузить сборник трудов конференции Харитон-2021 и посмотреть 1-2
страничные тезисы докладов, пойдя на страницу:

   - http://nimfa.vniief.ru/khariton2021/materialy-khariton-2021/

Сборник:

   - http://nimfa.vniief.ru/khariton2021-content/Сборник_тезисов.pdf
   - стр. 49-50:
   *Особенности реализации теста HPCG для ППВС «БУРАН»*
   Д. Н. Змеев, *Арк. В. Климов*, А. С. Окунев, Н. Н. Левченко
   - стр. 59-60:
   *Детерминированное параллельное программирование и распределенные
   вычисления: процесс конвергенции*
   *Анд. В. Климов*, А. И. Адамович

Программа здесь тоже есть (хоть и с мелкими отличиями, но на 26-27 мая
совпадает):

   -
   
http://nimfa.vniief.ru/khariton2021-content/Программа_конференции_ХНЧ_2021.pdf

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


On Tue, 25 May 2021 at 19:13, Arkady Klimov  wrote:

> Завтра, в среду, 26.5, мы с Андреем выступаем с докладами на XXII
> Международной конференции Харитоновские Тематические Научные Чтения
> "Суперкомпьютерное моделирование и искусственный интеллект", которая
> проходит в регулярно в Сарове. Секция 2:
>
> 9.10 – 9.30 ДЕТЕРМИНИРОВАННОЕ ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ И
> РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ: ПРОЦЕСС КОНВЕРГЕНЦИИ
> Климов А.В.1 , Адамович А.И.2
> 1 Институт прикладной математики им. М.В. Келдыша РАН, Москва
> 2 Институт программных систем им. А.К. Айламазяна РАН, Переславль-Залесский
>
> 9.50 – 10.10 ОСОБЕННОСТИ РЕАЛИЗАЦИИ ТЕСТА HPCG ДЛЯ ППВС «БУРАН»
> Змеев Д.Н., Климов А.В., Окунев А.С., Левченко Н.Н.
> Институт проблем проектирования в микроэлектронике РАН, Москва
> В качестве аннотации (в оправдание за как бы оффтопик) скажу, что для меня
> наш язык UPL, в котором выражается представляемый алгоритм - это как бы
> "рефал в области супервычислений". Почему - требует отдельного разговора.
>
> Вот ссылка гостевая для подключения (для секции 2):
> https://conf.rosatom.ru/#join:t93916cdc-2656-45c6-a7a5-ede35e7b06d0
> Там надо представиться (фамилия имя, организация), в графе "о себе" можно
> написать "гость".
> Полную программу можно посмотреть по ссылке:
>
> https://www.sphti.ru/wp-content/uploads/2021/05/%D0%9F%D0%A0%D0%9E%D0%93%D0%A0%D0%90%D0%9C%D0%9C%D0%90-%D0%A5%D0%9D%D0%A7-2021.pdf
> Поскольку время может сбиваться (в любую сторону), лучше войти заранее и
> следить по докладам.
>
> С уважением,
> Аркадий Климов
>
>
>
> --
> Вы получили это сообщение, поскольку подписаны на группу "Метавычисления и
> специализация программ".
> Чтобы отменить подписку на эту группу и больше не получать от нее
> сообщения, отправьте письмо на электронный адрес
> metacomputation-ru+unsubscr...@googlegroups.com.
> Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке
> https://groups.google.com/d/msgid/metacomputation-ru/CAMZpZXns%2B_HJnhRpzsE6340p9oFsfcZPob5kmNEjtBMvSCky1Q%40mail.gmail.com
> 
> .
>


SYRCoSE'21: приглашение на 27-28 мая 2021 г.

2021-05-24 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Приглашенные доклады на конференции SYRCoSE'21 обещают быть интересными!
Да и в основной программе можно найти что-нибудь по вкусу:
http://syrcose.ispras.ru/?q=node/12
Чтобы получить Zoom-ссылку, надо зарегистрироваться. См. ниже.

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

-- Forwarded message -
From: Shilov Nikolay 
Date: Mon, 24 May 2021 at 13:14
Subject: Семинар ruSTEP: приглашение на 27-28 мая 2021 г.

Уважаемые подписчики новостей о предстоящих заседаниях *ru-STEP* (=russian
seminar on Software Engineering, Theory and Experimental Programming,
https://persons.iis.nsk.su/ru/ruSTEP)!

Приглашаем вас в предстоящие *четверг и пятницу 27 и 28 мая* 2021 г. на
пленарные доклады XI SYRCoSE (Spring/Summer Young Researchers' Colloquium
on Software Engineering, http://syrcose.ispras.ru/).

SYRCoSE организуется ежегодно начиная с 2007 широко известными
специалистами в программной инженерии и программировании Александром
Константиновичем Петренко (Институт системного программирования РАН,
Москва) и Андреем Николаевичем Тереховым (Санкт-Петербургский
Государственный Университет).

Во время XI SYRCoSE планируется три пленарных доклада:

   1. *Дмитрий Александрович Мордвинов* (СПбГУ, JetBrains Research,
   Россия): *Property Directed Symbolic Execution* в четверг *27 мая 2021
   г. с 10:00 до 11:00* (московского времени)
  - Symbolic execution is a popular technique for systematic
  exploration of program paths, with a wide range of applications,
including
  unit test generation, security vulnerability detection, and program
  verification. In this talk, we'll briefly discuss the standard approaches
  in symbolic execution: state forking, path exploration
strategies, function
  summarization and lazy instantiation. In the second part, we'll
talk about
  the problem of directed symbolic execution: given a program,
target program
  instruction and first-order formula, find program path reaching
the target
  instruction, ending up in a state which satisfies the formula,
or prove its
  absence. I'll present, step-by-step, some approaches we've
developed during
  our current research project. In particular, we'll talk about the
  bidirectional symbolic execution, the efficient combination of
forward and
  backward symbolic exploration. I'll present our implementation of this
  approach in our extension of klee symbolic virtual machine.
Finally, we'll
  discuss the adaptation of recent breakthrough in hardware
verification, the
  property-directed reachability approach, in the bidirectional symbolic
  execution engine.

   2. *Антон Викторович Подкопаев* (Высшая Школа Экономики, JetBrains
   Research, Россия): *Programming Language Memory Models: Problems,
   Solutions, and Directions* в пятницу *28 мая с 9:30 до 10:30*
   (московского времени)
  - Due to compiler and hardware optimizations, modern programming
  languages (PLs) do not provide sequential consistent memory
model SC, which
  guarantees that all concurrent behaviors of a program could be
explained as
  a sequential execution of some interleaving of program's
threads. Instead,
  they have weak memory models which allow more behaviors. Such
memory models
  have to balance between performance and guarantees provided to software
  developers, or, as one may say, the balance is actually between
performance
  and sanity. That is, performance forces a memory model to allow more
  optimizations and, therefore, more program behaviors, whereas
sanity forces
  a memory model to provide guarantees like data-race-freedom (DRF) that a
  program without races has only sequentially consistent executions which
  restricts the set of allowed executions. In this talk, we introduce weak
  memory concurrency, consider requirements imposed on PL memory
models, and
  examine ones used by industry C11 and Java and their drawbacks. Then, we
  explore new memory models RC11, MRD, Promising 1.0/2.0,
Weakestmo proposed
  as a solution for the drawbacks: what these models provide, which
  compromises they take, how expensive performance-wise, if at all, these
  compromises are, and how hard is to adapt the models for mainstream
  languages. We conclude with a discussion on how to choose a memory model
  for your language or VM depending on your desiderata.

   3. *Holger Schlingloff* (Fraunhofer FOKUS, Германия): *Formal Methods
   for Reliable Autonomous Systems* в пятницу *28 мая с 9:30 до 10:30*
   (московского времени)
  - A computational system is called autonomous if it is able to make
  its own decisions, or take its own actions, without human supervision or
  control. The capability and spread of such systems have reached the point
  where they are beginning to touch much of everyday life.
However, the more
  such systems take over safety-critical tasks, such as driving a car or
  flying a plane, the more important it bec

Re: В защиту ссылок в Рефале – Was: Рефал-семинар 17 мая 2021 в 10:30 в Zoom'e

2021-05-18 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Александр, спасибо за лестный отзыв.
Я рад, что мои писательские труды не были даром. ;-)
Андрей

On Tue, 18 May 2021 at 23:23, Александр Гусев gusev_aleksandr_AT_mail.ru <
refal@botik.ru> wrote:

> Спасибо, Андрей!
> Всё замечательно выражено. Действительно, если даны правильные
> определения, дискутировать становится подчас не о чем.
> Я, конечно, подразумевал именно адресные ссылки, которые наблюдал в языках
> высокого уровня и остался ими недоволен. А вот математически описанные Вами
> ссылки - это отлично, проходит!
>
>
>
> Отправлено из мобильной Почты Mail.ru
>
>
> вторник, 18 мая 2021 г., 23:01 +0300 от refal :
>
> После семинара между двумя Александрами (Гусевым и Коноваловым) возникла
> переписка с ограничеснной рассылкой только тем, кто был на семинаре. Я
> захотел встрять и посылаю письмо в refal@botik c надеждой, что это
> обсуждение будет интересно всем. Также я указал в BCC тех, кто был на
> семинаре, но на нашу рассылку не подписан, и еще некоторых коллег.
>
> Оба Александра выразили свою нелюбовь к понятию ссылки как к кандидату к
> включению в область данных Рефала. А я выступлю в защиту этого понятия, в
> том числе с математической точки зрения.
>
> Подозреваю, нарушения эквивалентности при наивных преобразованиях в Рефале
> с лямбда-выражениями, о которых на семинаре рассказывал Александр,
> произошло именно потому, что семантика равенства по ссылке, "ссылочного
> равенства", была не до конца осознана. Она действительно нетривиальна.
> Эквивалентные преобразования, по определению, должны сохранять семантику. А
> для этого семантика должна быть понята и сформулирована.
>
>
> *From: Александр Гусев >
> Sent: Monday, May 17, 2021 11:17 PM*
>
> Лично я - противник использования ссылок в Рефале. Оставьте их языкам
> близким к машинному уровню. Здесь же «ссылка» должна быть просто отсылкой к
> функции или объекту, но не адресом. Даже если в низкоуровневой основе это и
> адрес. Это как использование goto в императивных языках понижает качество
> кода. Goto - это для низкоуровневого кода, ассемблера и естественно
> присутствует в любой программе, но на машинном уровне.
>
> *On Tue, 18 May 2021 at 14:53, Александр Коновалов
> > wrote:*
>
> В общем-то я тоже. Поэтому в компиляторе до сих пор нет ссылочных типов
> данных вроде динамических ящиков. Единственные ссылочные данные, которые
> есть — это замыкания и они иммутабельны. В Рефале-2, Рефале Плюс
> и Рефале-6 мутабельные ссылочные данные есть.
>
> Давайте сразу договоримся, что ни о каких адресах речи не идет. Рефал –
> язык высокого уровня, и его (достаточно простая) семантика должна быть
> сформулирована в терминах абстрактного вычислителя. Ссылки – это понятие
> высокого уровня.
>
> Ссылки вызывают у нас протест, на мой взгляд, только потому, что они
> выходят за теоретико-множественный мир значений, привычный из обычной
> научной деятельности, выученной из школы и университетского мат-анализа.
> Пойди наука, математика и логика по-другому (скажем, в другой, неземной
> цивилизации), мы (инопланетяне) считали бы привычные землянам значения
> некоей ограниченной формой данных и информации. Ведь в жизни мы без труда
> наивно используем понятие "тот же самый". Посмотрим, например, на такой
> диалог:
>
>- Мама: На столе лежит *то же самое *яблоко, что я оставила тебе на
>ужин? Ты не съел?
>- Вовочка: Я его съел. А на стол положил *такое же* из сумки, чтобы ты
>утром поела.
>
> На Рефале и других функциональных языках мы можем говорить только про
> "такое же" яблоко. Поди отличи вчерашнее и сегодняшнее яблоки по их
> фотоснимкам на Рефале! Не сможете. А как видите, наш наивный мозг без труда
> использует понятие "то же самый", который формализуется уникальной ссылкой
> на вчерашний объект-яблоко, а сегодняшний объект-яблоко будет
> идентифицироваться другой, новой ссылкой. Это значит, что цивилизация, не
> испорченная математикой XIX (Фреге, Кантор) и XX (Гильберт, Бурбаки) веков,
> в принципе, могла бы сразу породить языки программирования с объектами и
> ссылками на них, а не идти долгим путем от Фортрана и Алгола-60 через Лисп
> и Рефал к Симуле-67 и затем к осознанию фундаментальности
> объектно-ориентированного программирования.
>
> Занятно, что в английском языке нет слов для такого четкого различения
> этих понятий, как в русском. Слово "the same" означает и "такой же", и "тот
> же самый". Интересно, труднее ли носителям английского языка понимать эту
> разницу, чем русским?
>
> В "Феномене науки" Турчин пишет, что "предметы", выделяемые "указателем
> внимания", и предикаты, признаки, значения – это разные сущности. У него
> это погружено в более широкое обсуждение и разбросано в нескольких местах.
> Я сейчас нашел их гуглением по слову "кинолента", поскольку помнил, что он
> использует эту метафору. Почитайте вот эти разделы и обратите внимание на
> приведенную во втором пункте цитату:
>
>- *6.11. Физический предмет и логический объект*
>http://www.refal.net/turchin/phenomenon/chapter06.htm#06.11
>- *7.5. Фено

В защиту ссылок в Рефале – Was: Рефал-семинар 17 мая 2021 в 10:30 в Zoom'e

2021-05-18 Пенетрантность Andrei Klimov andrei_AT_klimov . net
После семинара между двумя Александрами (Гусевым и Коноваловым) возникла
переписка с ограничеснной рассылкой только тем, кто был на семинаре. Я
захотел встрять и посылаю письмо в refal@botik c надеждой, что это
обсуждение будет интересно всем. Также я указал в BCC тех, кто был на
семинаре, но на нашу рассылку не подписан, и еще некоторых коллег.

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

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


*From: Александр Гусев >
Sent: Monday, May 17, 2021 11:17 PM*

> Лично я - противник использования ссылок в Рефале. Оставьте их языкам
> близким к машинному уровню. Здесь же «ссылка» должна быть просто отсылкой к
> функции или объекту, но не адресом. Даже если в низкоуровневой основе это и
> адрес. Это как использование goto в императивных языках понижает качество
> кода. Goto - это для низкоуровневого кода, ассемблера и естественно
> присутствует в любой программе, но на машинном уровне.
>
*On Tue, 18 May 2021 at 14:53, Александр Коновалов > wrote:*

> В общем-то я тоже. Поэтому в компиляторе до сих пор нет ссылочных типов
> данных вроде динамических ящиков. Единственные ссылочные данные, которые
> есть — это замыкания и они иммутабельны. В Рефале-2, Рефале Плюс
> и Рефале-6 мутабельные ссылочные данные есть.
>
Давайте сразу договоримся, что ни о каких адресах речи не идет. Рефал –
язык высокого уровня, и его (достаточно простая) семантика должна быть
сформулирована в терминах абстрактного вычислителя. Ссылки – это понятие
высокого уровня.

Ссылки вызывают у нас протест, на мой взгляд, только потому, что они
выходят за теоретико-множественный мир значений, привычный из обычной
научной деятельности, выученной из школы и университетского мат-анализа.
Пойди наука, математика и логика по-другому (скажем, в другой, неземной
цивилизации), мы (инопланетяне) считали бы привычные землянам значения
некоей ограниченной формой данных и информации. Ведь в жизни мы без труда
наивно используем понятие "тот же самый". Посмотрим, например, на такой
диалог:

   - Мама: На столе лежит *то же самое *яблоко, что я оставила тебе на
   ужин? Ты не съел?
   - Вовочка: Я его съел. А на стол положил *такое же* из сумки, чтобы ты
   утром поела.

На Рефале и других функциональных языках мы можем говорить только про
"такое же" яблоко. Поди отличи вчерашнее и сегодняшнее яблоки по их
фотоснимкам на Рефале! Не сможете. А как видите, наш наивный мозг без труда
использует понятие "то же самый", который формализуется уникальной ссылкой
на вчерашний объект-яблоко, а сегодняшний объект-яблоко будет
идентифицироваться другой, новой ссылкой. Это значит, что цивилизация, не
испорченная математикой XIX (Фреге, Кантор) и XX (Гильберт, Бурбаки) веков,
в принципе, могла бы сразу породить языки программирования с объектами и
ссылками на них, а не идти долгим путем от Фортрана и Алгола-60 через Лисп
и Рефал к Симуле-67 и затем к осознанию фундаментальности
объектно-ориентированного программирования.

Занятно, что в английском языке нет слов для такого четкого различения этих
понятий, как в русском. Слово "the same" означает и "такой же", и "тот же
самый". Интересно, труднее ли носителям английского языка понимать эту
разницу, чем русским?

В "Феномене науки" Турчин пишет, что "предметы", выделяемые "указателем
внимания", и предикаты, признаки, значения – это разные сущности. У него
это погружено в более широкое обсуждение и разбросано в нескольких местах.
Я сейчас нашел их гуглением по слову "кинолента", поскольку помнил, что он
использует эту метафору. Почитайте вот эти разделы и обратите внимание на
приведенную во втором пункте цитату:

   - *6.11. Физический предмет и логический объект*
   http://www.refal.net/turchin/phenomenon/chapter06.htm#06.11
   - *7.5. Феноменологическое определение семантики*
   http://www.refal.net/turchin/phenomenon/chapter07.htm#07.05
   «Теперь, когда мы ввели понятие указателя внимания, мы можем *определить
   предмет как киноленту ситуаций с одной непрерывной линией указателя
   внимания*.»
   - *10.10. Платонизм в ретроспективе*
   http://www.refal.net/turchin/phenomenon/chapter10.htm#10.10

Турчин вводит понятие предмета в мире со временем. И в истории
программирования понятие объекта появилось как обобщение изменяемой
сущности в императивных языках. Но оказывается, все-таки есть возможность в
логике и в языках программирования ввести понятие ссылки раньше понятия
времени, то есть еще сохраняя чистую функциональность. А раз *можно*,
то и *нужно
*так поступить, чтобы построи

Рефал-семинар 17 мая 2021 в 10:30 в Zoom'e

2021-05-16 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый вечер!

В *понедельник 17 мая 2020 в 10:30 часов* соберемся на онлайн-семинар по
Рефалу:

   -

   *Александр Коновалов* (МГТУ имени Н.Э. Баумана)
   *Проблемы ссылочной эквивалентности замыканий при эквивалентных
   преобразованиях программ в Рефале-5λ*

Zoom-сеанс:

https://us02web.zoom.us/j/86888134690?pwd=ZTlnUWQvSUVPN3RVUk1UdU8rZjB6Zz09
Meeting ID: 868 8813 4690
Passcode: Yaq97A

Аннотация:

Диалект Рефал-5λ является расширением Рефала-5 безымянными функциями.
Внутри безымянных функций можно ссылаться на переменные, связанные вне её.
Для безымянной функции во время выполнения программы создается объект
замыкания, содержащий указатель на код данной функции и значения
захваченных переменных. Эти объекты с точки зрения языка являются символами
(сопоставляются с s-переменными) и сравниваются на равенство по ссылке.

Пример программы с замыканиями:

Map {
  s.Func t.Next e.Rest =  ;
  s.Func /* пусто */  = /* пусто */;
}

$ENTRY CartProd {
  (e.Xs) (e.Ys)
=  } e.Xs>
}
Переменные, захваченные замыканиями, подчеркнуты.

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

$ENTRY CartProd {
  (e.Xs) (e.Ys) = ;
}

Map@1 {
 (e.Ys) t.Next e.Rest = <{ t.X =  } t.Next> ;
  (e.Ys) /* пусто */ = /* пусто */;
}

Map@2 {
  t.X t.Next e.Rest = <{ t.Y = (t.X t.Y) } t.Next> ;
  t.X /* пусто */ = /* пусто */;
}
Оптимизация прогонки встраивает функции в точки их вызова. Это
преобразование программ было описано Турчиным (для подмножества Рефала) в
1972 (тезисы конференции Киев-Алушта) и в 1974 (сборник ЦНИПИАС) годах. В
рассмотренном примере оптимизация прогонки встроит вызовы вложенных функций:

$ENTRY CartProd {
  (e.Xs) (e.Ys) = ;
}

Map@1 {
 (e.Ys) t.Next e.Rest =  ;
  (e.Ys) /* пусто */ = /* пусто */;
}

Map@2 {
  t.X t.Next e.Rest = (t.X t.Next) ;
  t.X /* пусто */ = /* пусто */;
}
В текущей реализации эти две оптимизации хорошо работают только с
данными-значениями — преобразования программы остаются эквивалентными.
Замыкания являются ссылочными данными и можно написать пример программы,
где эквивалентность преобразований нарушается.

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

До Zoom-встречи!

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

>


Re: День памяти Валентина Федоровича Турчина (14.2.1931–7.4.2010) – 7.4.2021

2021-04-08 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Виктор, спасибо за "провокационный" вопрос!

Как массовый язык Рефал, конечно, умер. Такого уже нет, как в году 1987 и
88, когда на Рефал-конференцию в ИПУ съехалось ~180 человек. А сколько еще
было, кто не пришел?! Но как язык отдельных энтузиастов – жив, и, более
того, появляется молодежь, которая использует Рефал как полигон для своих
идей, изготавливает новые реализации и имеет собственное мнение по поводу
его развития. В рассылке refal@botik.ru время от времени возникают весьма
горячие дискуссии. Можешь глянуть хотя бы по сабжам, она архивируется вот в
этой гугл-группе:
https://groups.google.com/g/refal

Всего наилучшего,
Андрей


On Thu, 8 Apr 2021 at 17:14,  wrote:

> Андрей! Спасибо, что напомнил. Интересно жив Рефал?
>


День памяти Валентина Федоровича Турчина (14.2.1931–7.4.2010) – 7.4.2021

2021-04-07 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Дорогие друзья!

Сегодня мы поминаем Валентина Федоровича.

Держа в голове его образ, думаем о том, как много он значил и значит для
нас и как удивительно много он сделал для человечества – извините за
высокопарность, но, как я его воспринимал, именно так он решал вопрос о
смысле жизни для себя: что надо сделать для эволюции в самом широком
смысле и для позитивного развития каждого человека и человеческих обществ,
чтобы они не попадали в "эволюционные ямы", коих примеров предостаточно.

Валентин Федорович очень многое сказал об этом в своих текстах и беседах с
ним. Услышали ли мы, услышат ли его те, кто придет после, – зависит от нас.

Светлая память!

Всего наилучшего,
Андрей Климов

PS. Пользуюсь оказией, поделюсь, что у нас еще есть в наличии бумажные
экземпляры "Феномена науки" 2003 года издания. С удовольствием передадим
тем, у кого еще нет этой книги.

PS. Это письмо послано в Гугл-группу Metacomputation-Ru и в рассылку
refal@botik.ru, а в "скрытую копию" поставлены адреса коллег и друзей, тех
кто помнит В.Ф. Турчина или слышал о нем.

>


О разделении логики и дизайна

2021-03-28 Пенетрантность Andrei Klimov andrei_AT_klimov . net
[Сменил сабж, так как "Остапа понесло".]

On Sun, Mar 28, 2021 at 8:31 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Добрый вечер, Андрей!
>
>
>
> В Рефале-5 запятая для откатов прозрачна. Не прозрачны для откатов только
> фигурные скобки — блоки после двоеточия и сами вызовы функций. Поэтому
> результатное выражение после запятой неуспеха породить не может
> (по определению), а образец после двоеточия — запросто.
>
>
>
> Синтаксис «, выражение : образец» в Рефале-5 есть и он называется 
> «where-конструкция».
> Синтаксис «, выражение : {…}» называется with-конструкцией. Они
> упоминались не только в учебнике, но и в главах обнинской школы
> метавычислений — там вместо запятой используются ключевые слова *where* и
> *with* соответственно.
>

Спасибо! Буду иметь в виду. Значит, в нашем разговоре Турчин имел в виду
первое, а я не до конца ухватил и перенес на второе тоже. Значит, логика
такая:

   - «{...}» – это подставленное тело функции,
   - «, выражение :» – это синтаксис для ее вызова,
   - «, выражение : образец ...» – это отдельная конструкция со своей
   семантикой, отличающейся от  «, выражение : { образец ...}».

В свое «оправдение» могу только сказать, что не люблю такой
неортогональный синтаксис и такую тонкую семантику: откаты вроде бы и есть,
а вроде бы их и нет. Скобки вроде бы лишь «объединитель» (как в школьной
математике), а вроде бы и нет. Поэтому и подумал, что Турчин был просто
против откатов.

Александр, вы пишете, что понимаете устройство Рефала Плюс как языка, на
котором выразима суперкомпиляция. Формально говоря, да, но как с общей
целью я с этим не согласен. Только ради этого огород не стоило бы городить,
создавая новый язык (хотя это интересно, и возможно, локальным стимулом для
Сергея Романенко было просто естественное желание посмотреть, что получится
). Для меня важен общий принцип «языкостроительства»:

   - Формальный язык (будь то язык математики, логики, или язык
   программирования) должен быть максимально «ортогонализован»: базовые
   семантические единицы явно выражены, а более высокие конструкции собираться
   из них. Это обычно называется композиционностью. Такое требование особенно
   применимо к *мета*языку, предназначенному для описания, конструирования
   других языков. (Если сам не композиционен, что можешь предложить другим?)

Но вы (как многие) спросите: А как же быть с удобствами программирования?
Мы же знаем по опыту разных языков, что, когда «всё торчит наружу», язык
получается громоздким, так ведь? И да, и нет. Это уже другой вопрос.
Вспоминаю, как когда-то в 80-е в перерыве рефал-семинара в ИПУ, стояли мы,
курили (была такая вредная привычка и у меня), и тут Николай Кондратьев
высказал следующий тезис (возможно прочитанный в каком-то труде, а может
сам красиво сформулировал – помнит ли он сейчас?):

   - Надо тщательно *различать логику и дизайн языка* программирования.
   Плохо, когда они путаются и решения принимаются то в пользу одного, то
   другого (типичная ситуация в комитетах по стандартизации языков).
   - *Логика* – это устройство языка, его колесики, его базовые понятия,
   правила конструирования, композиция.
   - *Дизайн *– это как язык выражен во внешнем синтаксисе (и вообще, может
   и не в одномерном тексте, а, скажем, в projectional
   editor
   'е).
   - Цель разработки логики языка – чтобы она была композиционна и полна
   (по отношению к как можно большему числу разных деятельностей над языком).
   - Цель дизайна – чтобы было удобно человеку: в данных исторических
   условиях, с данными инструментами создания и чтения программ, которые могут
   меняться, да и, вообще говоря, разным человекам нужен разный синтаксис
   (плохо, что обычно создаются разные языки для разных профессий типа COBOL
   для «бухгалтеров», а PL/I для «профессиональных програмистов», а не один
   язык с разными «лицами»).
   - Подход к разработке языка должен такой: сначала разрабатываем логику,
   а потом, не нарушая ее, отрабатываем дизайн, а лучше – много дизайнов.
   Здесь слова «сначало» и «потом» относятся не ко времени, а к приоритетам.
   Разработка чего угодно всегда циклична: делаем версию, недовольны,
   возвращаемся к началу. Если язык оказался для чего-то плох, подумайте, к
   чему относится вопрос: только ли к дизайну? или к логике, а потом и к
   переработке дизайна под улучшенную логику?

С этой колокольни я и смотрю на все давние и постоянно возрождающиеся споры
о том, кому какой Рефал нравится. То есть равнодушно с точки зрения дизайна
(это вкусовщина). И с интересом с точки зрения логики. Идеальный метаязык с
его идеальной реализацией должен иметь совершенную логику и возможность
задавать различные дизайны: разные синтаксисы, выделять подмножества для
различных целей и аудиторий, каждое подмножество может иметь свой вид, и
т.п. Всё это многообразие должно описываться на самом Рефале.
(Самоприменение, метасистемный переход

Re: Регулярные выражения слева

2021-03-28 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Sat, Mar 27, 2021 at 11:47 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> [...]
>
> Вариативность (но с ущербом для эффективности) можно реализовать и в
> Рефале-5. Код, эквивалентный коду Рефала-6, будет выглядеть так:
>
> F {
>   e.Name 〈что-то ещё〉,  : T = … ;
>   … = …;
> }
>
> F-Name {
> 'Маша' = T;
> 'Саша' = T;
> e.Other = F;
> }
>

А разве такое в Рефале-5 можно? С 90-х годов я рефал-плюсовый программист,
мог и забыть. А сейчас лень заглядывать в руководство, да и, думаю, будет
полезно обсудить здесь логики разных Рефалов, из которых вытекают различные
решения по синтаксису. Помнится, подобные вопросы мы специально обсуждали в
те годы, и у меня отложилось, что:

1. Запятая в Рефал-5 "непрозрачна для откатов", то есть "неотож" после
запятой не вызывает возврат к следующему варианту в образце левее или
следующему предложению. Помнится, "длинные" откаты вызывали отторжение у
Турчина и у других апологетов Рефала-5.

2. Синтаксиса вида "выражение : образец" в Рефале-5 нет. Помнится, при
обсуждении расширений Рефала Плюс по сравнению с Рефалом-5, Турчин говорил,
что в Рефале-5 двоеточие означает вызов подставленного тела вспомогательной
функции и только это. Поэтому, даже если в ней только одно предложение, всё
равно надо ставить фигурные скобки, чтобы выглядело одинаково с
определением функции. То есть данный код синтаксически правильно надо
писать так (а семантика будет другая, чем хотелось):

F {
  e.Name 〈что-то ещё〉,  : { T = … };
  … = …;
}

И уж нечего и говорить, что фигурные скобки в Рефале-5 безоткатные.

Правильно я помню Рефал-5 и его логику?

Андрей

>


Re: Refal6-basic

2021-03-28 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Sun, Mar 28, 2021 at 11:43 AM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Доброе утро, Андрей!
>
> А Рутен подписан на эту рассылку? Просто у меня есть свои идеи на этот
> счёт, интересно было бы с ним обсудить.
>

Александр,

Да, Рутен подписал. Надеюсь, заглядывает в нашу переписку. ;-)

Отмечу только, что за последние два дня он не получил 3 письма – мне пришли
отлупы от его сервера (я получаю их как администратор): 1 от Кондратьева, 2
от вас. Якобы письма содержали вирус. Но от других серверов не было
претензий, и приложенных файлов не было, чтобы на них ругаться. Это были
мелкие вопросы по установке Refal-6b. Может, строка с Gnuwin32 пугала?
Похожих отлупов давно не было (что я и не помню).

Всего наилучшего,
Андрей

Идея в том, каким должно быть подмножество КС-грамматик, на котором
> описываются типы в программах на Рефале. Это подмножество замкнуто
> относительно операции над множествами и конкатенации и может сопоставляться
> с образцами Рефала. Реализацию (хотя бы частично) дал на диплом студенту,
> посмотрим, что получится.
>
> А Рутен этим занимался 30 лет назад, и наверняка продвинулся дальше, чем
> я. Проблема изобретения велосипедов не только в том, что повторно тратишь
> время на то, что уже есть, а ещё и в том, что велосипеды получаются с
> квадратными колёсами.
>
>
> С уважением,
> Александр Коновалов
>
>
>
> *From:* Andrei Klimov andrei_AT_klimov.net 
> *Sent:* Saturday, March 27, 2021 8:59 PM
> *To:* refal@botik.ru
> *Subject:* Re: Refal6-basic
>
>
>> *Von:* Александр Коновалов 
>> *Gesendet:* Freitag, 26. März 2021 22:41
>> *An:* nikolai.kondrat...@gmail.com
>> *Betreff:* Re: Refal6-basic
>>
>> [...]
>>
>> Андрей Валентинович рассказывал, что в ИПМ кто-то писал диссертацию про
>> проверку типов Рефала с использованием регулярных выражений, а потом уехал
>> в Германию. Это не Вы были?
>>
>
> Это был Рутен Гурин. Сейчас он в Италии. В 1980е годы он был аспирант ВМиК
> и у него была уже написана диссертация  на эту тему, когда начались бурные
> процессы в обществе и наших душах, и как-то получилось, что работа не была
> доведена до защиты. Возможная причина помимо внешних обстоятельств, как я
> чувствую теперь (а Рутен может не согласиться), – в том, что это была
> весьма пионерская работа. Мода на soft typing и gradual typing появилась
> намного позже. А пионерам трудно психологически: нет реакции общества, не
> понятна актуальность, может казаться, что это "ерунда", коль этим никто не
> занимается, а может оценить лишь узкий круг друзей. Когда делаешь улучшение
> в решении уже хорошо поставленной задачи, намного легче и самому двигаться
> вперед, и диссовету проголосовать за. А тогда многое в CS только
> начиналось. Время от времени в памяти всплывают примеры, когда мы что-то
> изобретали в мире ФП на Рефале, обсуждали в своем узком кругу, радовались
> как красивому трюку, а потом, лет через 10-20, читали в зарубежных статьях
> как о ключевых идеях. Подозреваю (но пусть Рутен меня опровергнет), что с
> этой работой получилось что-то то похожее: изобрел, отпрототипировал,
> написал кирпич, но сам не оценил настолько, чтобы хватило энергии
> заниматься оставшимися бюрократическими делами по проводке через дисс-совет
> на фоне соблазнов другой работы с хорошими условиями для себя и семьи. А
> времена были такие, что будущее было в тумане...
>
> Такая жизнь...
>
> Андрей Климов
>


Re: Refal6-basic

2021-03-27 Пенетрантность Andrei Klimov andrei_AT_klimov . net
>
> *Von:* Александр Коновалов 
> *Gesendet:* Freitag, 26. März 2021 22:41
> *An:* nikolai.kondrat...@gmail.com
> *Betreff:* Re: Refal6-basic
>
> [...]
>
> Андрей Валентинович рассказывал, что в ИПМ кто-то писал диссертацию про
> проверку типов Рефала с использованием регулярных выражений, а потом уехал
> в Германию. Это не Вы были?
>

Это был Рутен Гурин. Сейчас он в Италии. В 1980е годы он был аспирант
ВМиК и у него была уже написана диссертация  на эту тему, когда начались
бурные процессы в обществе и наших душах, и как-то получилось, что работа
не была доведена до защиты. Возможная причина помимо внешних обстоятельств,
как я чувствую теперь (а Рутен может не согласиться), – в том, что это была
весьма пионерская работа. Мода на soft typing и gradual typing появилась
намного позже. А пионерам трудно психологически: нет реакции общества, не
понятна актуальность, может казаться, что это "ерунда", коль этим никто не
занимается, а может оценить лишь узкий круг друзей. Когда делаешь улучшение
в решении уже хорошо поставленной задачи, намного легче и самому двигаться
вперед, и диссовету проголосовать за. А тогда многое в CS только
начиналось. Время от времени в памяти всплывают примеры, когда мы что-то
изобретали в мире ФП на Рефале, обсуждали в своем узком кругу, радовались
как красивому трюку, а потом, лет через 10-20, читали в зарубежных статьях
как о ключевых идеях. Подозреваю (но пусть Рутен меня опровергнет), что с
этой работой получилось что-то то похожее: изобрел, отпрототипировал,
написал кирпич, но сам не оценил настолько, чтобы хватило энергии
заниматься оставшимися бюрократическими делами по проводке через дисс-совет
на фоне соблазнов другой работы с хорошими условиями для себя и семьи. А
времена были такие, что будущее было в тумане...

Такая жизнь...

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


Re: Изобретение велосипеда

2021-03-12 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Fri, Mar 12, 2021 at 2:12 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Добрый день, Андрей Валентинович!
>
> Может быть, Турчин, Бэкус и МакКарти втроём на какой-нибудь конференции
> встретились и идея синтаксиса родилась в ходе совместной беседы. В общем,
> теперь я буду знать две версии происхождения угловых скобок.
>

Да, пусть останется в истории (в архиве этой рассылки), что мы не смогли
однозначно восстановить по памяти автора подсказки Турчину про угловые
скобки. Такая неопределенность лучше, чем неправильно зафиксированное
историческое событие. ;-)

Вряд ли это было втроем. Наверняка Турчина рассказывал однозначно, но,
пройдя через наши разные уши, перепуталось.

Всего наилучшего,
Андрей


> С уважением,
> Александр Коновалов
>
>
> *From:* Andrei Klimov andrei_AT_klimov.net 
> *Sent:* Friday, March 12, 2021 1:05 PM
> *To:* refal@botik.ru
> *Subject:* Re: Изобретение велосипеда
>
> On Fri, Mar 12, 2021 at 12:25 PM Sergei M. Abramov abram_AT_botik.ru <
> refal@botik.ru> wrote:
>
>> > Знаки < и > Турчин стал использовать уже в Америке, там их ему на
>> > конференции предложил МакКарти.
>>
>> Что-то мне запомнилось, что это был Бэкус.  И понятно почему именно
>> Бэкус.  Есть связь между граматиками и Рефалом
>>
>
> Да, мне тоже запомнилось, что Турчин говорил про Бэкуса. И помнится, что
> зафиксировал в памяти по такому же мнемоническому правилу, как сказал
> Сергей Михайлович. Хотя я сам слышал из уст ВФ, но память может и изменить,
> и, может, то, что вам, Александр, сказал Андрей Петрович и правда. Про то,
> что это было на какой-то конференции, в разговоре со мной не звучало, и я
> тогда подумал, что это было в частном обсуждении. Но вполне возможно, что
> это было на какой-то конференции, воркшопе или семинаре.
>
> С МакКарти у Турчина тоже были контакты. Помню его рассказ о другой
> истории. МакКарти как-то рекомендовал Турчина в какой-то авторитетный
> комитет и очень удивился, когда ВФ отказался (не хотелось отвлекаться от
> работы). ВФ привел мне этот сюжет из его жизни в США как пример того, как
> он не понимал, что принимать такие приглашения нужно для его "адаптации",
> вхождения в американскую научную среду. Тамошние профессора заседают в
> таких органах, чтобы "тусоваться" и наводить связи (это мой пересказ по
> смыслу, а не цитата Турчина); американцы такой возможности никогда не
> упустят. МакКарти считал, что оказывает Турчину большую услугу,
> "проталкивая" его в этот орган, и специально звонил Турчину, уточняя,
> правда ли, что он отказывается и понял ли, о чем речь.
>
> Всего наилучшего,
> Андрей Климов
>
>
>> С уважением,
>>
>> Абрамов С.М.
>> ab...@botik.ru
>> мобильный: +7(903)2928308
>>
>>


Re: Изобретение велосипеда

2021-03-12 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Fri, Mar 12, 2021 at 12:25 PM Sergei M. Abramov abram_AT_botik.ru <
refal@botik.ru> wrote:

> > Знаки < и > Турчин стал использовать уже в Америке, там их ему на
> > конференции предложил МакКарти.
>
> Что-то мне запомнилось, что это был Бэкус.  И понятно почему именно
> Бэкус.  Есть связь между граматиками и Рефалом
>

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

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

Всего наилучшего,
Андрей Климов

С уважением,
>
> Абрамов С.М.
> ab...@botik.ru
> мобильный: +7(903)2928308
>
>


Re: 90-летие Валентина Федоровича Турчина (14.2.1931–7.4.2010)

2021-02-16 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Николай, добрый день!

Спасибо! Хорошая идея. Я бы с удовольствием подготовил презентацию о
научном наследии Турчина. Благо, я уже делал подобные доклады и некоторый
материал уже накоплен.

А получится ли секция по метавычислениям – зависит от того, подадут ли
достаточно докладов, в частности, участники этой гугл-группы. Но можно
попихать народ: вдруг получится?

Традиционный июньский Рефал-семинар в Бауманке имеет специфически
студенческий стиль и формат. Поэтому я не уверен, что какое-либо
присоединение его к "высоколобому" научному workshop'у оправданно. Боюсь,
такое действие может испортить сложившийся стиль каждого из мероприятий. Но
может, я неправ и не настаиваю: просто у меня нет идей, как это может
выглядеть.

Кстати, а указанные вами онлайн-семинары памяти Тратенброта и Подловченако
открытые? Если да, нельзя ли дать ссылки на место, где можно
зарегистрироваться и потом послушать?

Всего наилучшего,
Андрей Климов


On Tue, Feb 16, 2021 at 11:23 AM Shilov Nikolay  wrote:

> Андрей Валентинович,
>
> В этом году — много памятных дат. Вот, например, группа учеников (и
> учеников учеников Б.А. Трахтенброта) в предстоящую субботу 20 февраля (в
> День Рождения Бориса Абрамовича) проводи однодневный онлайн семинар,
> посвященный его 100-летию, в следующую субботу 27 февраля Владимир
> Анатольевич Захаров проводит семинар, посвященный 90-летию Риммы Ивановны
> Подловченко, 19 апреля в Новосибирске пройдут две Ершовские лекции,
> посвященные 90-летию Андрея Петровича…
>
> У меня вопрос-предложение: может быть, Вы (как член Программного Комитета
> предстоящей PSSV-2021) организуете специальную сессию на PSSV-2021 по
> метавычислениям, суперкомпиляции и т.д. с одним приглашенным докладом, 2-3
> отобранными докладами (из поданных на PSSV-2021) и мемориальным докладом о
> Валентине Федоровиче? — Такую сессию можно организовать совместно с
> ежегодным Рефал-семинаром (если Александр Коновалов и другие организаторы
> семинара не будут возражать).
>
> PSSV-2021 пока не объявлена, но, по-видимому, она пройдет в Москве (в ИСП,
> ВШЭ или ВМК МГУ) в 10-ых числах июня (между между школой и конференцией
> Logic Perspective http://lp2020.mi-ras.ru/ перенесенной на 2021), но
> предварительно на PSSV02021 предварительно запланирована одна специальная
> сессия, посвященная работам Отдела технологий программирования ИСП РАН
> (приглашенный докладчик — А.К. Петренко).
>
> Николай Вячеславович Шилов
>
>
> Понедельник, 15 февраля 2021, 2:37 +03:00 от Andrei Klimov <
> and...@klimov.net>:
>
>
> Дорогие друзья!
>
> Исполнилось 90 лет со дня рождения Валентина Федоровича Турчина.
>
> Он мог бы дожить до этого возраста с сохранением ясности ума, как бывает у
> творческих людей. Но и за свои годы он сделал так много и с таким
> заглядыванием в будущее, что нам еще осваивать и осваивать его наследие.
> Надо издавать и переиздавать его труды. Это еще за нами, его учениками.
>
> Только представить, что к 40 годам он уже успел покинуть теорфизику,
> защитив докторскую, создать язык Рефал и собрать группу молодых
> рефальщиков, развить новую эволюционную концепцию метасистемного перехода и
> написать о ней книгу "Феномен науки"! Верность представленным в ней
> философским взглядам и своему мировоззрению привела его к общественной и
> правозащитной деятельности.
>
> А дальше было создание и развитие суперкомпиляции, как крупномасштабного
> метасистемного перехода над алгоритмами и программами, причем не только ее
> базового уровня, который к нынешним временам уже "обсосан" в работах
> последователей, а и предложил по крайней мере два круга идей, как совершить
> второй метасистемный переход от вычислений к метавычислениям (для спецов
> отмечу, что имею в виду окрестностный анализ и исчисление грамматик путей).
> Концепция МСП показывает, что метасистемные переходы не являются чудом и "не
> ходят по одному", и совершив один, сразу ищи, как сделать следующий. Вот
> такую установку он нам дал своим примером!
>
> Затем последовала разработка философии развития общества в книге "Инерция
> страха" и в других философских работах по кибернетической эпистемологии и
> онтологии. Он говорил, что новую философию невозможно "внедрить" в умы,
> убедить, не продемонстрировав ее работу на конкретных результатах.
>
> И следующим таким результатом стали новые конструктивные основания
> математики, названные им Cybernetic Foundation of Mathematics. Эта
> революционная работа еще совсем не освоена научным сообществом (в отличие
> от суперкомпиляции). А она должна быть удивительна для того большинства
> математиков, кто из теорем о неразрешимости вывел (на основе работ
> 1950-60-х годов), что конструктивное понятие математических объектов,
> множеств в виде перечисления элементов не покрывают нужды математики. Ан
> нет! Расширив понятие алгоритма, введя в процессы вычислений модель самого
> математика (вслед за прецедентом введением наблюдателя в квантовую физику),
> Турчин проинтерпретировал святая-святых современной математики – аксиомы
> Цермело-Френкеля. С

90-летие Валентина Федоровича Турчина (14.2.1931–7.4.2010)

2021-02-14 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Дорогие друзья!

Исполнилось 90 лет со дня рождения Валентина Федоровича Турчина.

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

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

А дальше было создание и развитие суперкомпиляции, как крупномасштабного
метасистемного перехода над алгоритмами и программами, причем не только ее
базового уровня, который к нынешним временам уже "обсосан" в работах
последователей, а и предложил по крайней мере два круга идей, как совершить
второй метасистемный переход от вычислений к метавычислениям (для спецов
отмечу, что имею в виду окрестностный анализ и исчисление грамматик путей).
Концепция МСП показывает, что метасистемные переходы не являются чудом и "не
ходят по одному", и совершив один, сразу ищи, как сделать следующий. Вот
такую установку он нам дал своим примером!

Затем последовала разработка философии развития общества в книге "Инерция
страха" и в других философских работах по кибернетической эпистемологии и
онтологии. Он говорил, что новую философию невозможно "внедрить" в умы,
убедить, не продемонстрировав ее работу на конкретных результатах.

И следующим таким результатом стали новые конструктивные основания
математики, названные им Cybernetic Foundation of Mathematics. Эта
революционная работа еще совсем не освоена научным сообществом (в отличие
от суперкомпиляции). А она должна быть удивительна для того большинства
математиков, кто из теорем о неразрешимости вывел (на основе работ
1950-60-х годов), что конструктивное понятие математических объектов,
множеств в виде перечисления элементов не покрывают нужды математики. Ан
нет! Расширив понятие алгоритма, введя в процессы вычислений модель самого
математика (вслед за прецедентом введением наблюдателя в квантовую физику),
Турчин проинтерпретировал святая-святых современной математики – аксиомы
Цермело-Френкеля. Самое интересное, что его интерпретация показывает, как,
когда и почему математическое знание становится объективным, однозначно
получаемым разными математиками, а когда и какие математические явления не
являются детерминированными и "объективно интерпретируемыми", как он это
назвал. В результате с математики слетает мистика платонизма с идеально
существующим, статическим миром математических сущностей. Для Турчина
практически любой математический объект – это процесс, движение, как и сама
деятельность математика.

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

Пожелаем себе и всем подниматься хотя бы немного к уровню Валентина
Федоровича Турчина!

Всего наилучшего,

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

PS. Кстати, еще есть в наличии бумажные экземпляры "Феномена науки" 2003
года издания.

PPS. Это письмо послано в Гугл-группу Metacomputation-Ru и в рассылку
refal@botik.ru, где сосредоточены большинство ценителей научного наследия
Турчина по computer science. Кроме того, в "скрытую копию" поставлены
адреса коллег и друзей, которые отсутствуют в этих рассылках, но которым,
надеюсь, интересно наследие В.Ф. Турчина.


Fwd: Ближайший семинар ruSTEP - пятница 5 февраля в 12:00 (мск)

2021-02-04 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Доброе утро!

Через час состоится семинар, о котором речь ниже.

Я не догадался сделать рассылку раньше, но одна из причин такая: у этого
семинара своя система подписки, куда включаются все желающие.
Подписывайтесь! Сюда могут пересылиться не все объявления.

Андрей

-- Forwarded message -
От: Shilov Nikolay 
Date: вт, 2 февр. 2021 г., 9:39
Subject: Ближайший семинар ruSTEP - пятница 5 февраля в 12:00 (мск)
To: 


*В весеннем семестре 2021 г. заседания семинара ru-STEP* (russian seminar
on Software Engineering, Theory and Experimental Programming,
https://persons.iis.nsk.su/ru/ruSTEP) *будут проходить по пятницам* (раз в
две недели) *с 12:00 до 13:00* московского времени (16:00-17:30 в
Новосибирске) в 320 адитории Университета Иннополис и *в Zoom* (
https://us02web.zoom.us/j/89755115776?pwd=VDVwSnhFTENPbTYyOGphK0QwRnFkQT09,
идентификатор
897 5511 5776, пароль 709926).

*Очередное заседание семинара* состоится в пятницу 5 февраля (в
указанных выше время, месте и онлайн-среде).

*Выступает*: Николай Вячеславович Шилов (Университет Иннополис,
https://innopolis.university/professor/nikolay-shilov/).

*Тема выступления*: Устранение рекурсии в задачах на динамическое
программирование.

*Аннотация*: Трансформационный подход к верификации программ был очень
популярной темой исследований в первые десятилетия теории программирования.
Многие выдающиеся пионеры теории программирования внесли свой вклад в
разработку данного направления исследований: Джон Маккарти, Амир Пнуэли,
Дональд Кнут... Много интересных примеров трансформационного подхода было
тщательно изучено, что привело к методам устранения рекурсии, известным как
хвостовая рекурсия и как ко-рекурсия. В данной работе мы подробно исследуем
(мы надеемся) новые примеры паттернов устранимой рекурсии, причем,
устранение рекурсии основано на трансформациях программ и анализе задач,
решаемых этими программами.

*Регламен семинара*:
12:00-12:05 — открытие заседания семинара
12:05-12:12:45 — первая (основная) часть доклада
12:45-12:55 — перерыв
12:55-13:20 — вторая часть доклада (результаты, заключение, ответы на
вопросы)
13:20-13:30 — обсуждение доклада
13:30-13:35 — закрытие заседания семинара

*Ведет заседание* Александр В. Наумчев (Университет Иннополис)


Re: «Problems’ Day» Wed 30.12.2020 9:00 in Zoom - New Year's Eve meeting of the CS&SE Interlaboratory Seminar Novosibirsk + Innopolis + ...

2021-02-04 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Александр, спасибо!

Хорошая идея. Но такой расширенный доклад надо ещё подготовить. Спасибо,
ваше предложение подталкивает меня...

Всего наилучшего,
Андрей Климов

чт, 4 февр. 2021 г., 12:58 'Александр Коновалов' via Метавычисления и
специализация программ :

> Добрый день, Андрей!
>
> Ваш доклад оказался очень интересным, но по времени втиснуть его с трудом
> удалось. Планируете ли Вы когда-нибудь прочитать расширенную версию этого
> доклада, т.е. длиннее 15 минут? Я думаю, он был бы интересен не только мне
> одному.
>
>
>
> С уважением,
> Александр Коновалов
>
>
>
> *From:* Andrei Klimov andrei_AT_klimov.net [mailto:refal@botik.ru]
> *Sent:* Wednesday, December 30, 2020 8:54 AM
> *To:* metacomputation-ru ;
> refal@botik.ru
> *Subject:* Re: «Problems’ Day» Wed 30.12.2020 9:00 in Zoom - New Year's
> Eve meeting of the CS&SE Interlaboratory Seminar Novosibirsk + Innopolis +
> ...
>
>
>
> Доброе утро!
>
>
>
> За 10 мин до доклада pdf-файл презентации был обновлен по тому же адресу:
>
>- https://drive.google.com/file/d/169tJh6oMxIaZPMTpv-wMJuUNVRWbrFUt/
>
> Поправлена мелочь. Но можете взять снова, если вы его уже выгружали.
>
>
>
> Андрей Климов
>
>
>
>
>
> On Wed, Dec 30, 2020 at 12:24 AM Andrei Klimov  wrote:
>
> Добрый вечер всем!
>
>
>
> Я делаю доклад на этом семинаре (информация внизу) с такой темой (приведу
> по-русски и по-английски):
>
>- Андрей Климов, Институт прикладной математики им. М.В. Келдыша РАН,
>Москва
>- *Фундаментальные не(до)решенные проблемы Computer Science & Software
>Engineering (субъективный взгляд)*
>- Проблема осознается лишь после того, как найдены первые решения и...
>понято, что это не есть решения. С этой точки зрения глянем на каждую из
>следующих давно стоящих фундаментальных проблем CS&SE. Отбор проблем
>субъективен, а порядок лишь для удобства презентации:
>
>
>1. детерминированные параллельные вычисления;
>   2. семантика имен, ссылок;
>   3. метавычисления;
>   4. верификация программ;
>   5. математические основания вычислений и языков; 6) слияние
>   функциональных и объектно-ориентированных языков программирования.
>
>
>- Andrei Klimov, Keldysh Institute of Applied Mathematics of Russian
>Academy of Sciences, Moscow
>- *Fundamental Un(der)resolved Problems of CS&SE (a subjective view)*
>- A problem is recognized only after the first solutions have been
>found and... it is understood that these are non-solutions. From this point
>of view, let's take a quick look at each of the following long standing
>fundamental problems of CS&SE. The selection of the problems is subjective,
>and the order is only for the convenience of presentation:
>
>
>1. deterministic parallel computation;
>   2. semantics of names and references;
>   3. metacomputation;
>   4. program verification;
>   5. mathematical foundations of computation and languages;
>   6. merging functional and object-oriented programming languages.
>
> По условиям организаторов презентация должна быть на английском, а
> говорить можно по-русски (что я и сделаю). Презентация лежит здесь:
>
>- https://drive.google.com/file/d/169tJh6oMxIaZPMTpv-wMJuUNVRWbrFUt/
>
> Презентация получилась длинная – 10 емких слайдов. Если по минуте на
> слайд, то теоретически за 10 мин можно успеть. Но боюсь, это вряд ли
> получится, и придется что-то пропускать или обозначать скороговоркой.
>
>
>
> Enjoy!
>
>
>
> Всего наилучшего,
>
> Андрей Климов
>
>
>
>
>
> On Tue, Dec 29, 2020 at 9:51 PM Andrei Klimov  wrote:
>
> Добрый вечер!
>
> Форвардирую письмо организатора семинаров CS&SE Николая Шилова с
> программой мероприятия в среду 30 декабря в 9:00 мск в Zoom'е.
>
>
>
> До виртуальной встречи!
>
>
>
> Андрей Климов
>
>
>
>
>
> -- Forwarded message -
> From: *Nikolay Shilov* 
> Date: Tue, Dec 29, 2020 at 7:14 PM
> Subject: Reminder: «Problems’ Day» - New Year's Eve meeting of the CS&SE
> Interlaboratory Seminar Novosibirsk + Innopolis + ...: Wednesday December
> 30, 2020 at 9:00 am (Moscow time)
> To: shilov...@mail.ru 
>
>
>
> Итак, завтра *в среду 30 декабря* (*с 9:00 до 11:00*) у нас последняя в
> 2020 году встреча межлабораторного семинара по фундаментальным вопросам
> программной инженерии и теории программирования. Это встреча 7 по счету, но
> особенная - это День Проблем.
>
> Объявление о встрече было разослано 25 декабря 2020 (см. в конце письма).
>
>
>
> В результате *откликнулись 6 добровольцев*, пожелавших поделиться
> проблемами в SE/CS/CE/IT/Math/Sci, волновавшие их в 2020 г. (список в
> порядке поступления заявок на выступление):
>
> (1) Дмитрий А. Кондратьев (Институт систем информатики СО РАН, Новосибирск)
>
> (2) Александр В. Наумчев (Университет Иннополис)
>
> (3) Лидия В. Городняя (Институт систем информатики СО РАН, Новосибирск)
>
> (4) Андрей В. Климов (Институт прикладной математики им. М.В. Келдыша РАН,
> Москва)
>
> (5) Аркадий В. Климов (Институт проблем проектирования в микроэл

Re: 17-22 января 2021, онлайн: 48th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2021)

2021-01-17 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Еще раз добрый вечер!

Сегодняшние сессии CPP (International Conference Certified Programs and
Proofs) транслировались в Ютубе и остались там доступными для всех
желающих. Вот две записи в соответствии с программой
https://popl21.sigplan.org/home/CPP-2021?#program:

18:00–19:30 https://www.youtube.com/watch?v=PAxUO84tUE8

   - 18:00 - 19:00: Invited TalkCPP at CPP
   - 19:00 - 19:30: Proof TacticsCPP at CPP

20:00–21:30 https://www.youtube.com/watch?v=U_ZT9hfDAUQ

   - 20:00 - 20:45: Logic, Set Theory, and Category TheoryCPP at CPP
   - 20:45 - 21:30: Formalized MathematicsCPP at CPP

Какие из других конференций/воркшопов транслировались в Ютуб и остались ли
доступными – не знаю. Видел, что не все. Видимо, решения об этом
принимается организаторами конкретного мероприятия. CPP работает в открытую.

Всего наилучшего,
Андрей


On Sun, Jan 17, 2021 at 5:45 PM Andrei Klimov  wrote:

> Добрый вечер всем!
>
> Сегодня *17 января* 2021 в *18:00* (мск) начинает работать * онлайн*
> крупная конференция по нашей тематике:
>
>- *48th ACM SIGPLAN Symposium on Principles of Programming Languages
>(POPL 2021)*
>https://popl21.sigplan.org/
>
> При ней проходят несколько тематических конференций и workshop'ов. Самый
> родственный нам – PEPM .
>
> Чтобы слушать онлайн, надо зарегистрироваться
> , заплатив $10. Однако
> на сайте много материалов, доступных и без регистрации:
>
>- 61 статья по докладам POPL; некоторые из других конференций и
>workshop'ов тоже выставили статьи, а некоторые нет.
>- 5-минутные записи коротких видео-презентаций докладов (video
>pre-publication); а некоторые авторы рядом выставили и длинные презентации
>(причем иногда более длинные, чем окно в программе).
>- у некоторых есть и файлы презентаций.
>
> Программа здесь (обратите внимание, что можно указать свой часовой пояс):
>
>- https://popl21.sigplan.org/program/program-POPL-2021
>
> На сегодня я пометил для себя такие два интересных доклада, но и другие
> тоже повключаю:
>
>- 18:00 - 19:00
>Invited Talk:
> *Teaching Algorithms and Data Structures with a Proof Assistant *Tobias
>Nipkow (Technische Universität München)
>- 20:30 - 20:45
>*Formalizing Category Theory in Agda*
>Jason Z.S. (HuMcGill University), Jacques Carette (McMaster University)
>
> Список сопутствующих конференций и workshop'ов приведен на сайте
>  под пунктом меню Tracks:
>
>- *Co-hosted Conferences*
>   - CPP: International Conference Certified Programs and Proofs
>   - PLMW: Programming Languages Mentoring Workshop
>   - VMCAI: 22nd International Conference on Verification, Model
>   Checking, and Abstract Interpretation
>- *Workshops*
>   - CoqPL: The Seventh International Workshop on Coq for Programming
>   Languages
>   - LAFI: Workshop on Languages for Inference
>   - PEPM: Workshop on Partial Evaluation and Program Manipulation
>   - PriSC: 5th Workshop on Principles of Secure Compilation
>- *Co-hosted Symposiums*
>   - PADL: 23rd International Symposium on Practical Aspects of
>   Declarative Languages
>
> Enjoy!
>
> Всего наилучшего,
>
> Андрей Климов
>


17-22 января 2021, онлайн: 48th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2021)

2021-01-17 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый вечер всем!

Сегодня *17 января* 2021 в *18:00* (мск) начинает работать * онлайн*
крупная конференция по нашей тематике:

   - *48th ACM SIGPLAN Symposium on Principles of Programming Languages
   (POPL 2021)*
   https://popl21.sigplan.org/

При ней проходят несколько тематических конференций и workshop'ов. Самый
родственный нам – PEPM .

Чтобы слушать онлайн, надо зарегистрироваться
, заплатив $10. Однако
на сайте много материалов, доступных и без регистрации:

   - 61 статья по докладам POPL; некоторые из других конференций и workshop'ов
   тоже выставили статьи, а некоторые нет.
   - 5-минутные записи коротких видео-презентаций докладов (video
   pre-publication); а некоторые авторы рядом выставили и длинные презентации
   (причем иногда более длинные, чем окно в программе).
   - у некоторых есть и файлы презентаций.

Программа здесь (обратите внимание, что можно указать свой часовой пояс):

   - https://popl21.sigplan.org/program/program-POPL-2021

На сегодня я пометил для себя такие два интересных доклада, но и другие
тоже повключаю:

   - 18:00 - 19:00
   Invited Talk:
*Teaching Algorithms and Data Structures with a Proof Assistant *Tobias
   Nipkow (Technische Universität München)
   - 20:30 - 20:45
   *Formalizing Category Theory in Agda*
   Jason Z.S. (HuMcGill University), Jacques Carette (McMaster University)

Список сопутствующих конференций и workshop'ов приведен на сайте
 под пунктом меню Tracks:

   - *Co-hosted Conferences*
  - CPP: International Conference Certified Programs and Proofs
  - PLMW: Programming Languages Mentoring Workshop
  - VMCAI: 22nd International Conference on Verification, Model
  Checking, and Abstract Interpretation
   - *Workshops*
  - CoqPL: The Seventh International Workshop on Coq for Programming
  Languages
  - LAFI: Workshop on Languages for Inference
  - PEPM: Workshop on Partial Evaluation and Program Manipulation
  - PriSC: 5th Workshop on Principles of Secure Compilation
   - *Co-hosted Symposiums*
  - PADL: 23rd International Symposium on Practical Aspects of
  Declarative Languages

Enjoy!

Всего наилучшего,

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


Приглашение на онлайн семинар ru-STEP 15 января (и далее...)

2021-01-14 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Форвардирую письмо Николая Шилова, расширяя пункт (1) и выполняя пункт
(10).🤓
Присоединяйтесь! 
Андрей Климов

-- Forwarded message -
From: Shilov Nikolay 
Date: Thu, Jan 14, 2021 at 11:20 AM
Subject: Приглашение на онлайн семинар ru-STEP 15 января (и далее...)

Уважаемые коллеги,

(1) Вы получили это письмо так как ранее (в октябре-декабре 2020 г) вы
участвовали (или я приглашал вас к участию) в межлабораторном семинаре по
фундаментальным вопросам программной инженерии и теории программирования.

(2) Начиная с 2021 г. мы преобразуем наш семинар в «Российского онлайн-семинар
по фундаментальным вопросам программной инженерии, по теории и
экспериментальному программированию» ru-STEP (= russian seminar on Software
Engineering, Theory and Experimental Programming)!

(3) С тестовой версией страницы нашего обновленного семинара ru-STEP можно
познакомиться по адресу https://persons.iis.nsk.su/ru/ruSTEP. Там вы можете
найти состав учредителей семинара (и их электронные адреса), список
прошедших заседаний (со ссылками на записи)  и объявления о предстоящих
заседаниях.

(4) Желающие выступить на семинаре ru-STEP приглашаются написать по
электронной почте любому/нескольким/всем из учредителей семинара (с темой
письма "Заявка на ru-STEP").

(5) Желающие регулярно получать напоминание (оповещение) о ближайшем
заседании накануне этого заседания (тему, докладчика, техническую среду
проведения, дату и время) могут заполнить Google-форму
https://forms.gle/earZy3hFJKmHQLoZ7.

(6) Инаугурационное заседание семинара ru-STEP назначены на 15 января 2021
в 10:00 мск (14:00 нск) в Zoom (https://us02web.zoom.us/j/83175939824,
идентификатор
конференции 831 7593 9824) и посвящено Всемирному Дню Логики, отмечаемому
сегодня 14 января (https://en.wikipedia.org/wiki/World_Logic_Day).

(7) Всемирный День Логики отмечается в Университете Иннополис с 2018 г. (то
есть с самого начала этой традиции еще до объявления UNESCO), для
координации подготовки встреч у нас есть Telegram-группа и чат (
https://t.me/joinchat/FIbIVfsonWm-CKx5). Исходно цель встреч, посвященных
WLD в Университете Иннополис — популяризация логики (математической прежде
всего) среди будущих программистов (студентов Университета в частности).

(8) Наше заседание, посвященное WLD-2021 пройдет 15 января, так как (согласно
официальному сайту WLD-2021 http://wld.cipsh.international/wld.html) на 14
января запланировано слишком много виртуальных мероприятий.

(9) Программа нашего-WLD-2021 на данный момент (время — московское):
10: 00-10: 10 - Открытие
10: 10-10: 40 - Захар Ягудин (II-курс Университета Иннополис): Краткое
введение в  0-1-законы для графов и логик
10: 40-10: 55 - Вопросы / ответы и обсуждение 0-1-законов и связанных тем
11: 55-11: 05 - перерыв
11: 05-11: 35 - Дмитрий Кондратьев (ИСИС, младший научный сотрудник): Обзор
ACL2 доказательства, что sqrt(2) не является «числом»
11: 35-11: 50 - Вопросы / ответы и обсуждение sqrt (2), ACL2 и связанных тем
11: 50-12: 00 - перерыв
12: 00-12: 30 - Борис Файфель (A / Prof, Саратовский ТУ): Уголок
головоломок - Как реализовать логические головоломки на императивных языках.
12:30 -... - Заключительная дискуссия.

(10) Прошу распространить информацию о семинаре ru-STEP и его странице
среди коллег!

Николай Вячеславович Шилов


Re: «Problems’ Day» Wed 30.12.2020 9:00 in Zoom - New Year's Eve meeting of the CS&SE Interlaboratory Seminar Novosibirsk + Innopolis + ...

2020-12-29 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Доброе утро!

За 10 мин до доклада pdf-файл презентации был обновлен по тому же адресу:

   - https://drive.google.com/file/d/169tJh6oMxIaZPMTpv-wMJuUNVRWbrFUt/

Поправлена мелочь. Но можете взять снова, если вы его уже выгружали.

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


On Wed, Dec 30, 2020 at 12:24 AM Andrei Klimov  wrote:

> Добрый вечер всем!
>
> Я делаю доклад на этом семинаре (информация внизу) с такой темой (приведу
> по-русски и по-английски):
>
>- Андрей Климов, Институт прикладной математики им. М.В. Келдыша РАН,
>Москва
>- *Фундаментальные не(до)решенные проблемы Computer Science & Software
>Engineering (субъективный взгляд)*
>- Проблема осознается лишь после того, как найдены первые решения и...
>понято, что это не есть решения. С этой точки зрения глянем на каждую из
>следующих давно стоящих фундаментальных проблем CS&SE. Отбор проблем
>субъективен, а порядок лишь для удобства презентации:
>   1. детерминированные параллельные вычисления;
>   2. семантика имен, ссылок;
>   3. метавычисления;
>   4. верификация программ;
>   5. математические основания вычислений и языков; 6) слияние
>   функциональных и объектно-ориентированных языков программирования.
>
>
>- Andrei Klimov, Keldysh Institute of Applied Mathematics of Russian
>Academy of Sciences, Moscow
>- *Fundamental Un(der)resolved Problems of CS&SE (a subjective view)*
>- A problem is recognized only after the first solutions have been
>found and... it is understood that these are non-solutions. From this point
>of view, let's take a quick look at each of the following long standing
>fundamental problems of CS&SE. The selection of the problems is subjective,
>and the order is only for the convenience of presentation:
>1. deterministic parallel computation;
>   2. semantics of names and references;
>   3. metacomputation;
>   4. program verification;
>   5. mathematical foundations of computation and languages;
>   6. merging functional and object-oriented programming languages.
>
> По условиям организаторов презентация должна быть на английском, а
> говорить можно по-русски (что я и сделаю). Презентация лежит здесь:
>
>- https://drive.google.com/file/d/169tJh6oMxIaZPMTpv-wMJuUNVRWbrFUt/
>
> Презентация получилась длинная – 10 емких слайдов. Если по минуте на
> слайд, то теоретически за 10 мин можно успеть. Но боюсь, это вряд ли
> получится, и придется что-то пропускать или обозначать скороговоркой.
>
> Enjoy!
>
> Всего наилучшего,
> Андрей Климов
>
>
> On Tue, Dec 29, 2020 at 9:51 PM Andrei Klimov  wrote:
>
>> Добрый вечер!
>>
>> Форвардирую письмо организатора семинаров CS&SE Николая Шилова с
>> программой мероприятия в среду 30 декабря в 9:00 мск в Zoom'е.
>>
>> До виртуальной встречи!
>>
>> Андрей Климов
>>
>>
>> -- Forwarded message -
>> From: Nikolay Shilov 
>> Date: Tue, Dec 29, 2020 at 7:14 PM
>> Subject: Reminder: «Problems’ Day» - New Year's Eve meeting of the CS&SE
>> Interlaboratory Seminar Novosibirsk + Innopolis + ...: Wednesday December
>> 30, 2020 at 9:00 am (Moscow time)
>> To: shilov...@mail.ru 
>>
>> Итак, завтра *в среду 30 декабря* (*с 9:00 до 11:00*) у нас последняя в
>> 2020 году встреча межлабораторного семинара по фундаментальным вопросам
>> программной инженерии и теории программирования. Это встреча 7 по счету, но
>> особенная - это День Проблем.
>> Объявление о встрече было разослано 25 декабря 2020 (см. в конце письма).
>>
>> В результате *откликнулись 6 добровольцев*, пожелавших поделиться
>> проблемами в SE/CS/CE/IT/Math/Sci, волновавшие их в 2020 г. (список в
>> порядке поступления заявок на выступление):
>> (1) Дмитрий А. Кондратьев (Институт систем информатики СО РАН,
>> Новосибирск)
>> (2) Александр В. Наумчев (Университет Иннополис)
>> (3) Лидия В. Городняя (Институт систем информатики СО РАН, Новосибирск)
>> (4) Андрей В. Климов (Институт прикладной математики им. М.В. Келдыша
>> РАН, Москва)
>> (5) Аркадий В. Климов (Институт проблем проектирования в микроэлектронике
>> РАН, Москва)
>> (6) Николай В. Шилов (Университет Иннополис)
>>
>> Поэтому я предлагаю *организовать выступления в этом же порядке* и буду
>> следить за регламентом: *каждому докладчику 10 минут на выступление и 5
>> минут на короткие вопросы ответы*.
>>
>> Кроме того, я прошу 10 минут в перед первым выступлением (с 9:00 до
>> 9:10), что бы *почтить **память Эдмунда Кларка*, скончавшегося 22
>> декабря 2020 г. (https://en.wikipedia.org/wiki/Edmund_M._Clarke), а в
>> конце (если останется время до 11:00) - пустить "свободный микрофон" (что
>> бы вернуться к обсуждению вопросов, оставшихся после выступлений, или для
>> совсем коротких выступлений "из зала").
>>
>> *Конференция Zoom*:
>> https://us02web.zoom.us/j/85087216747?pwd=VXB0cVNtQVNTT2xTZFFWRnd4TWcwQT09,
>> conf. id 850 8721 6747, password: 063350.
>>
>> *Вниманию сотрудников Университета Иннополис*, которые собираются
>> принять очное участие: *семинар пройдет в аудитории 301

Re: «Problems’ Day» Wed 30.12.2020 9:00 in Zoom - New Year's Eve meeting of the CS&SE Interlaboratory Seminar Novosibirsk + Innopolis + ...

2020-12-29 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый вечер всем!

Я делаю доклад на этом семинаре (информация внизу) с такой темой (приведу
по-русски и по-английски):

   - Андрей Климов, Институт прикладной математики им. М.В. Келдыша РАН,
   Москва
   - *Фундаментальные не(до)решенные проблемы Computer Science & Software
   Engineering (субъективный взгляд)*
   - Проблема осознается лишь после того, как найдены первые решения и...
   понято, что это не есть решения. С этой точки зрения глянем на каждую из
   следующих давно стоящих фундаментальных проблем CS&SE. Отбор проблем
   субъективен, а порядок лишь для удобства презентации:
  1. детерминированные параллельные вычисления;
  2. семантика имен, ссылок;
  3. метавычисления;
  4. верификация программ;
  5. математические основания вычислений и языков; 6) слияние
  функциональных и объектно-ориентированных языков программирования.


   - Andrei Klimov, Keldysh Institute of Applied Mathematics of Russian
   Academy of Sciences, Moscow
   - *Fundamental Un(der)resolved Problems of CS&SE (a subjective view)*
   - A problem is recognized only after the first solutions have been found
   and... it is understood that these are non-solutions. From this point of
   view, let's take a quick look at each of the following long standing
   fundamental problems of CS&SE. The selection of the problems is subjective,
   and the order is only for the convenience of presentation:
   1. deterministic parallel computation;
  2. semantics of names and references;
  3. metacomputation;
  4. program verification;
  5. mathematical foundations of computation and languages;
  6. merging functional and object-oriented programming languages.

По условиям организаторов презентация должна быть на английском, а говорить
можно по-русски (что я и сделаю). Презентация лежит здесь:

   - https://drive.google.com/file/d/169tJh6oMxIaZPMTpv-wMJuUNVRWbrFUt/

Презентация получилась длинная – 10 емких слайдов. Если по минуте на слайд,
то теоретически за 10 мин можно успеть. Но боюсь, это вряд ли получится, и
придется что-то пропускать или обозначать скороговоркой.

Enjoy!

Всего наилучшего,
Андрей Климов


On Tue, Dec 29, 2020 at 9:51 PM Andrei Klimov  wrote:

> Добрый вечер!
>
> Форвардирую письмо организатора семинаров CS&SE Николая Шилова с
> программой мероприятия в среду 30 декабря в 9:00 мск в Zoom'е.
>
> До виртуальной встречи!
>
> Андрей Климов
>
>
> -- Forwarded message -
> From: Nikolay Shilov 
> Date: Tue, Dec 29, 2020 at 7:14 PM
> Subject: Reminder: «Problems’ Day» - New Year's Eve meeting of the CS&SE
> Interlaboratory Seminar Novosibirsk + Innopolis + ...: Wednesday December
> 30, 2020 at 9:00 am (Moscow time)
> To: shilov...@mail.ru 
>
> Итак, завтра *в среду 30 декабря* (*с 9:00 до 11:00*) у нас последняя в
> 2020 году встреча межлабораторного семинара по фундаментальным вопросам
> программной инженерии и теории программирования. Это встреча 7 по счету, но
> особенная - это День Проблем.
> Объявление о встрече было разослано 25 декабря 2020 (см. в конце письма).
>
> В результате *откликнулись 6 добровольцев*, пожелавших поделиться
> проблемами в SE/CS/CE/IT/Math/Sci, волновавшие их в 2020 г. (список в
> порядке поступления заявок на выступление):
> (1) Дмитрий А. Кондратьев (Институт систем информатики СО РАН, Новосибирск)
> (2) Александр В. Наумчев (Университет Иннополис)
> (3) Лидия В. Городняя (Институт систем информатики СО РАН, Новосибирск)
> (4) Андрей В. Климов (Институт прикладной математики им. М.В. Келдыша
> РАН, Москва)
> (5) Аркадий В. Климов (Институт проблем проектирования в микроэлектронике
> РАН, Москва)
> (6) Николай В. Шилов (Университет Иннополис)
>
> Поэтому я предлагаю *организовать выступления в этом же порядке* и буду
> следить за регламентом: *каждому докладчику 10 минут на выступление и 5
> минут на короткие вопросы ответы*.
>
> Кроме того, я прошу 10 минут в перед первым выступлением (с 9:00 до 9:10),
> что бы *почтить **память Эдмунда Кларка*, скончавшегося 22 декабря 2020
> г. (https://en.wikipedia.org/wiki/Edmund_M._Clarke), а в конце (если
> останется время до 11:00) - пустить "свободный микрофон" (что бы вернуться
> к обсуждению вопросов, оставшихся после выступлений, или для совсем
> коротких выступлений "из зала").
>
> *Конференция Zoom*:
> https://us02web.zoom.us/j/85087216747?pwd=VXB0cVNtQVNTT2xTZFFWRnd4TWcwQT09,
> conf. id 850 8721 6747, password: 063350.
>
> *Вниманию сотрудников Университета Иннополис*, которые собираются принять
> очное участие: *семинар пройдет в аудитории 301* (а не 304 как обычно)!
>
> =
> *Topic*: Problems’ Day
> *Short description*: Volunteers are invited to present in 10 minutes the
> most challenging/fascinating/interesting/exciting
> problem/result/research/topics in SE/CS/CE/IT/Math/Sci that they
> encountered/learnt/read/heard/studied in 2020. Each short presentation will
> be followed by a short Q/A & discussion. Language of presentations, Q/A &
> discussion sessions — *English *(pre

«Problems’ Day» Wed 30.12.2020 9:00 in Zoom - New Year's Eve meeting of the CS&SE Interlaboratory Seminar Novosibirsk + Innopolis + ...

2020-12-29 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый вечер!

Форвардирую письмо организатора семинаров CS&SE Николая Шилова с программой
мероприятия в среду 30 декабря в 9:00 мск в Zoom'е.

До виртуальной встречи!

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


-- Forwarded message -
From: Nikolay Shilov 
Date: Tue, Dec 29, 2020 at 7:14 PM
Subject: Reminder: «Problems’ Day» - New Year's Eve meeting of the CS&SE
Interlaboratory Seminar Novosibirsk + Innopolis + ...: Wednesday December
30, 2020 at 9:00 am (Moscow time)
To: shilov...@mail.ru 

Итак, завтра *в среду 30 декабря* (*с 9:00 до 11:00*) у нас последняя в
2020 году встреча межлабораторного семинара по фундаментальным вопросам
программной инженерии и теории программирования. Это встреча 7 по счету, но
особенная - это День Проблем.
Объявление о встрече было разослано 25 декабря 2020 (см. в конце письма).

В результате *откликнулись 6 добровольцев*, пожелавших поделиться
проблемами в SE/CS/CE/IT/Math/Sci, волновавшие их в 2020 г. (список в
порядке поступления заявок на выступление):
(1) Дмитрий А. Кондратьев (Институт систем информатики СО РАН, Новосибирск)
(2) Александр В. Наумчев (Университет Иннополис)
(3) Лидия В. Городняя (Институт систем информатики СО РАН, Новосибирск)
(4) Андрей В. Климов (Институт прикладной математики им. М.В. Келдыша РАН,
Москва)
(5) Аркадий В. Климов (Институт проблем проектирования в микроэлектронике
РАН, Москва)
(6) Николай В. Шилов (Университет Иннополис)

Поэтому я предлагаю *организовать выступления в этом же порядке* и буду
следить за регламентом: *каждому докладчику 10 минут на выступление и 5
минут на короткие вопросы ответы*.

Кроме того, я прошу 10 минут в перед первым выступлением (с 9:00 до 9:10),
что бы *почтить **память Эдмунда Кларка*, скончавшегося 22 декабря 2020 г. (
https://en.wikipedia.org/wiki/Edmund_M._Clarke), а в конце (если останется
время до 11:00) - пустить "свободный микрофон" (что бы вернуться к
обсуждению вопросов, оставшихся после выступлений, или для совсем коротких
выступлений "из зала").

*Конференция Zoom*:
https://us02web.zoom.us/j/85087216747?pwd=VXB0cVNtQVNTT2xTZFFWRnd4TWcwQT09,
conf. id 850 8721 6747, password: 063350.

*Вниманию сотрудников Университета Иннополис*, которые собираются принять
очное участие: *семинар пройдет в аудитории 301* (а не 304 как обычно)!

=
*Topic*: Problems’ Day
*Short description*: Volunteers are invited to present in 10 minutes the
most challenging/fascinating/interesting/exciting
problem/result/research/topics in SE/CS/CE/IT/Math/Sci that they
encountered/learnt/read/heard/studied in 2020. Each short presentation will
be followed by a short Q/A & discussion. Language of presentations, Q/A &
discussion sessions — *English *(preferable for slides) and *Russian*
(preferable for discussion).
*If you would like to contribute* — please send me back (*just as reply*) a
short message with a title and a short (3 sentences at most)
annotation by *Monday
December 28* and be ready to present your stuff on *Wednesday December 30*
in 10 minutes using 3-6 slides (at most).


«Problems’ Day» Wed 30.12.2020 9:00 in Zoom - New Year's Eve meeting of the CS&SE Interlaboratory Seminar Novosibirsk + Innopolis + ...

2020-12-26 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Доброе утро!

Форвардирую объявление организатора семинаров CS&SE Николая Шилова о
мероприятии в среду 30 декабря в 9:00 мск по Zoom'у.
До завтра (понедельника 28.12.20) приглашаются желающие подать заявку на
10-минутный доклад о волнующих ее/его проблемах CS&SE.

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


-- Forwarded message -
From: Shilov Nikolay 
Date: Fri, Dec 25, 2020 at 10:22 AM
Subject: «Problems’ Day» - New Year's Eve meeting of the CS&SE
Interlaboratory Seminar Novosibirsk + Innopolis + ...: Wednesday December
30, 2020 at 9:00 am (Moscow time)

Dear All,

Next *Wednesday December 30, 2020, from 9:00 to 11:00+* (Moscow time zone)
we will have *7th session* of our Inter-Lab seminar on CS&SE. - *Please
feel free to forward this invitation* to colleagues who may be interested.

*Topic*: Problems’ Day
*Short description*: Volunteers are invited to present in 10 minutes the
most challenging/fascinating/interesting/exciting
problem/result/research/topics
in SE/CS/CE/IT/Math/Sci that they encountered/learnt/read/heard/studied in
2020. Each short presentation will be followed by a short Q/A & discussion.
Language of presentations, Q/A & discussion sessions — *English
*(preferable for
slides) and *Russian* (preferable for discussion).

*If you would like to contribute* — please send me back (*just as reply*) a
short message with a title and a short (3 sentences at most)
annotation by *Monday
December 28* and be ready to present your stuff on *Wednesday December 30*
in 10 minutes using 3-6 slides (at most).

*Venue*:

(*) Innopolis University room 304
OR (*) Zoom (
https://us02web.zoom.us/j/85087216747?pwd=VXB0cVNtQVNTT2xTZFFWRnd4TWcwQT09,
conf. id 850 8721 6747, password: 063350).
Nikolay V. Shilov

===
Regarding materials of the previous (6th) meeting (on Wednesday December
16): video of the talk *The four PEGS of requirements engineering *by *Bertrand
Meyer* is available at
https://drive.google.com/file/d/1AsWlL45xLDj4wLVOEbeCcFmXySeDMsU-/view?usp=sharing
.

*Abstarct*: Bad software requirements can jeopardize projects., but
requirements as commonly practiced remain a weak link in software
engineering. What passes for requirements in industry usually consists of a
few use cases or user stories, which fail to capture many essential aspects
of systems. There is a considerable literature on requirements, including
some excellent textbooks, but their lessons are rarely heeded; many
projects, in particular, fail to take into account the Jackson-Zave
distinction between system and environment. The standard IEEE plan for
requirements dates back to 1998 and does not meet the demands of today’s
ambitious developments. I will present ongoing work intended to help
industry produce more useful requirements. It includes precise definitions
of requirements concepts and a standard plan for requirements
specifications. The plan contains four books covering the four “PEGS” of
requirements engineering: Project, Environment, Goals and System. The talk
does not attempt to introduce radical new concepts but rather builds on
existing knowledge to define a solid basis for requirements engineering and
provide projects with precise and helpful guidelines.


Second call for papers. VPT 20-21 - International Workshops on Verification and Program Transformation

2020-12-15 Пенетрантность Andrei Klimov andrei_AT_klimov . net
***
 SECOND CALL FOR PAPERS

 Ninth International Workshop on
 Verification and Program Transformation

 Devoted to the achievements of the research career of
   Professor Alberto Pettorossi
   http://www.iasi.cnr.it/~adp/

   March 27th and 28th, 2021, Luxembourg, Luxembourg

http://refal.botik.ru/vpt/vpt2021


Co-Located with the 24th European joint Conference on
Theory and Practice of Software (ETAPS 2021)

The VPT 2021 event will consist of two parts:

Day 1:  Invited and contributed presentations
of the postponed VPT 2020 workshop devoted to
  the achievements of the research career of
 Professor Alberto Pettorossi
http://refal.botik.ru/vpt/vpt2020

The Proceedings of VPT-2020 was published as EPTCS 320:
http://eptcs.web.cse.unsw.edu.au/content.cgi?VPTHCVS2020

Day 2: new Invited and contributed presentations of VPT 2021 workshop.

***
***
VPT-2020 Keynote Speaker:

   Professor Alberto Pettorossi,

Universita di Roma Tor Vergata and
Istituto di Analisi dei Sistemi ed Informatica "A. Ruberti", Italy

   http://www.iasi.cnr.it/~adp/


***
The VPT-2020 Invited Speakers:

Alain Finkel, LSV, ENS Paris-Saclay, CNRS
 Universite Paris-Saclay, France
 http://www.lsv.fr/~finkel/

John P. Gallagher, Roskilde University, Denmark
 and IMDEA Software Institute, Spain
 http://www.ruc.dk/~jpg/

Moa Johansson, Chalmers University, Gothenburg, Sweden
 http://www.cse.chalmers.se/~jomoa/

Neil D. Jones, Professor emeritus at University of Copenhagen,
 Denmark
 http://hjemmesider.diku.dk/~neil/

Michael Leuschel, Heinrich-Heine-Universitaet Duesseldorf, Germany
https://www.cs.hhu.de/en/research-groups/software-engineering-and-programming-languages/our-team/team/michael-leuschel.html

Maurizio Proietti, IASI-CNR, Rome, Italy
 http://www.iasi.cnr.it/~proietti/

Sophie Renault, European Patent Office - The Hague, The Netherlands

Andrzej Skowron, Professor emeritus at University of Warsaw, Poland

***
***
VPT-2021 Invited Speakers:

Nikos Gorogiannis, Middlesex University, UK
 https://ngorogiannis.bitbucket.io/

Fritz Henglein, DIKU, University of Copenhagen, Denmark
 http://hjemmesider.diku.dk/~henglein/

..
.. TBA ...
***

The Ninth International Workshop on Verification and Program
Transformation (VPT 2021) aims to bring together researchers
working in the areas of Program Verification and Program Transformation.

The workshop will be held either fully online or in hybrid mode
(depending on epidemiological situation and subject to ETAPS decision
expected in December 2020),
and remote participation and lectures and talks delivery will be possible.


The previous workshops in this series were:

VPT 2013, Saint Petersburg, Russia
VPT 2014, Vienna, Austria
VPT 2015, London, UK
VPT 2016, Eindhoven, The Netherlands
VPT 2017, Uppsala, Sweden
MARS/VPT 2018, Thessaloniki, Greece
VPT 2019, Genova, Italy
VPT 2020, Dublin, Ireland
  The VPT-2020 Workshop was postponed in-line with ETAPS-2020,
  The Proceedings of VPT-2020 was published as EPTCS 320.


The workshop solicits research, position, application, and
system description papers with a special emphasis on case studies,
demonstrating viability of the interactions between the research fields
of program transformation and program verification in a broad sense.
Also papers in related areas, such as program testing and program synthesis
are welcomed.

Topics of interest include, but are not limited to:

* Verification by Program Transformation
* Verification Techniques in Program Transformation and Synthesis
* Verification and Certification of Programs Transformations
* Program Analysis and Transformation
* Program Testing and Transformation
* Verifiable Computing and Program Transformation
* Case studies

*Important Dates*

* January 3rd, 2021: Abstract submission deadline
* January 10th, 2021: Regular paper submission deadline
* January 24th, 2021: Extended abstracts and presentation-only papers
submission deadline
* February 16th, 2021: Acceptance notification
* March 1st, 2021: Camera ready version (for the informal pre-proceedi

Re: Запахи кода и антипаттерны в Рефале

2020-12-14 Пенетрантность Andrei Klimov andrei_AT_klimov . net
пн, 14 дек. 2020 г., 10:46 Александр Коновалов a.v.konovalov87_AT_mail.ru <
refal@botik.ru>:

Доброе утро всем!

> 1.  Выворачивание скобок наизнанку, для организации прохода по выражению.

К представлению объектных выражений этот приём (антиприём) не имеет
отношение.


Не согласен! Ещё как имеет. Нельзя не думать об эффективности, выбирая
шаблоны программирования, особенно когда речь не о коэффициенте, а об
уменьшении сложности, скажем с квадратичной до линейной.

Он, скорее, характерен для базисного Рефала (Рефала-2), в котором нет
ничего подобного let-конструкциям (условия, перестройки, действия).


По-моему, это здесь ни при чём. Это вопрос заведения/отсутствия
вспомогательных функций, что есть другой паттерн, который, кстати, не
влияет на сложность, а только на небольшой коэффициент, зависящий от
реализации. А как влияет на читабельность - это ещё вопрос. Некоторым
нравятся явно выраженные вспомогательные функции.

У меня в Рефале-5λ копирование выражений дорогое, но я копировать их по
умолчанию не боюсь. Потому что потом я нахожу узкие места, изучая профиль
программы, и устраняю лишние копирования уже в них.


Заниматься перепимыванием читабельной программы на нечитабельную - это,
по-моему, как раз пример "антипаттерна". Так нарушается maitanability,
сопровождаемость, развиваемость программы, что есть первое требование к
хорошему программированию. Остальные требования, паттерны/антипаттерны
вытекают из него.

А нет ли в Рефале Плюс другой боязни — боязни конкатенации?


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


Enum {
  e.Expr
=  : e.Expr^ s.Num
= e.Expr;
}


IMHO, это есть пример антипаттерна: повторное использование имени для
нового значения. Я бы здесь обязательно написал е.Expr1. А то легко не
понять при чтении и ошибиться при рефакторинге.

Также избегаю повторения имени в популярных функ языках типа ML с let, ну,
кроме совсем легко читаемых шаблонных случаев:

...
let x = x+1 in
...

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

А в целом по паттернам/антипаттернам скажу, что использование шаблонов
программирования всегда хорошо, будь они "позитивные" или "анти". Это
повышает читабельность. А как классифицировать - сильно зависит от
контекста, конкретного случая программирования.

В общие правила, что хорошо, а что плохо, не верю. Надо руководствоваться
целевым критерием - изменяемостью, сопровождаемость программы. Хорошая
программа та, которую легко менять, не ошибаясь. И всё.

Андрей


Семинар по метавычислениям во вторник 13 октября 2020 в 13:00 в Zoom'е

2020-10-12 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый день всем!

Во *вторник 13 октября* 2020 в *13 часов* приглашаем на *онлайн*-семинар в
Zoom, чтобы послушать предзащитный доклад:

   -

   *Дмитрий Александрович Мордвинов* (СПбГУ)

*Дизъюнкты Хорна с ограничениями в контексте формальной верификации
   программ *(по материалам кандидатской диссертации)

Аннотация

С ростом популярности SMT-решателей появилось большое количество подходов и
инструментов автоматической верификации программного обеспечения,
написанного на самых разных языках программирования. При всём разнообразии
этих подходов, языков и парадигм программирования становится важным
сведение задачи формальной верификации программы к единому представлению. В
докладе будет рассмотрено одно из таких представлений: дизъюнкты Хорна с
ограничениями (Constrained Horn Clauses).

В первой части доклада мы вспомним историю области и введем необходимые
определения. Мы увидим, что по любой императивной программе можно
автоматически построить систему дизъюнктов Хорна с ограничениями, такую,
что её решения в точности соответствуют всем индуктивным инвариантам
исходной программы. В случае функциональных программ такие решения будут
соответствовать уточняющим типам (refinement types) программы. Будет
рассказано о существующих инструментах автоматического решения систем
дизъюнктов Хорна с ограничениями и о применении этих инструментов для
анализа байткода Java и LLVM.

Во второй части мы обсудим открытые проблемы области автоматического
решения систем дизъюнктов Хорна с ограничениями. В частности, будет
обсуждаться проблема непредставимости решений в языке ограничений. Будут
показаны примеры систем, у которых существуют теоретико-множественные
модели, но любая такая модель не представима в языке ограничений. Мы
увидим, что на практике такое чаще всего случается для нелинейных систем
(т.е. систем с правилами, содержащими в посылке два или более
неинтерпретированных атома). Будет кратко рассказано о диссертационной
работе докладчика: об обобщении класса символьных решений дизъюнктов Хорна
с ограничениями на нелинейные системы, реализации направляемого свойством
алгоритма автоматического вывода таких решений и о внедрении результатов
работы в SMT-решатель Z3.

Файлы автореферата и диссертации доступны:

   -

   автореферат
   https://drive.google.com/file/d/1jZJOxwqaOQa8cx23ZEMboRXA8pAxNFrQ
   -

   диссертация
   h
   
   ttps://www.iis.nsk.su/files/Dissertaciya_Mordvinova_ot_15.09.2020.pdf
   
   на сайте дисс-совета
   h 
   ttps://www.iis.nsk.su/institute/dissert/preliminary_procedure
   

Информация о Zoom-сеансе:

Topic: Дмитрий Мордвинов - Дизъюнкты Хорна с ограничениями в контексте
формальной верификации программ
Time: Oct 13, 2020 13:00 Moscow

Join Zoom Meeting
https://us02web.zoom.us/j/82206910430?pwd=Qm05ek1BOGh4SkswUFpOV2FXVVIxUT09

Meeting ID: 822 0691 0430
Passcode: 350248

Сеанс открыт без регистрации в Zoom’е, но лучше если вы в нем
зарегистрируетесь и войдете под своим именем. Также просим в своем имени в
Zoom’е указать полное имя и фамилию (без отчества, так как длинный текст не
помещается в соответствующем поле).

Пожалуйста, будьте готовы, задавая вопросы и участвуя в обсуждениях,
открывать свое видео. В настройках Zoom’а есть приятная возможность
установить фон, если вы не хотите показывать окружение, в котором
находитесь.

До встречи в Сети!

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


Поздравляем Андрея Петровича Немытых с юбилеем!

2020-10-09 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Дорогой Андрей Петрович,

От имени всего рефал-сообщества позвольте поздравить Вас со знаменательной
датой, которая символизирует Вашу зрелость, мудрость и большую историю
успехов!

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

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


Re: LBA

2020-06-28 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Дмитрий, еще добавлю к словам Сергея:

LBA не является алгоритмически полным, так что сравнивать вообще
бессмысленно.

   - Linear bounded automaton
   In computer science, a linear bounded automaton (plural linear bounded
   automata, abbreviated LBA) is a *restricted form of Turing machine*.
   https://en.wikipedia.org/wiki/Linear_bounded_automaton

Всего наилучшего,
Андрей

On Sun, Jun 28, 2020 at 9:19 AM Скоробогатов Сергей Юрьевич
skorobogatov_AT_bmstu.ru  wrote:

> Здравствуйте.
> Насколько я понимаю, Рефал не является реализацией языка на базе LBA :-)
>
> Языки, упомянутые на указанной вами странице википедии, не являются
> языками программирования, поэтому Рефалу там не место.
>
> С уважением,
> Сергей.
>
> On Sun, 28 Jun 2020 09:46:39 +0400
>   Dmitry Ponyatov dponyatov_AT_gmail.com   wrote:
> > Добрый день
> >
> > Рефал это реализация языка на базе LBA ?
> >
> > https://en.wikipedia.org/wiki/Linear_bounded_automaton
> >
> > Рефал не упоминают 8(
> >
> >
> > --
> > С уважением, Понятов Дмитрий, инженер IoT/embedded, тел. +7 917 10
> >10 818
>
>
>
>


Конференция SYRCoSE'20 по Zoom'у 28–29 мая 2020

2020-05-28 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый день коллеги!

Сейчас идет – то есть сегодня в *четверг 28 мая* и завтра в *пятницу 29 мая*
2020 –конференция:

   - Spring/Summer Young Researchers' Colloquium on Software Engineering
   SYRCoSE'20.

Программа и ссылка на вход в сеанс Zoom'а на странице:

   - http://syrcose.ispras.ru/?q=node/12

Рабочий язык английский, хотя подавляющее большинство участников из России.

Завершилась первая сессия – прослушали 5 докладов. Начинается вторая.

Желающие могут присоединяться!
Извините, спохватился сообщить только сейчас.

Всего наилучшего,
Андрей Климов


День памяти Валентина Федоровича Турчина 7.4.2020

2020-04-07 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Дорогие друзья и коллеги!

Сегодня исполнилось 10 лет как Валентин Федорович покинул этот мир.

Мы его помним всегда и поминаем в этот день.

В нынешнем «инфошуме» и «инфодемии» чувствуется, что не зря он говорил, что
верит, что его философские взгляды, эволюционная теория, согласованные с
ней представления о развитии общества и понимание морали и каждым себя
лично, – будучи освоенными, сделают людей сильнее и счастливее, а
человечество плодотворнее развивающимся.

Если я что-то и понимаю в бурно происходящих процессах и ценю развитие
больше, чем по красиво сказанному (якобы китайскому) проклятию «жить тебе в
эпоху перемен», то это благодаря тому, что что-то впитал от Учителя и его
работ.

Образ Валентина Федоровича и сейчас помогает нам справиться с закрутившими
нас напастями.

Светлая память!

Всем здоровья и успехов в ваших великих Делах! – как бы он сам нам пожелал.

Всего наилучшего,
Андрей Климов

>


Re: Как мне назвать компилятор?

2020-03-31 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Tue, Mar 31, 2020 at 6:35 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Андрей!
>
> Понял мысль, спасибо. Менять местами 5 и l я бы не стал. И так иногда их
> путают (здесь
> 
> на титульном листе, здесь
> 
> на первом слайде). К тому же запись rl5c сильно похожа на 15.
>
Это я привел лишь для демонстрации идеи, как читаются буквы рядом с цифрой,
а не как предложение назвать.

> Можно вообще 5 выкинуть: rlc, rlmake, rlgo. Когда рядом с l нет цифры,
> она не напоминает 1. А поскольку названия утилит как правило пишутся
> в нижнем регистре, то не перепутаешь l с I. И l как длинная палка
> отделяет разновидность утилиты.
>
Да, мМне тоже кажется, что 5 можно убрать.

Андрей

> Удачно получилось у Рефала-05: компилятор refal05c.exe (даже 8.3!),
> префиксы типов и функций рантайма r05_. Напомню, Рефал-05 — этот тот,
> который распараллеливал Станислав. (Про дискуссию о распараллеливании я
> не забыл — дочитаю старую статью Эйсымонта и отвечу.)
>
> Александр Коновалов
>
>
>
> *From:* Andrei Klimov andrei_AT_klimov.net [mailto:refal@botik.ru]
> *Sent:* Tuesday, March 31, 2020 6:06 PM
> *To:* refal@botik.ru
> *Subject:* Re: Как мне назвать компилятор?
>
>
>
> On Tue, Mar 31, 2020 at 5:57 PM Александр Коновалов
> a.v.konovalov87_AT_mail.ru  wrote:
>
> Андрей!
>
> *«Цифра 5 в середине наименования Рефала мне не нравится: буква после неё
> сливается с именем утилиты.»*
>
> Не понял мысль.
>
> Рассмотрим первый вариант: r5lc, r5lmake
>
> Здесь глаз воспринимает 5 как разделитель, после которого слитно читаются
> идентификаторы lc, make.
>
> Если, скажем, 5 и l поменять местами, получится: rl5c, rl5make. Тогда
> имена "c" и "make" легко выделяются глазом.
>
> То же самое в hor5c, hor5make.
>
>
>
> Андрей
>
>
>
> *From:* Andrei Klimov andrei.klimov_AT_gmail.com [mailto:refal@botik.ru]
> *Sent:* Tuesday, March 31, 2020 5:52 PM
> *To:* refal@botik.ru
> *Subject:* Re: Как мне назвать компилятор?
>
>
>
> Вообще-то цифры в названиях утилит я не люблю (пальцы надо приподнимать к
> верхнему ряду), но в данном случае хотя бы есть плюс, что цифра выделяет
> имя утилиты, которое быстро опознается глазом: ...c, ...make, ...int.
>
> Цифра 5 в середине наименования Рефала мне не нравится: буква после нее
> сливается с именем утилиты.
>
>
>
> Андрей
>
>
>
> On Tue, Mar 31, 2020 at 5:39 PM Александр Коновалов
> a.v.konovalov87_AT_mail.ru  wrote:
>
> Спасибо, Андрей!
>
> Вариант неплохой. Только я бы добавил циферку 5: hor5c, hor5make, hor5go или
> hor5int для интерпретатора (вернее, загрузчика), который я сейчас пишу.
>
> На всякий случай дополню: сам язык я не планирую переименовывать, он так
> и остаётся Рефалом-5λ.
>
>
>
> *From:* Andrei Klimov andrei_AT_klimov.net [mailto:refal@botik.ru]
> *Sent:* Tuesday, March 31, 2020 5:30 PM
> *To:* refal@botik.ru
> *Subject:* Re: Как мне назвать компилятор?
>
>
>
> Может так? --
>
> Higher Order Refal – hor, horef:
>
> horc, horefc, hormake
>
>
>
> Гуглом и словарями проверяем, что у этого слова нет нехороших смыслов. Не
> обнаружено.
>
> По словарю: hor = horizon = горизонт.
>
> Ассоциация неплохая: рефал на горизонте; рефал, к которому стремимся;
> рефал мечты. ;-)
>
> (Правда, горизонт мы не достигаем. Но это уж можно замять.:-))
>
>
>
> Андрей
>
>
>
> On Tue, Mar 31, 2020 at 5:20 PM Александр Коновалов
> a.v.konovalov87_AT_mail.ru  wrote:
>
> Спасибо за интересное предложение!
>
> Выглядит неплохо, хотя и натянуто. Связь между Рефалом-5λ и r5ac (или
> ref5ac) не очевидна. Но столь же неочевидна связь и между Рефалом-5λ и
> srefc.
>
>
> Александр Коновалов
>
> -Original Message-
> From: Boyko Bantchev boykobb_AT_gmail.com [mailto:refal@botik.ru]
> Sent: Tuesday, March 31, 2020 3:09 PM
> To: refal@botik.ru
> Subject: Re: Как мне назвать компилятор?
>
> Имя музыкального тона «ля» созвучно со словом «лямбда», а обозначается он
> через букву A. Тогда вместо префикса «r5l» можно «r5a». К тому же, «a» —
> одна из обычных добавок к имени (подобно «плюс» и «прим»), чтобы оно и было
> подобно, и отличалось от существующего. И, наконец, A не сильно отличается
> от греческого Λ :)
>
> Конечно, всё это очень натянуто, но вряд ли в большей степени, чем
> графическая имитация буквы Λ знаком \ (Haskell) или λ — знаком -> (Ruby).
>
> Просто моите две стотинки :)
>
> On Tue, 31 Mar 2020 at 14:26, Александр Коновалов
> a.v.konovalov87_AT_mail.ru  wrote:
> >
> > Добрый день всем!
> >
> > У компилятора название есть, такое же как у языка — Рефал-5λ. Но вот
> чего нет — нет нормального названия для утилиты командной строки.
> >
> >
> >
> > Исторический контекст (можно не читать).
> >
> > Когда-то я разрабатывал так называемый Простой Рефал — диалект,
> > син

Re: Как мне назвать компилятор?

2020-03-31 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Tue, Mar 31, 2020 at 5:57 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Андрей!
>
> *«Цифра 5 в середине наименования Рефала мне не нравится: буква после неё
> сливается с именем утилиты.»*
>
> Не понял мысль.
>
Рассмотрим первый вариант: r5lc, r5lmake
Здесь глаз воспринимает 5 как разделитель, после которого слитно читаются
идентификаторы lc, make.
Если, скажем, 5 и l поменять местами, получится: rl5c, rl5make. Тогда имена
"c" и "make" легко выделяются глазом.
То же самое в hor5c, hor5make.

Андрей


> *From:* Andrei Klimov andrei.klimov_AT_gmail.com [mailto:refal@botik.ru]
> *Sent:* Tuesday, March 31, 2020 5:52 PM
> *To:* refal@botik.ru
> *Subject:* Re: Как мне назвать компилятор?
>
>
>
> Вообще-то цифры в названиях утилит я не люблю (пальцы надо приподнимать к
> верхнему ряду), но в данном случае хотя бы есть плюс, что цифра выделяет
> имя утилиты, которое быстро опознается глазом: ...c, ...make, ...int.
>
> Цифра 5 в середине наименования Рефала мне не нравится: буква после нее
> сливается с именем утилиты.
>
>
>
> Андрей
>
>
>
> On Tue, Mar 31, 2020 at 5:39 PM Александр Коновалов
> a.v.konovalov87_AT_mail.ru  wrote:
>
> Спасибо, Андрей!
>
> Вариант неплохой. Только я бы добавил циферку 5: hor5c, hor5make, hor5go или
> hor5int для интерпретатора (вернее, загрузчика), который я сейчас пишу.
>
> На всякий случай дополню: сам язык я не планирую переименовывать, он так
> и остаётся Рефалом-5λ.
>
>
>
> *From:* Andrei Klimov andrei_AT_klimov.net [mailto:refal@botik.ru]
> *Sent:* Tuesday, March 31, 2020 5:30 PM
> *To:* refal@botik.ru
> *Subject:* Re: Как мне назвать компилятор?
>
>
>
> Может так? --
>
> Higher Order Refal – hor, horef:
>
> horc, horefc, hormake
>
>
>
> Гуглом и словарями проверяем, что у этого слова нет нехороших смыслов. Не
> обнаружено.
>
> По словарю: hor = horizon = горизонт.
>
> Ассоциация неплохая: рефал на горизонте; рефал, к которому стремимся;
> рефал мечты. ;-)
>
> (Правда, горизонт мы не достигаем. Но это уж можно замять.:-))
>
>
>
> Андрей
>
>
>
> On Tue, Mar 31, 2020 at 5:20 PM Александр Коновалов
> a.v.konovalov87_AT_mail.ru  wrote:
>
> Спасибо за интересное предложение!
>
> Выглядит неплохо, хотя и натянуто. Связь между Рефалом-5λ и r5ac (или
> ref5ac) не очевидна. Но столь же неочевидна связь и между Рефалом-5λ и
> srefc.
>
>
> Александр Коновалов
>
> -Original Message-
> From: Boyko Bantchev boykobb_AT_gmail.com [mailto:refal@botik.ru]
> Sent: Tuesday, March 31, 2020 3:09 PM
> To: refal@botik.ru
> Subject: Re: Как мне назвать компилятор?
>
> Имя музыкального тона «ля» созвучно со словом «лямбда», а обозначается он
> через букву A. Тогда вместо префикса «r5l» можно «r5a». К тому же, «a» —
> одна из обычных добавок к имени (подобно «плюс» и «прим»), чтобы оно и было
> подобно, и отличалось от существующего. И, наконец, A не сильно отличается
> от греческого Λ :)
>
> Конечно, всё это очень натянуто, но вряд ли в большей степени, чем
> графическая имитация буквы Λ знаком \ (Haskell) или λ — знаком -> (Ruby).
>
> Просто моите две стотинки :)
>
> On Tue, 31 Mar 2020 at 14:26, Александр Коновалов
> a.v.konovalov87_AT_mail.ru  wrote:
> >
> > Добрый день всем!
> >
> > У компилятора название есть, такое же как у языка — Рефал-5λ. Но вот
> чего нет — нет нормального названия для утилиты командной строки.
> >
> >
> >
> > Исторический контекст (можно не читать).
> >
> > Когда-то я разрабатывал так называемый Простой Рефал — диалект,
> > синтаксически похожий на Рефал-5 (но не совместимый с ним),
> > семантически — на Рефал-2 (пустые функции вместо слов), поддерживающий
> > только базисное подмножество. Позже я в него добавил безымянные
> > вложенные функции (замыкания, «лямбды»). Исполнимый файл естественным
> > образом назывался srefc (Simple Refal Compiler). Для компилятора была
> > также утилита srmake, которая принимала на входе имя одного исходника,
> > находила остальные по зависимостям и вызывала для них srefc.
> > Зависимости вычислялись по комментариям вида
> >
> > //FROM имя-файла
> >
> > которые по соглашеню предваряли списки $EXTERN для функций из
> соответствующих файлов.
> >
> > Потом я понял, что несовместимый диалект не нужен даже мне и переделал
> компилятор в совместимый с Рефалом-5. Так появился язык Рефал-5λ, который
> является надмножеством Рефала-5 и включает в себя вложенные функции (что
> символизирует буква «λ» в названии). Но имя программы так и осталось srefc,
> а имя утилиты поиска зависимостей — srmake (которая теперь ищет комментарии
> *$FROM имя-файла).
> >
> > Исходники компилятора уже давно переписаны с Простого Рефала на Рефал-5λ
> (кроме фронт-энда Простого Рефала, который остался самоприменим), фронт-энд
> Простого Рефала я уже подумываю удалить, поэтому имена srefc и srmake
> становятся анахронизмом.
> >
> >
> >
> > Поэтому я прошу помощи у подписчиков: как мне назвать программу
> компилятора (вместо srefc) и программу поиска зависимостей (вместо srmake)?
> >
> > Можно сократить название refal-5-lambda до r5l и использовать ег

Re: Как мне назвать компилятор?

2020-03-31 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Может так? --
Higher Order Refal – hor, horef:
horc, horefc, hormake

Гуглом и словарями проверяем, что у этого слова нет нехороших смыслов. Не
обнаружено.
По словарю: hor = horizon = горизонт.
Ассоциация неплохая: рефал на горизонте; рефал, к которому стремимся; рефал
мечты. ;-)
(Правда, горизонт мы не достигаем. Но это уж можно замять.:-))

Андрей

On Tue, Mar 31, 2020 at 5:20 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Спасибо за интересное предложение!
>
> Выглядит неплохо, хотя и натянуто. Связь между Рефалом-5λ и r5ac (или
> ref5ac) не очевидна. Но столь же неочевидна связь и между Рефалом-5λ и
> srefc.
>
>
> Александр Коновалов
>
> -Original Message-
> From: Boyko Bantchev boykobb_AT_gmail.com [mailto:refal@botik.ru]
> Sent: Tuesday, March 31, 2020 3:09 PM
> To: refal@botik.ru
> Subject: Re: Как мне назвать компилятор?
>
> Имя музыкального тона «ля» созвучно со словом «лямбда», а обозначается он
> через букву A. Тогда вместо префикса «r5l» можно «r5a». К тому же, «a» —
> одна из обычных добавок к имени (подобно «плюс» и «прим»), чтобы оно и было
> подобно, и отличалось от существующего. И, наконец, A не сильно отличается
> от греческого Λ :)
>
> Конечно, всё это очень натянуто, но вряд ли в большей степени, чем
> графическая имитация буквы Λ знаком \ (Haskell) или λ — знаком -> (Ruby).
>
> Просто моите две стотинки :)
>
> On Tue, 31 Mar 2020 at 14:26, Александр Коновалов
> a.v.konovalov87_AT_mail.ru  wrote:
> >
> > Добрый день всем!
> >
> > У компилятора название есть, такое же как у языка — Рефал-5λ. Но вот
> чего нет — нет нормального названия для утилиты командной строки.
> >
> >
> >
> > Исторический контекст (можно не читать).
> >
> > Когда-то я разрабатывал так называемый Простой Рефал — диалект,
> > синтаксически похожий на Рефал-5 (но не совместимый с ним),
> > семантически — на Рефал-2 (пустые функции вместо слов), поддерживающий
> > только базисное подмножество. Позже я в него добавил безымянные
> > вложенные функции (замыкания, «лямбды»). Исполнимый файл естественным
> > образом назывался srefc (Simple Refal Compiler). Для компилятора была
> > также утилита srmake, которая принимала на входе имя одного исходника,
> > находила остальные по зависимостям и вызывала для них srefc.
> > Зависимости вычислялись по комментариям вида
> >
> > //FROM имя-файла
> >
> > которые по соглашеню предваряли списки $EXTERN для функций из
> соответствующих файлов.
> >
> > Потом я понял, что несовместимый диалект не нужен даже мне и переделал
> компилятор в совместимый с Рефалом-5. Так появился язык Рефал-5λ, который
> является надмножеством Рефала-5 и включает в себя вложенные функции (что
> символизирует буква «λ» в названии). Но имя программы так и осталось srefc,
> а имя утилиты поиска зависимостей — srmake (которая теперь ищет комментарии
> *$FROM имя-файла).
> >
> > Исходники компилятора уже давно переписаны с Простого Рефала на Рефал-5λ
> (кроме фронт-энда Простого Рефала, который остался самоприменим), фронт-энд
> Простого Рефала я уже подумываю удалить, поэтому имена srefc и srmake
> становятся анахронизмом.
> >
> >
> >
> > Поэтому я прошу помощи у подписчиков: как мне назвать программу
> компилятора (вместо srefc) и программу поиска зависимостей (вместо srmake)?
> >
> > Можно сократить название refal-5-lambda до r5l и использовать его как
> префикс: r5lc, r5lmake. Но префикс r5l похож на r51 и r5I и этим неудачен —
> легко перепутать. Использовать имена r5c и r5make не хочу, т.к. это не
> Рефал-5, а Рефал-5λ. Имя вроде refal-5-lambda-compiler слишком длинное.
> >
> > По умолчанию компилятор создаёт исполнимые файлы, состоящие из
> интерпретатора, к которому «приклеен» байткод. Но можно создавать файлы и
> из голого байткода. Для запуска последних как программ я планирую написать
> интерпретатор вроде refgo из классического Рефала-5. Возникает вопрос: а
> какое ему дать имя?
> >
> >
> >
> > С уважением,
> > Александр Коновалов
>


Re: Семинар по метавычислениям в понедельник 2 марта 2020 в ИПМ

2020-03-23 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Леонид, OR-параллелизм имеет большую практическую ценность. О нем было
много речи в прошлую волну ИИ на основе Пролога и машин 5-го поколения.
И в мире параллельных алгоритмов OR-параллелизм достаточно распространен.

Например, параллельный метод ветвей и границ – это OR-параллелизм:
параллельные ветви, на которых искомый результат будет заведомо хуже, чем
уже достигнутый рекорд, отмирают (в литературе по ВиГ говорят
"отсеиваются", "pruned"). Мы с Алексеем Адамовичем используем метод ВиГ как
тестовую задачу на распараллеливание по разрабатываемой нами методике.
Недавно мы опубликовали статью:

   - А.И. Адамович, Анд.В. Климов. *О детерминированной параллельной
   реализации метода ветвей и границ на монотонных объектах* // *Научный
   сервис в сети Интернет: труды XXI Всероссийской научной конференции (23-28
   сентября 2019 г., г. Новороссийск)*. — М.: ИПМ им. М.В.Келдыша, 2019. —
   С. 3-18. — DOI: http://doi.org/10.20948/abrau-2019-61
   - Презентация: https://keldysh.ru/abrau/2019/p/61.pdf

в которой привели реализацию ВиГ, у которой в коде верхнего уровня
OR-параллелизм не виден, он записан как AND-параллелизм – как параллельные
вызовы функций – естественно для функционального программирования. А
"отсеивание" ненужных вызовов запрятано в объект, который хранит текущий
найденный рекорд. Получилось изящно.

А в Т-системе, насколько я представляю, OR-параллелизма не было. Или был
где-то на периферии, что я о нем и не слышал. В своей основе она
эксплуатировала функциональный AND-параллелизм.

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

On Mon, Mar 23, 2020 at 7:43 PM Eisymont Leonid verger-lk_AT_yandex.ru <
refal@botik.ru> wrote:

> Аркадий, это сложновато и непонятна практическая ценность. Вот, в
> Т-системе накрутили, чем закончилось.
> Но надо иметь ввиду. Сейчас хорошо бы на чистом Рефале сосредоточиться, но
> довести до практического результата.
> Л.Эйсымонт
>
> 23.03.2020, 17:38, "Arkady Klimov arkady.klimov_AT_gmail.com" <
> refal@botik.ru>:
>
> Я бы упомянул еще один вид параллелизма - ИЛИ-параллелизм. В строгом
> смысле в рефале места для него сейчас нет.
> Было бы, если бы кроме отождествления "слева" и "справа" добавить "любое"
> - подходит любой вариант
> длины открытой е-переменной. Или если ввести "машинную операцию" типа
>  =
> применять tF к термам eX в любом порядке или параллельно, и если есть хотя
> бы один,
> где результат не неуспех, то его и выбрать (любой), иначе неуспех.
> Этот вид встречается в задачах типа поиска доказательств. Также в
> суперкомпиляции.
> Он не сводится к обычному И-параллелизму, поскольку в нем нужно убивать
> запущенные подпроцессы,
> чего в И-параллелизме не бывает.
> Аркадий
>
> пн, 23 мар. 2020 г. в 14:23, Александр Гусев gusev_aleksandr_AT_mail.ru <
> refal@botik.ru>:
>
> Ответил в личку
>
>
>
> Понедельник, 23 марта 2020, 12:58 +03:00 от Eisymont Leonid
> verger-lk_AT_yandex.ru :
>
> Александр, про уровни распараллеливания в Рефале известно с конца 70-х
> годов.
> Вы правильно это разложили в своих пунктах. Мы сейчас говорим о втором
> пункте. Первый пункт - это, наверное, будет решение на одномерном клеточном
> автомате. Оно также лежит с конца 70-х.
> Пункт 3 - в начале 2000-х ввели в Рефал через машинные операции работу с
> MPI. Эта реализация у нас есть. в середине прошлого десятилетия был
> небольшой опыт использования этого. Мы в Модуле эту реализацию даже
> поставили на один из серверов, но далее пока это направление не развиваем -
> много более неотложных дел, да еще этот короновирус добавился...
> Ваши рассуждения правильны, надо общаться. Как узнать подробнее о том, чем
> Вы занимались?
> Л.Эйсымонт
>
> 23.03.2020, 12:29, "Александр Гусев gusev_aleksandr_AT_mail.ru" <
> refal@botik.ru >:
>
> Добрый день!
>
> Как я понимаю, параллелизм может быть нескольких видов:
>
>1. Распараллеливание внутри одной операции, например, поиска по
>большому массиву. Это может быть сделано вне языковой сущности Рефала — с
>помощью «железа» или СУБД;
>2. Распараллеливание на уровне ветвей при вычислении одного выражения,
>с учётом функций или без;
>3. Распараллеливание на уровне алгоритма — создание параллельных
>потоков, решающих по-сути разные задачи.
>
> Пункт 1 работает хорошо и понятно, только не даёт глобального выигрыша,
> так как применим в ограниченном количестве случаев.
> Пункт 2 представляет наибольший интерес для автоматизации
> распараллеливания, только реализации реальной пока не видно, хотя серьёзные
> исследования были. Почему? Трудоёмко и эффективность непредсказуема. Для
> получения как-нибудь ясной картины я предлагаю опираться на статистику,
> которая должна вырабатываться на предварительно обрабатываемых наборах
> данных. В зависимости от решаемых задач эти наборы могут отличаться. Такого
> рода оптимизация уже делается в серверных решениях для СУБД. Называется
> «план запроса». На эту тему создано достаточное количество практических
> решений, позволяющих этим серверам работать в меняющихся и совсем разных
> у

Re: Семинар по метавычислениям в понедельник 2 марта 2020 в ИПМ

2020-03-22 Пенетрантность Andrei Klimov andrei_AT_klimov . net
вс, 22 мар. 2020 г., 15:37 Eisymont Leonid verger-lk_AT_yandex.ru <
refal@botik.ru>:

> Аркадий точно пояснил проблему с малыми временами выполнения функций.  В
> диссертации 1983-го года я предложил частичное инженерное решение - вставил
> в правые части рефал-предложений условные конструкции. Там действительно
> проблема "накачки" времени выполнения рефал-функции была обозначена и
> решалась. Это касается и аппаратуры. Насколько помню, в одной из разработок
> коллектива под руководством  В.Далли (Стэнфордский университет) на машине с
> экспериментальной потоковой архитектурой был поставлен рекорд по
> "минимальному кванту распараллеливания" - 70 наносекунд.
> Если работы по распараллеливанию будут ставиться всерьез, то мы имеющиеся
> данные, конечно, предоставим. Распараллеливание Рефала рассматриваем как
> одно из фундаментальных направлений по ЭКБ для суперкомпьютеров. Подробнее
> - направление 5.1 в поставленных главных направлениях работ по ЭКБ статьи в
> журнале "Вопросы кибербезопасности", N4, 2019 года. В сети есть, это первая
> статья номера.
>

Леонид, спасибо! Почитаю. Вот ссылка на станицу выпуска, где первые 4
страницы твои:
https://cyberrus.com/archives/2220

Андрей


Л.Эйсымонт
>
> 22.03.2020, 12:03, "Arkady Klimov arkady.klimov_AT_gmail.com" <
> refal@botik.ru>:
>
> Немного встряну про параллелизм.
> Имхо существенное ускорения получается там и тогда, когда единицы
> распараллеливания достаточно крупны (при том, что их достаточно много).
> Сегодня это не менее 10 мкс или 10 Кфлоп. Собственно, об этом упоминал
> Леонид (проблемы функций с малыми временами, накладные расходы).
> Поэтому что для чистого, что для грязного, все равно надо укрупнять шаги,
> 1мкс это мало.
> Но от компилятора этого ждать трудно. Придется получать эту инфу от
> программиста, ему-то виднее.
> Хотя какое-то рантайм-профилирование может быть полезным (но не по
> операторам отождествления-замены, а по функциям).
> А "умный" компилятор или рантайм пусть использует результаты. Кто-то
> пытался так делать?
> Аркадий
>
> сб, 21 мар. 2020 г. в 18:32, Eisymont Leonid verger-lk_AT_yandex.ru <
> refal@botik.ru>:
>
> Автоматическое распараллеливание с учетом побочного эффекта можно и
> оставить, но это не должно повредить основному, о чем я говорил для чистого
> рефала без побочного эффекта. Абзац в ответе по поводу автоматического
> распараллеливания в Вашем письме я не понял. Мы параллелили компиляцию
> (выполняемую компилятором на Рефале) на уровне операторов исходной
> программы, а исходная программа  на фортрано-подобном языке.
> Статистику по основным затратам при выполнении разных рефал-программ
> делали. Затраты на открытые переменные - это миф. Я же пересылал Вам
> материалы, там есть расклад. Измерения были достаточно точные, поскольку
> выполнялись на микропрограммной реализации Рефала. Это была разработка ИПМ
> тех лет.
> Диссертации моей в электронном виде у меня нет, тогда еще этого не было. У
> меня только в оригинале. М.б. есть в сети, кто-то отсканировал.
> Дипломная работа Александра Фролова и статьи уже 2000-х годов у меня есть,
> но я ведь статьи и презентации пересылал. Надо повторить?
> Л.Эйсымонт
>
>
> 21.03.2020, 18:03, "Александр Коновалов a.v.konovalov87_AT_mail.ru
> " :
>
> Добрый вечер, Леонид!
>
> Текст диссертации, препринт и дипломная работа доступны в электронном
> виде? Я бы почитал.
>
>
>
> *«Оставьте затею с решением побочного эффекта на автомате.»*
>
> Имеем программу для обычного последовательного Рефала.
>
> Если компилятор поддерживает распараллеливание на автомате, то для
> параллельного выполнения в идеале ничего делать не надо: оно само
> распараллелится. Чтобы обеспечить бо́льшую степень параллелизма, нужно
> в программу добавить больше независимых чистых вычислений. Например, если
> это компилятор, то можно сначала загрузить в память несколько исходных
> файлов, потом их всех в памяти откомпилировать в целевой код, потом (если
> не было ошибок) записать скомпилированный код в целевые файлы. Компиляция
> на втором этапе может быть полностью чистой, при этом отдельные исходники
> транслируются независимо. А значит, будут параллелиться. При этом программу
> по-прежнему можно будет откомпилировать и запустить на обычной
> последовательной реализации Рефала.
>
> А если компилятор не поддерживает автоматическое распараллеливание? Что
> тогда делать?
>
>
>
> *«Рекомендую решать проблему распараллеливания только для чистого Рефала,
> там есть чем заняться для минимизации накладных расходов и по балансировке
> параллельных вычислений.»*
>
> Согласен, есть чем заняться. В имеющейся реализации балансировка очень
> примитивная с высокими накладными расходами.
>
>
>
> *«Ещё там есть проблема функций с малыми временами выполнения, их лучше
> последовательно выполнять, но для этого их надо уметь выявлять.»*
>
> Я вообще исходил из предположения, что все функции Рефала имеют малое
> время выполнения. Исходная последовательная версия Рефала-05 компилирует
> себя за

Re: Умер Леня Проворов

2020-03-10 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Родственники и друзья собрали фотографии:

   -
   https://drive.google.com/drive/folders/1_SadFAKyKR3ARPOI3yNSzODx2qx7zrTb
   -
   https://drive.google.com/drive/folders/1-v_k4HrzwkP_zJoGDjv8kIHqjSeP4sUL

Вспоминаем Лёню...

Андрей

On Tue, Mar 10, 2020 at 9:36 PM Andrei Klimov  wrote:

> Друзья!
>
> Прощание с Лёней в четверг 12 марта в 12 часов в Покровской церкви по
> адресу:
>
>- г. Жуковский, ул. Чкалова, д. 26а:
>   -
>   
> https://yandex.ru/maps/20571/zhukovskiy/house/ulitsa_chkalova_26a/Z0EYdwVmTU0BQFtvfXl4d35nbQ==/
>   -
>   
> https://google.com/maps/place/ул.+Чкалова,+26а,+Жуковский/@55.596237,38.1242583,17z
>- Похороны на Островецком кладбище:
>   - https://yandex.ru/maps/213/moscow/search/Островецкое+кладбище/
>   - https://google.com/maps/place/Островецкое+
>   кладбище/@55.5874548,37.9750703,15z
>- Потом поминки.
>
> Телефоны для связи:
>
>- +79857662490 Елена Проворова
>- +79262005750 Маша Проворова
>- +79853643536 Андрей Климов
>
> До церкви от платформы Отдых (Казанской жд) 15 минут пешком:
>
>-
>
> https://yandex.ru/maps/213/moscow/?ll=38.131577,55.597252&mode=routes&rtext=55.601722,38.136484~55.596249,38.126486&rtt=pd&ruri=ymapsbm1://geo?ll=38.136,55.602&spn=0.001,0.001&text=Россия,+Рязанское+направление+Московской+железной+дороги,+платформа+Отдых~ymapsbm1://geo?ll=38.126,55.596&spn=0.001,0.001&text=Россия,+Московская+область,+Жуковский,+улица+Чкалова,+26А&z=14
>
> Последние подходящие электрички:
>
>- Казанский – Выхино – Отдых
>- 10:30 – 10:48 – 11:07 (экспресс Спутник до Раменского)
>- 10:32 – 10:58 – 11:29 (со всеми остановками до Ипподрома)
>- 10:40 – 11:05 – 11:36 (со всеми остановками до Ипподрома)
>
> Андрей Климов
>
>
> вс, 8 мар. 2020 г., 23:56 Andrei Klimov :
>
>> Страшная новость в такой весенний день:
>>
>> Сегодня 8 марта неожиданно ушел от нас Леня Проворов.
>>
>> Я только что узнал об этом из его ленты в ФБ:
>> https://www.facebook.com/leonid.provorov.5
>> Пишут, что инфаркт.
>>
>> Недавно он вернулся из Италии, провел отпуск на горных лыжах в Альпах.
>> Ничего не предвещало...
>>
>> Для нас с Сергеем Романенко он был как бы "ученик": в ФМШ пришел на наш
>> "спецкурс" по Рефалу – наш первый опыт преподавания в 1971/1972 уч.году, –
>> и остался единственным рефальщиком из того набора. Потом 3-4 года разницы в
>> возрасте перестали что-то значить, и мы стали одним кружком друзей.
>>
>> ...Сейчас не идут слова. Лишь образ Лени светлый и теплый...
>>
>> Андрей Климов
>>
>


Re: Умер Леня Проворов

2020-03-10 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Друзья!

Прощание с Лёней в четверг 12 марта в 12 часов в Покровской церкви по
адресу:

   - г. Жуковский, ул. Чкалова, д. 26а:
  -
  
https://yandex.ru/maps/20571/zhukovskiy/house/ulitsa_chkalova_26a/Z0EYdwVmTU0BQFtvfXl4d35nbQ==/
  -
  
https://google.com/maps/place/ул.+Чкалова,+26а,+Жуковский/@55.596237,38.1242583,17z
   - Похороны на Островецком кладбище:
  - https://yandex.ru/maps/213/moscow/search/Островецкое+кладбище/
  - https://google.com/maps/place/Островецкое+
  кладбище/@55.5874548,37.9750703,15z
   - Потом поминки.

Телефоны для связи:

   - +79857662490 Елена Проворова
   - +79262005750 Маша Проворова
   - +79853643536 Андрей Климов

До церкви от платформы Отдых (Казанской жд) 15 минут пешком:

   -
   
https://yandex.ru/maps/213/moscow/?ll=38.131577,55.597252&mode=routes&rtext=55.601722,38.136484~55.596249,38.126486&rtt=pd&ruri=ymapsbm1://geo?ll=38.136,55.602&spn=0.001,0.001&text=Россия,+Рязанское+направление+Московской+железной+дороги,+платформа+Отдых~ymapsbm1://geo?ll=38.126,55.596&spn=0.001,0.001&text=Россия,+Московская+область,+Жуковский,+улица+Чкалова,+26А&z=14

Последние подходящие электрички:

   - Казанский – Выхино – Отдых
   - 10:30 – 10:48 – 11:07 (экспресс Спутник до Раменского)
   - 10:32 – 10:58 – 11:29 (со всеми остановками до Ипподрома)
   - 10:40 – 11:05 – 11:36 (со всеми остановками до Ипподрома)

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


вс, 8 мар. 2020 г., 23:56 Andrei Klimov :

> Страшная новость в такой весенний день:
>
> Сегодня 8 марта неожиданно ушел от нас Леня Проворов.
>
> Я только что узнал об этом из его ленты в ФБ:
> https://www.facebook.com/leonid.provorov.5
> Пишут, что инфаркт.
>
> Недавно он вернулся из Италии, провел отпуск на горных лыжах в Альпах.
> Ничего не предвещало...
>
> Для нас с Сергеем Романенко он был как бы "ученик": в ФМШ пришел на наш
> "спецкурс" по Рефалу – наш первый опыт преподавания в 1971/1972 уч.году, –
> и остался единственным рефальщиком из того набора. Потом 3-4 года разницы в
> возрасте перестали что-то значить, и мы стали одним кружком друзей.
>
> ...Сейчас не идут слова. Лишь образ Лени светлый и теплый...
>
> Андрей Климов
>


Умер Леня Проворов

2020-03-08 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Страшная новость в такой весенний день:

Сегодня 8 марта неожиданно ушел от нас Леня Проворов.

Я только что узнал об этом из его ленты в ФБ:
https://www.facebook.com/leonid.provorov.5
Пишут, что инфаркт.

Недавно он вернулся из Италии, провел отпуск на горных лыжах в Альпах.
Ничего не предвещало...

Для нас с Сергеем Романенко он был как бы "ученик": в ФМШ пришел на наш
"спецкурс" по Рефалу – наш первый опыт преподавания в 1971/1972 уч.году, –
и остался единственным рефальщиком из того набора. Потом 3-4 года разницы в
возрасте перестали что-то значить, и мы стали одним кружком друзей.

...Сейчас не идут слова. Лишь образ Лени светлый и теплый...

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


Re: Семинар по метавычислениям в понедельник 2 марта 2020 в ИПМ

2020-03-01 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Александр, доброе утро!

Жаль, но что ж делать...

Если параллелизм нас так не затянет, что первый доклад с обсуждением займет
намного больше времени, чем думали, то есть такие соображения для полезных
рефал-обсуждений после него:

   - Новый участник семинара Максим Кривчиков может дать у доски аннотацию
   его статьи, а мы обсудим:
  - Vasenin, V.A., Krivchikov, M.A. *Intermediate Representation of
  Programs with Type Specification Based on Pattern Matching*. *Program
  Comput Soft* *46*, 57–66 (2020).
  https://doi.org/10.1134/S0361768820010077
  - Это журнал "Программирование", но файл статьи на русском дают
  только за деньги (или у автора), а у Шпрингера можно взять бесплатно из
  академических институтов и, наверно, из части университетов. (А есть
  способы и не только из институтов.:-))


   - У меня есть затравочные вопросы по (отсутствующему, но потенциальному)
   месту Рефала в мире и его (гипотетическому) развитию в соответствующем
   направлении, которых на доклад недостаточно, но дискуссию могу разжечь. Вот
   этот доклад и статья доклад Сергея Романенко в ту же сторону, но есть что
   добавить:
  - С.А. Романенко. *Рефал и Агда как воплощения идеи
  “метаалгоритмического языка”* // *Научный сервис в сети Интернет:
  труды XIX Всероссийской научной конференции (18-23 сентября 2017 г., г.
  Новороссийск)*. — М.: ИПМ им. М.В.Келдыша, 2017. — С. 417-424 . —
  http://doi.org/10.20948/abrau-2017-63
  - Файл статьи доступен по этой ссылке.

До встречи!

Всего наилучшего,
Андрей Климов


On Sun, Mar 1, 2020 at 6:13 PM 'Александр Коновалов' via Метавычисления и
специализация программ  wrote:

> Добрый вечер всем!
>
> Я не успеваю подготовить доклад к завтрашнему семинару, поэтому снимаю
> завтрашнее выступление.
>
> Поэтому слушать завтра будем только доклад Станислава.
>
> Но я думаю, что мы найдём достаточно тем для обсуждения и без моего
> выступления.
>
> Простите, что так выходит.
>
>
>
> С уважением,
> Александр Коновалов
>
>
>
>
>
> *From:* Andrei Klimov [mailto:and...@klimov.net]
> *Sent:* Friday, February 28, 2020 2:04 PM
> *To:* metacomputation-ru ;
> refal@botik.ru
> *Subject:* Семинар по метавычислениям в понедельник 2 марта 2020 в ИПМ
>
>
>
> Добрый день всем!
>
> В *понедельник 2 марта 2020 в 15 часов* соберемся в 416 комнате ИПМ им.
> М.В. Келдыша РАН на семинар, чтобы послушать два доклада, связанных с
> языком Рефал:
>
>- *Станислав Санталов *(МГТУ им. Н.Э. Баумана)
>*Параллельное выполнение функций в Рефале-05*
>
> Основная идея — рассмотреть возможность вычисления функций в Рефале-05
> независимо, в различных потоках. Предлагается способ распределения нагрузки
> между потоками, сохранения порядка вычисления функций и доступа к
> глобальному полю зрения. Для реализации поставленных задач вводится новая
> сущность — а-терм, экземпляры которой организуются в дерево с атомарными
> счетчиками и специальный глобальный потокобезопасный безблокировочный
> список. Также создается несколько очередей а-термов: общая глобальная и по
> одной локальной для каждого потока. В конце приводятся результаты
> тестирования и анализ полученной схемы.
>
>
>- *Александр Коновалов* (МГТУ им. Н.Э. Баумана)
>*Алгоритм вывода свёрточной формы для функций обработки строк*
>
> Под *свёрточной формой* мы будем подразумевать представление функции,
> потребляющей некоторую структуру данных с помощью операции, знакомой
> функциональным программистам под именем foldr для лисповских списков, а в
> общем случае для типизированных языков типа ML и Haskell как *катаморфизм
> * этой структуры данных — термин из
> теории категорий. Для функций обработки строк (и выражений Рефала), где
> есть ассоциативная операция конкатенации, это будет катаморфизм для
> свободного моноида, который также можно рассматривать как гомоморфизм
> моноида конкатенации в некоторый другой моноид.
>
> Под строками в докладе будут пониматься однородные последовательности
> произвольных значений, которые могут быть пустыми и для которых определены
> конкатенация и итерация с обеих сторон. Для сравнения: в лисповских списках
> определено добавление одного элемента в начало (cons) и итерация только
> слева-направо.
>
> Представление функций, потребляющих строки, в свёрточной форме даёт
> некоторые преимущества:
>
>- Появляется возможность выполнять слияние (fusion) с функциями,
>порождающими строки — в результирующей функции промежуточная строка даже не
>будет создаваться. Это вообще верно для любого катаморфизма и является
>основой сокращённой дефорестации (shortcut deforestation).
>- Появляется возможность распараллеливать вычисление функции — строку
>можно разделить на части, свернуть независимо и результаты их свёрток
>скомбинировать в искомое значение. Это свойство верно только для свёрточной
>формы строковых функций.
>- Можно менять направление обработки строк — из свёрточной формы можно
>получить ф

Эпистемиология по Турчину

2020-02-28 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Пинхас, привет!

Большое спасибо за содержательную реакцию! Ты затронул, на самом деле,
очень тонкие (по моему разумению) вопросы. Поэтому уверен, их выявление и
обсуждение будет интересно всем (по)читателям философии Турчина. Поэтому
пересылаю твое письмо в общую рассылку. А мои "размышления на полях"
приписываю ниже.

On Thu, Feb 27, 2020 at 11:22 PM Pinchas Polonsky 
wrote:

> Андрей привет,
>
> Большое спасибо за статью, очень интересно.
>
> Но вызывает существенные  возражения сам базовый тезис о критерии знания -
> "им является только то, что можно использовать в качестве инструмента для
> генерации предсказаний".
>
> Контрпримеры:
>
> 1. Знание по истории искусства, например, биографии художника - явно
> помогает мне получить больше удовольствия от его произведений, т.е. это
> знание явно полезное. В то же время не могу представить себе, как это может
> помочь в предсказании, т.е. оно не является "знанием", с точки зрения
> данного определения.
>
> 2. Знание, непосредственно дающее эмоцию: как эстетическую (знание песен и
> стихов), так и "эмоцию познания" - мне приятно что я знаю разные умные
> вещи, хотя это никак не помогает предсказывать.
>
> Поскольку эмоции - это важнейшая вещь в жизни - то этими знаниями никак
> нельзя пренебречь
>
> 3. Общепринято, что большая гуманитарная подготовка улучшает (в целом)
> "душевную интеллигентность" - а это, наверное, улучшает возможность
> предсказаний в разных сложных случаях жизни. Но даже примерно мы не можем
> показать как это происходит - а значит, не имеем критерия какую информацию
> отнести здесь к знанию, а какую нет.
>
> Всё это мне кажется явным противоречием с первоначальным критерием.
>
> Не знаю, интересно ли это всем - поэтому посылаю только тебе, а не в
> группы. Если ты считаешь что это интересно - перешли в них.
>
> Спасибо
> Пинхас
>

В первую очередь, хочется отметить, что это нормально и естественно, когда
смысл слов отличается у разных людей. И дело не в "противоречии" между
ними, а в том, что одним словом называются разные вещи, особенно на мутных
границах смысла понятий. "Знание" – как раз такое понятие с весьма неясными
очертаниями – то, что Борис Шапиро называет "псевдопонятиями" и предлагает
работать с ними в пограничных областях путем уточнения контекста: в одном
контексте мы будет считать что-то "знанием", в другом нет. Когда мы что-то
произносим с претензией на определенность, мы подразумеваем какой-то
контекст, который слушателями может не иметься в виду или не угадываться.
Это стандартная ситуация для "жарких дискуссий" часто на пустом месте.

Поэтому первое соображение – что ты и Турчин высказываетесь в разных
контекстах, и можно было бы покопаться, почему так получилось: о чем именно
писал Турчин и перенос в какой именно другой контекст вызвал у тебя
ощущение неприятия. Может, здесь дело в этом, но, мне кажется, что не
настолько, чтобы вызвать существенный разговор.

Однако, может, Турчин действительно понимает категорию "знание" по-другому,
чем ты, и по-другому, скажем, чем Аристотель, или еще кто-то. Тогда
употребляя это слово мы будет говорить: "знание по Турчину – это...",
"знание по Аристотелю – это...", "знание по Полонскому – это...". И это
будут немного разные понятия, что нормально, надо только не запутываться,
когда, в каком контексте говорящим интересно и полезно одно, а когда
другое. Так что можно было бы закончить это обсуждение, сказав: "да,
'знание по Полонскому' – это другое, чем 'знание по Турчину'" – и
разойтись.

Но это было бы неинтересно. И думаю, что тут все-таки есть, о чем
поговорить.

Такие определения неформальных категорий, смысл которых уже существует в
наших головах до того, как они даются, имеют совсем другую природу и
структуру, чем, скажем, математические определения, где одни понятия
определяются через *уже известные* до этого акта определения.
Нематематические "определения", во-первых, уточняют (а не вводят) смысл
определяемых слов (в частности, уточняют контекст, который нас интересует),
а во-вторых, – что очень важно – *уточняют другие понятия, через которые
дается данное "определение" *– те, которые использованы в "правой части" –
там, где в случае математики мы бы ожидали уже известные точные понятия.
Здесь именно так: этим определением Турчин уточняет понятие *предсказания*!

Не помню, есть ли в этом тексте Турчина, или она в другом, или я услышал от
него устно, мысль о том, что "философское говорение" – это круговые
определения методом пошагового уточнения, пошаговой детализации: используя
неточные, изначально как-то пониманемые, неформальные категории мы даем
первые круг их взаимных определений; при этом мы их уточняем; затем снова
по ним ходим, употребляем в разных контекстах, нужных нам для каких целей и
задач, тем самым делая следующий круг уточнения, и так далее. Когда-то
можем прийти к точным понятиям, как в математике, а можем и не прийти, и,
как правило, не приходим, а удовлетворяемся текущим уровнем (не)ясности. –
Извините, я высказываюсь, наверно, мутно; Турчин сказал бы лучше

Семинар по метавычислениям в понедельник 2 марта 2020 в ИПМ

2020-02-28 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый день всем!

В *понедельник 2 марта 2020 в 15 часов* соберемся в 416 комнате ИПМ им.
М.В. Келдыша РАН на семинар, чтобы послушать два доклада, связанных с
языком Рефал:

   - *Станислав Санталов *(МГТУ им. Н.Э. Баумана)
   *Параллельное выполнение функций в Рефале-05*

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


   - *Александр Коновалов* (МГТУ им. Н.Э. Баумана)
   *Алгоритм вывода свёрточной формы для функций обработки строк*

Под *свёрточной формой* мы будем подразумевать представление функции,
потребляющей некоторую структуру данных с помощью операции, знакомой
функциональным программистам под именем foldr для лисповских списков, а в
общем случае для типизированных языков типа ML и Haskell как * катаморфизм
* этой структуры данных — термин из
теории категорий. Для функций обработки строк (и выражений Рефала), где
есть ассоциативная операция конкатенации, это будет катаморфизм для
свободного моноида, который также можно рассматривать как гомоморфизм
моноида конкатенации в некоторый другой моноид.

Под строками в докладе будут пониматься однородные последовательности
произвольных значений, которые могут быть пустыми и для которых определены
конкатенация и итерация с обеих сторон. Для сравнения: в лисповских списках
определено добавление одного элемента в начало (cons) и итерация только
слева-направо.

Представление функций, потребляющих строки, в свёрточной форме даёт
некоторые преимущества:

   - Появляется возможность выполнять слияние (fusion) с функциями,
   порождающими строки — в результирующей функции промежуточная строка даже не
   будет создаваться. Это вообще верно для любого катаморфизма и является
   основой сокращённой дефорестации (shortcut deforestation).
   - Появляется возможность распараллеливать вычисление функции — строку
   можно разделить на части, свернуть независимо и результаты их свёрток
   скомбинировать в искомое значение. Это свойство верно только для свёрточной
   формы строковых функций.
   - Можно менять направление обработки строк — из свёрточной формы можно
   получить функцию, читающую строку как слева-направо, так и справа-налево.
   Например, это позволяет преобразовать наивную функцию, вычисляющую значение
   многочлена, в схему Горнера.

На семинаре 29 октября 2019 года рассматривалась сокращённая дефорестация и
способ её реализации для языка Рефал. На нём было введено понятие
свёрточной формы для строковых функций в терминах Рефала и были рассмотрены
некоторые примеры функций в этой форме. Способ построения свёрточной формы
на том семинаре не давался.

В докладе 2 марта 2020 года мы определим свёрточную форму уже без
использования терминологии Рефала, а также рассмотрим алгоритм перевода
функций в свёрточную форму. Входом алгоритма будет функция, анализирующая
строку по одному элементу слева-направо (или справа-налево), выходом будет
свёрточная форма либо сообщение о том, что алгоритм не может её вывести.

Алгоритм применим для ограниченного класса функций, т.е. не для любой
функции, представимой в свёрточной форме, эту форму можно вывести. Однако,
этот класс достаточно широк, что будет продемонстрировано на нескольких
примерах.

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

В отличие от доклада 29.10.2019 для понимания этого доклада знания Рефала
не требуется.

--

Гости ИПМ, которым нужен разовый пропуск, напишите мне по email или пошлите
смс-ку с ФИО и НОМЕРОМ ПАСПОРТА на моб. +7 985 364 3536 до 12 час в день
семинара. Пропуск получите либо в бюро пропусков в окошке слева от вахтера
в главной проходной ("стеклянной", со стороны Миусской площади), либо
непосредственно у вахтера. Я вам сообщу, какой вид пропуска будет оформлен.

С ноутбуком, не зарегистрированным в списке на вахте на пронос в ИПМ, лучше
не приходить, чтобы не споткнуться о ситуацию, когда не пропустят, а
соответствующего начальства, чтобы подписать материальный пропуск на
внос-вынос, не окажется на месте.
--


До встречи!

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

>


Re: 26.02.2019 в 14:00 Семинар ИПС им. А. К. Айламазяна РАН

2020-02-21 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Fri, Feb 21, 2020 at 11:43 AM Sergei M. Abramov abram_AT_botik.ru <
refal@botik.ru> wrote:

>
> Увы, я искренне планировал быть.
>

Очень жаль!:-( Я предвкушаю общее обсуждение и чем больше неравнодушных
участников будет, тем лучше. Но что делать...


> Кто будет с WhatsApp-ом там?
>

У меня мобила с WhatsApp'ом. Я ее положу перед собой, чтобы замечать, когда
в ней что-то будет проскакивать (при выключенном звуке).

Сергей Михайлович, твое письмо было адресовано refal@botik и докладчику.
Добавляю в рассылку psimenar@gmail на случай, если Андрею Андреевичу не
было послано.

Всего наилучшего,
Андрей Климов

On Fri, Feb 21, 2020 at 11:43 AM Sergei M. Abramov abram_AT_botik.ru <
refal@botik.ru> wrote:

> День добрый, всем!
>
> Увы, я искренне планировал быть.  Однако, мне приказано быть в Москве
> нз заседании
>
> > ак.Каляев: Совет по приоритетному направлению Стратегии
> > научно-технологического развития
>
> Так как
>
> > Дополнительно будет организована трансляция доклада онлайн на
> > канале https://www.youtube.com/channel/UC1yFLfcOBeqHRTeZgs3UCzA
>
> и, на самом деле, все это будет не только во время, но и в архиве
> (канал НСКФ), то я обязательно посмотрю.
>
> Я если удастся совместить, то можно попробовать и вопросы задавать
> через WatsApp тех, кто будет в это время в зале, например.
>
> Кто будет с WatsApp-ом там?
>
> С уважением,
>
> Абрамов С.М.
> ab...@botik.ru
> мобильный: +7(903)2928308
>
>
> Вы писали 20 февраля 2020 г., 18:53:04:
>
> > Форвардирую объявление о семинаре в Переславле-Залесском.
> > Кому интересно – обратите внимание, что даже если вы не в тех
> > краях, можете послушать онлайн-трансляцию.
> > Андрей Климов
>
>
> > -- Forwarded message -
> > From: Andrey PSIRAS 
> > Date: Thu, Feb 20, 2020 at 10:35 AM
> > Subject: 26.02.2019 в 14:00 Семинар ИПС им. А. К. Айламазяна РАН
>
>
> > Здравствуйте, коллеги!
> > На следующей неделе 26 февраля в 14:00 состоится заседание No.71
> > общеинститутского семинара ИПС им. А.К. Айламазяна РАН  в зале заседаний
> Ученого совета ИПС.
>
> > Докладчик Протасов Владислав Иванович (МАИ)
>
> > Доклад на тему
> > "Основы теории и практика применения систем коллективного интеллекта"
>
> > Аннотация
>
> > Акторами систем КИ могут быть эксперты, компьютерные программы,
> > нейронные сети. Введена абсолютная шкала, система сертификации и
> > единица измерения интеллектуальной силы акторов - 1 ИНТ. Доказаны
> > базовые теоремы, получены и обоснованы эффекты усиления интеллекта в
> > системах КИ и снижения до малых величин вероятностей принятия ошибочных
> решений.
>
> > Приглашаются все желающие.
>
> > Дополнительно будет организована трансляция доклада онлайн на
> > канале https://www.youtube.com/channel/UC1yFLfcOBeqHRTeZgs3UCzA
>
> > --
> > С уважением, Андрей Ардентов
>
> > --
> > Уважаемые участники семинара, свои предложения о докладах присылайте на
> > адрес psime...@gmail.com
> > в формате:
> > Докладчик
> > Тема доклада
> > Аннотация доклада
> > Желательная дата и время доклада
> > Требуется ли проектор с ноутбуком
>
>
>
> --
> С уважением,
> Абрамов С.М.  mailto:ab...@botik.ru
>
>


День Валентина Турчина

2020-02-14 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый день всем!

Сегодня 14 февраля день не только Святого Валентина, но и нами более
любимого и ценимого Валентина Федоровича Турчина – его день рождения (1931).

Мы поминаем его и поздравляем друга с тем, что мы его знали или заочно
впитывали его идеи.

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

В качестве подарка нашему сообществу рад сообщить, что в прошлом году была
опубликована на популярном сайте – в двух выпусках интернет-журнала "Семь
искусств" – одна из последних статей Валентина Турчина в переводе на
русский:

   - *Диалог о метасистемном переходе*
  - http://7i.7iskusstv.com/y2019/nomer9/turchin/
  - http://7i.7iskusstv.com/y2019/nomer11/turchin/

Прекрасный перевод с английского сделал Владимир Балтер. Вот ссылки на
оригинал:

   - *A dialogue on Metasystem transition*, *World Futures*, 45:1-4, 5-57,
   1995. DOI: 10.1080/02604027.1995.9972553
   
  - https://www.tandfonline.com/doi/abs/10.1080/02604027.1995.9972553 –
  официальная страница статьи, куда ведет и указанный DOI. Официально
  PDF-файл бесплатно не дают, но... сами знаете.
  - http://pespmc1.vub.ac.be/Papers/Turchin/dialog.pdf – файл
  "препринта" на сайте ""Principia Cybernetica".
  -
  
https://pat.keldysh.ru/~roman/doc/Turchin/1999-Turchin--A_Dialogue_on_Metasystem_Transition.pdf
–
  этот же файл, но с обрезанными краями (для удобства чтения на экране и
  печати буклетом) на сайте Сергея Романенко, куда он поместил часть работ
  Турчина.

Всего наилучшего,
Андрей Климов

PS. Это письмо послано в Гугл-группу Metacomputation-Ru
 и в рассылку
refal@botik.ru, где сосредоточены большинство ценителей научного наследия
Турчина по computer science. Кроме того, в "скрытую копию" поставлены
адреса коллег и друзей, которые отсутствуют в этих рассылках.

Публикация "Диалога" на русском – хороший повод обменяться впечатлениями и
об этой статье, и о всех вопросах связанных с концепцией метасистемного
перехода Турчина.

Гугл-группа Metacomputation-Ru
, на мой взгляд, вполне
подходящее место для обсуждения как этой, так и других работ Турчина.
Пишите в нее на адрес metacomputation...@googlegroups.com, даже если вы в
нее еще не подписаны, она открыта и для неподписанных. А мы вас тут же
включим для получения ответов и всей переписки.


13 декабря 2019 – Коллоквиум по Теоретическому и Экспериментальному Программированию (КолТЭП-2019)

2019-12-12 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Приветствую всех!

В пятницу 13 декабря 2019 в новосибирском Академгородке состоится:

   - *Коллоквиум по Теоретическому и Экспериментальному Программированию,
   посвященный юбилею Валерия Александровича Непомнящего (КолТЭП-2019)*


   - с 9:50 до 20:10 по новосибирскому времени
   - с *5:50 до 16:10* по московскому времени

Web-страница коллоквиума:

   - https://persons.iis.nsk.su/en/Col-TEP-2019

*Будет трансляция на youtube-канале:*

   - https://www.youtube.com/channel/UCvMEarh2NIJHZykxL9iJ9Ww

Программа:

   -
   https://persons.iis.nsk.su/files/persons/pages/programmecoltep2019_0.pdf

(Если эта ссылка не сработает, значит программа изменилась и файл лежит по
новому адресу. Зайдите на страницу коллоквиума
 и возьмите программу по ссылке
из первого абзаца, который жирным шрифтом.)

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

Гляньте на программу. Уверен, что-то захочется послушать.

Конечно, запись на youtube останется, но вживую можно задавать вопросы
через youtube-чат.

Я выступлю с дискуссионным сообщением:

   - *Почему анализ и преобразования программ (метавычисления) никак не
   идут в широкую практику программирования?*

Всего наилучшего,
Андрей Климов


Re: Рефал-2, Рефал-5 и стиль программирования

2019-12-02 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Mon, Dec 2, 2019 at 5:30 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Как это ни парадоксально, но так и должно быть. Но *только* в сочетании
> с системой управления версиями и системой управления проектом
> (таск-трекером, баг-трекером: Bugzilla, Redmine, Jira, issues в GitHub…).
>
> При этом должна соблюдаться определённая дисциплина (пересказываю статью
> Gaperton’а «Миф о документации, продолжение»).
>
> 1.Любой код пишется только в рамках заявки («тикета», «бага»,
> «таска») в таск-трекере. Заявка — или ошибка (багрепорт), или задача,
> поставленная руководителем. Самодеятельность запрещена.
>
> 2.Обсуждение задачи должно вестись только в комментариях к заявке
> (не в чятиках, не в курилке, не в личной переписке). Таск-трекеры
> интегрируются с почтой, поэтому можно писать письма таск-трекеру
> с соответствующей темой, они сами подошьются к заявке (и разошлются
> другим, подписанным на заявку).
>
> 3.В сообщении коммита пишется понятный осмысленный комментарий
> и номер заявки, к которой код относится. Желательно в один коммит
> не валить правки разного назначения (стилевые, рефакторинг,
> содержательные, по разным задачам).
>
> 4.Коммит перед публикацией в системе контроля версий проходит ревью
> у другого программиста. Ревьюер должен проверить код как содержательно
> (решает ли он поставленную задачу), так и на читабельность, понятность,
> актуальность комментариев и соответствие стилю оформления. Ревьюер
> разделяет ответственность за код.
>
Александр, для бизнес-программирования, когда коммиты сразу идут в сборку и
в работу, действительно, это все полезно.
Но есть многие программистские задачи, когда это "over-management". Он не
менее вреден и *удорожает* разработку, чем "недо-менеджмент".
Например, во всех случаях, когда код не идет сразу в работу, а система
достаточно долго развивается и тестируется внутри коллектива разработчивов.
Скажем, таковой является разработка компилятора.

Каждому менеджменту свое место. Следование методологиям по книжкам – это по
молодости.

Андрей


Re: Re[2]: Нужна ли "Ленинская простота" в Рефале?

2019-12-02 Пенетрантность Andrei Klimov andrei_AT_klimov . net
пн, 2 дек. 2019 г., 12:19 Александр Гусев gusev_aleksandr_AT_mail.ru <
refal@botik.ru>:

> В сентябре над этим Андрей Климов смеялся: "почему каждых хочет написать
> свой компилятор вместо того, чтобы объединить усилия?"
>

Это был не я!🥴 Я-то как раз хорошо понимаю тех, кто хочет пореализовывать
Рефал. Сам-то этого наелся!🤗 Почему ж других лишать такого лакомства?😋

Более того, позитивно сопереживаю тем, кто творит новые синтаксисы и
семанитики (мн.ч.!) Рефала. А себе я много лет назад запретил этим
увлекаться, чтобы не мутить воду. (Но иногда чешется...🤯)

Андрей

Но я хочу, чтобы на нём решались реальные задачи, а не только сравнивались
> индексы производительности.
>
>
>


Re: Про параллелизм в Рефале

2019-12-02 Пенетрантность Andrei Klimov andrei_AT_klimov . net
пн, 2 дек. 2019 г., 1:26 Boyko Bantchev boykobb_AT_gmail.com :

> On Sun, 1 Dec 2019 at 23:24, Andrei Klimov andrei_AT_klimov.net
>  wrote:
> >
> > вс, 1 дек. 2019 г., 15:31 Александр Коновалов a.v.konovalov87_AT_mail.ru
> :
> >>
> >> Кстати, вопрос к знатокам терминологии параллельного и/или
> функционального программирования. Вот есть понятие чистая функция — это
> детерминированная функция без побочного эффекта. У этого понятия есть
> антоним в русском языке, кроме словосочетания «грязная» функция? Я пишу
> «грязная» в кавычках, поскольку в литературе его не встречал.
> >
> >
> > Александр, устно мы всегда говорили и говорим "грязная функция".
> >
> > В русском письменном языке более скованные традиции, чем в английском.
> Там они легко тащат разговорный жаргон в профессиональную терминологию. А
> мы что-то из себя изображаем.
> >
> > Я бы приветствовал использование "грязный" в текстах, но не знаю,
> сложилась ли уже такая традиция.
>
> Я бы предложил чистая/нечистая.  Мне кажется, это и лучше соответствует
> английским словам pure/impure. По-английски не dirty function же, всё-таки
> :)
>

Да, "нечистая" - это хорошо. Особенно для письменного текста. А устно я по
себе замечаю, что все время говорю "грязная". Не знаю, какая "фрейдуха" в
это замешана. Может, для яркости речи.🥴 Или чтоб шпильку
"грязно-функциональные" отпустить?🤪

Андрей

>


Re: Про параллелизм в Рефале

2019-12-01 Пенетрантность Andrei Klimov andrei_AT_klimov . net
вс, 1 дек. 2019 г., 15:31 Александр Коновалов a.v.konovalov87_AT_mail.ru <
refal@botik.ru>:

> Кстати, вопрос к знатокам терминологии параллельного и/или функционального
> программирования. Вот есть понятие *чистая функция* — это
> детерминированная функция без побочного эффекта. У этого понятия есть
> антоним в русском языке, кроме словосочетания «грязная» функция? Я пишу
> «грязная» в кавычках, поскольку в литературе его не встречал.
>

Александр, устно мы всегда говорили и говорим "грязная функция".

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

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

Андрей

>


Re: Список всех простых чисел

2019-10-10 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Thu, Oct 10, 2019 at 6:32 PM Sergei M. Abramov abram_AT_botik.ru <
refal@botik.ru> wrote:

>
> Вот, хочу сказать, что меня удивило:
>
>  ns' = filter (\ k ->  (gcd pp k) == 1) ns
>
> работает немного медленнее, чем
>
>  ns' = filter ((== 1).(gcd pp)) ns
>
> Вот нифига ж себе?
>

В голову приходит такая гипотеза: ко второму варианту успешно применяются
какая-нибудь дефорестация, а на первом она ломается, так как второй
удовлетворяет некоторому шаблону (в аргументе fold'а композиция закарренных
функций), а первый воспринимается как общий вид и оставляется как есть.

Конечно, нам суперкомпиляторщикам это странно: оба выглядят так, что
неглубокая суперкомпиляция по простой стратегии должна их брать.

Кстати, меня все-таки удивляет, что Simon P-J со
своим аспирантом Maximilian Bolingbroke не смогли подобрать вариант
суперкомпиляции, который работал бы в GHC за разумное время, как хотел
Simon (он об этом говорил). Подозрение такое: если остановится на
достаточно простых свистке и обобщении, то не набирался диссер
Bolingbroke'у. А когда увлеклись "научностью" для диссера (он весьма
солидный) , то не
получилось устойчиво (по времени) работающего свистка.

А может они потом сделали в GHS более богатую версию дефростации, которая
впитала какие-то идеи суперкомпиляции. Не знаю. Не натыкался на
соответствующие работы.

Всего наилучшего,
Андрей


Семинар памяти В.Ф.Турчина в среду 10 апреля 2019 в ИПМ им. М.В. Келдыша РАН

2019-04-06 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый день всем!

7 апреля – день памяти Валентина Федоровича Турчина (1931–2010).

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

Соберемся в *среду 10 апреля с 11 часов в 416 комнате* ИПМ им. М.В. Келдыша
РАН.

*Программа семинара* (время начала докладов, кроме первого, и перерывов –
приблизительные)

   - 11:00
   *Александр Коновалов* (МГТУ им. Н.Э. Баумана)
   *Дефорестация для Рефала*
  - В 1988 году Philip Wadler предложил дефорестацию — метод
  оптимизации программ на функциональных языках. Дефорестатор для некоторых
  композиций функций в исходной программе создаёт более оптимальные
  специализированные функции. Преобразуемая композиция должна включать
  функции, одна из которых порождает промежуточные структуры данных (списки
  или деревья), а другая их тут же потребляет. Построенная
специализированная
  функция промежуточные структуры данных не порождает. При этом, функции,
  входящие в исходную композицию, должны иметь т.н. «бездревесную форму»
  (treeless form) — написаны на некотором синтаксическом
подмножестве языка.
  - Дефорестацию можно описать как суперкомпиляцию, которой не
  требуется выполнять обобщения. В дереве конфигураций, построенном для
  композиции бездревесных функций, новые конфигурации рано или поздно
  дословно (с точностью до переименования параметров) будут повторять
  предыдущие.
  - В своём докладе я расскажу про дефорестацию Wadler'а, приведу
  неформальные обоснования того, почему для бездревесных функций
не требуется
  обобщения при суперкомпиляции, и предложу идеи адаптации дефорестации к
  языку Рефал. К сожалению, предложу только идеи, готового дефорестатора
  Рефала у меня пока нет.


   - Кофе-брейк


   - 12:30
   *Антонина Непейвода *(ИПС им. А.К. Айламазяна РАН)
   *Отрицательные условия при суперкомпиляции строковых программ *
  - Идеи, заложенные в модель вычислений нормальных алгорифмов,
  предложенную А.А. Марковым, дают возможность построить логически
замкнутый
  суперкомпилятор для программ, не содержащих повторных строковых
переменных
  (е-переменных в смысле Рефала). Для него оказалось возможным описать
  систему вывода отрицательных условий, которая не приводит к
неограниченному
  разрастанию их количества. На базе этой системы реализованы алгоритмы
  развертки, вложения и обобщения в модельном суперкомпиляторе MSCP-A.
  - Это продолжение исследований по теме доклада "Применение уравнений
  в словах при преобразовании программ над строковым типом", который мы
  заслушали год назад на нашем семинаре.
  - Нынешний доклад будет по материалам презентации "Verifying String
  Replacing Procedures by Supercompilation" на workshop'е VPT 2019.
  - Также докладчик поделится впечатлениями о Seventh International
  Workshop on Verification and Program Transformation (VPT 2019),
только что
  прошедшем (2 апреля) в Genoa, Италия, и некоторых интересных докладах:
  https://2019.programming-conference.org/track/vpt-2019-papers#program


   - Кофе-брейк и обед


   - 14:30
   *Игорь Адамович* (ИПС им. А.К. Айламазяна РАН)
   *Интерактивный специализатор JaSpe подмножества языка Java, реализующий
   метод частичных вычислений для объектно-ориентированного языка*
  - В докладе обсуждаются принципы интерактивной специализации, лежащие
  в основе текущей версии специализатора JaSpe, приводится пример успешной
  специализации программы, симулирующей работу со стеком.
  - Основная современная трудность внедрения метавычислений в практику
  (как суперкомпиляции, так и частичных вычислений и других методов) в том,
  что они не задают одного автоматического режима оптимизации программ, а
  содержат слишком много возможностей, которые машина не в силах перебрать
  или сделать среди них правильный выбор алгоритмическими методами
с разумной
  сложностью. Необходима развитая диалоговая система, в которой
машина будет
  гарантировать эквивалентность преобразований программ, а человек –
  предоставлять в удобном ему виде информацию системе о том, как выбирать
  преобразования среди допустимых степеней свободы.
  - Исходя из данных предположений был спроектирован интерактивный
  специализатор JaSpe, работающий методом частичных вычислений. Он
погружён в
  среду разработки Eclipse и специализирует объектно-ориентированные
  программы на языке Java. Специализатор еще не завершен. Данный
доклад – это
  work-in-progress report, демонстрирующий текущее состояние разработки
  методов и реализации.

--

Гости ИПМ, которым нужен разовый пропуск, напишите мне по email или пошлите
смс-ку с ФИО и НОМЕРОМ ПАСПОРТА на моб. +7 985 364 3536. Разовые пропуска
получите в бюро пропусков в окошке слева от вахтера в главной проходной
("стеклянной", со стороны М

Re: Сравнение веток Рефала

2019-03-01 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Fri, Mar 1, 2019 at 5:17 PM Sergei M. Abramov abram_AT_botik.ru <
refal@botik.ru> wrote:

> День добрый, всем!
>
> > ... По мере тасования памяти скорость падает до 2 раз.
>
> Тема диссертации Светланы Подколзиной (Трубицыной): реализация Лиспа с
> массивным представлением по направлению CDR.
>
> CAR -- ссылка, CDR -- соседняя ячейка (близось адресов).
>
> Тракторная сборка мусора, которая как бульдозер сдвигала все нужное,
> собирая свободные ячейки в крупные массивы.
>
> С чем боролись?  Кэша тогда не было, а вот виртуальная память была.  И
> по мере "тасования памяти" шаг в с;едующую ячейку списка с большой
> вероятностью приводил к пэйдж-фолту.
>
> Вот с этим и боролись.
>

И сейчас есть с чем и за что бороться:

   - произвольный доступ в оперативную память – в кеш: один, другой... всё
   дольше и дольше, а в конце в большую память – 50-100 тактов
   - а доступ подряд идет с предвыборкой в кеш на максимальной скорости
   памяти

Списковая память была еще терпима в 70-е годы, когда, например, на БЭСМ-6
 доступ в память (2 мкс) был того
же порядка, что и одна логическая операция (0.5 мкс) и совпадал с временем
плавающей арифметики. Да и тогда на БЭСМ-6 доступ подряд шел по разным
кубам памяти и был быстрее. А сейчас разница между произвольным доступом и
доступом по подряд идущим адресам на 1-2 десятичных порядка – вопиюща. То
есть пришло время векторных представлений в т.ч. и символьной информации.
Хотя кеши тоже стали большими и рабочие множества в задачах обработки
символьной информации стали больше в них помещаться, но по идее векторное
представление должно обгонять.

Очень было бы интересно провести сравнительные измерения такой же
тщательности, как команда Леонида Эйсымонта делала в 80-е годы. Нужно брать
задачи/тесты, которые можно промасштабировать от помещающихся в кеш до
превышающих во много раз и посмотреть на графиках как  списковая память
проваливается. Обсуждающийся пример хорош. Но хотелось бы еще иметь
прототипы реальных задач, например, обходы больших графов графов
(коммивояжер и др.), компьютерная алгебра (базис Гребнера, феймановские
диаграммы) и т.п.

Я ставлю на то, что векторное представление заметно обгонит, когда объемы
данных превысят кеш во много раз.
(Не говоря уж об экономии памяти на ссылки.)

Андрей


> Так что, грусть по массивному представлению имеет давнюю историю.
>
> А тот поход за массивным лиспом помню с удовольствием...
>
> Мы опирались на реализацию лиспа на фортране с исходными текстами.
> Фортрановская колода, не очень здоровая.  В начале которой просто были
> описаны два COMMON массива: CAR(100) и CDR(100).  ;-) Ну а мы
> это дело перелопатили потом.
>
> Всего доброго,
>
> Сергей Абрамов
>
>


Re: Сравнение веток Рефала

2019-02-27 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Wed, Feb 27, 2019 at 3:58 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Добрый день, Василий!
>
> Кстати, Ваша реализация тоже фигурирует в моём обзоре реализаций Рефала.
> Реализация Красовского и Белоуса там упомянута как Рефал-2, Ваша — как
> Рефал/2. В первом случае чёрточка между «Рефал» и «2» горизонтальная
> (дефис), во втором — наклонная (дробь).
>

Насколько я помню, при смене названия с Рефал/2 на Рефал-2 не было никакого
подтекста и входные языки Рефал/2 и Рефал-2 совпадали. (Извините, если
кого-то из реализаторов Рефала обидел и не выделил его версию как
самостоятельную.)

В 60-е годы были случаи использования слеша, отделяющего номер в названии
языка: AMBIT/2, PL/1 (точнее PL/I, но читается как "пи эль one"). Также
встречался пробел, дефис или его отсутствие: Algol 60, Modula-2, SNOBOL4.
Кроме версии языка возникла потребность указывать компьютер или OS, на
которой реализован язык, и слеш стал встречаться как разделитель название
языка и системы. Это нам пришлось по душе, и решили в названии языка
использовать дефис, чтобы не было путаницы и приобрели естественный смысл
такие аббревиатуры, как: Рефал-2/БЭСМ-6, Рефал-2/EC.

Всего наилучшего,
Андрей


Re: Сравнение веток Рефала

2019-02-26 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Tue, Feb 26, 2019 at 2:17 PM Arkady Klimov arkady.klimov_AT_gmail.com <
refal@botik.ru> wrote:

> Нет ли тут каких эффектов, что если мы по длинному списку бежим быстрее
> (меньше действий), то все начинает работать медленнее? Может из-за каких-то
> свойств кэша?
>

Да, кеш – первый подозреваемый на такой эффект. Интересно, было бы провести
измерения с небольшим шагом (как сделал Юра в недавнем письме или еще чаще)
и увидеть скачок, когда проходится некоторый размер. Чем меньше действий на
один доступ к памяти, тем сильнее он обычно виден.

Андрей


Re: Сравнение веток Рефала

2019-02-25 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Mon, Feb 25, 2019 at 8:14 PM Arkady Klimov arkady.klimov_AT_gmail.com <
refal@botik.ru> wrote:

>
> PS. Вот. только что пришло письмо, кто-то (не понял кто) уже кажется
> сделал это на Рефале-2.
>

swi_AT_cnshb.ru – это Василий Стеллецкий.
В настройках мейлера он не задал своё имя, поэтому в строке From не видно.

Василий, поправьте, пожалуйста, чтобы ваши читатели не гадали.
Спасибо!

Андрей


Re: Сравнение веток Рефала

2019-02-20 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Wed, Feb 20, 2019 at 8:41 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

>
>
> (Получилось очень длинно. Интересно, кто-нибудь дочитает до конца?)
>

Дочитал! 😜

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

Всего наилучшего,
Андрей Климов


Re: Потенциальная востребованность

2019-02-20 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Wed, Feb 20, 2019 at 8:46 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Добрый вечер, Леонид!
>
> *«В семидесятых-восьмидесятых были даже Лисп-машины и Пролог-процессоры,
> позиционировались для решения задач ИИ, особенно это Лиспа касалось.»*
>
> Вы забыли упомянуть сопроцессор Рефала:
>
> http://www.keldysh.ru/papers/2003/prep99/prep2003_99.html
>

Кстати, прекрасная тема для магистерской дипломной работы для пары-тройки
студентов, которые могут работать вместе:

   - Реализация рефал-процессора на FPGA.

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

Не думаю, что стоит брать язык сборки, разработанный Сергеем Романенко для
Рефала-2, как в упомянутой работе по сопроцессору.
Может, лучше бы подошел соответствующий промежуточный язык – набор
элементарных операций из реализации Рефала Плюс, но он, кажется, нигде не
описан.
Думаю, взглянув свежим взглядом, да еще с позиции современных технологий,
можно сделать проще.
Может, стоит взять за основу язык типа RL, который появился в руках Сергея,
когда он делал самопримение специализатора (ссылка взята со страницы
публикаций Сергей ):

   - С.А.Романенко. Генератор компиляторов, порожденный самоприменением
   специализатора, может иметь ясную и естественную структуру. - М.: ИПМ им.
   М.В. Келдыша АН СССР, 1987, препринт N 26. - 35 с.  PDF
   

DJVU
   


Андрей


Абрау-2019 – зарегистрируйте название доклада (сегодня 16.2.19!)

2019-02-16 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Дорогие коллеги!

См. внизу объявление о *конференции "Научный сервис в сети Интернет" у
Черного моря в сентябре:*
http://agora.guru.ru/display.php?conf=abrau2019

Не обращайте внимание на вроде бы узко-тематическое название и
рассматривайте ее как обще-программистское собрание в приятной компании в
замечательном месте в комфортной обстановке. В прошлом году произошло
приятное событие: сборник трудов был *зарегистрирован в Scopus*'е. Теперь
это сильный дополнительный стимул принять участие.

Тезисы докладов и статьи будут приниматься еще долго. Но программный
комитет просит *до сегодня 16 февраля *

   - *зарегистрироваться потенциальным авторам *на странице:
http://agora.guru.ru/display.php?conf=abrau2019
   - *зарегистрировать доклад, дав его название,* здесь
*: *http://agora.guru.ru/display.php?conf=abrau2019&page=thesises

При сомнении, какому направлению из выпадающего меню приписать свою тему,
выбирайте последнее, куда, считается, должно подойти всё:

   - 11. Системное и инструментальное программное обеспечение, языки и
   модели программирования, формальные методы... [список далеко не
   исчерпывающий!]

Дав сегодня название доклада, вы сильно поможете организаторам составить
более впечатляющую заявку в РФФИ с яркой предварительной программой. (Ну
вот такая это бюрократическая игра.)

Это действие никак не обязывает вас фиксировать именно это название (еще
сможете переделать), готовить тезисы или статью и участвовать лично. Можете
еще много раз передумать. Сейчас вы просто заявляете себя, помогаете и
подписываетесь на рассылку о дальнейшей информации об Абрау'19.

Размышляйте так: "Если бы поехал, я бы рассказал вот это". И сформулируйте
"это".

Давайте наберем тематические секции по интересным самим нам направлениями!

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

PS. По всем вопросам можете писать мне в личку.


-- Forwarded message -
From: Абрау-2018 
Date: Mon, Feb 4, 2019 at 10:49 PM
Subject: Абрау-2019

23-28 сентября 2019 г. в пансионате "Моряк" возле Абрау-Дюрсо пройдет
XXI Всероссийская
конференция "Научный сервис в сети Интернет". Основные направления
конференции представлены на сайте http://agora.guru.ru/abrau2019 , однако
приветствуются и доклады по смежным проблемам.

Сроки подачи информации в отличие от предыдущих лет существенно
сократились: в связи с очередным изменением условий поддержки конференции
со стороны РФФИ последний срок представления названия доклада -- 16
февраля, т.е. до завершения формирования программы конференции остается 10
дней. Если Вы не успеваете представить полный текст доклада к этому сроку
-- не беда, можно ограничиться одним названием, но его введите, пожалуйста,
на сайте до обозначенного срока, предварительно зарегистрировав всех
авторов в качестве участников конференции. Разумеется, при необходимости в
дальнейшем название доклада можно будет скорректировать. Просим также
зарегистрировать всех планируемых участников конференции, приезжающих без
доклада, так как РФФИ заранее требует от нас список всех участников.

По результатам конференции будет издан сборник трудов. Сборник получит ISBN
и ISSN, статьи будут проиндексированы в РИНЦ и получат DOI. Сборник трудов
конференции 2018 года был полностью проиндексирован в Scopus, надеемся, что
и в этом году значительная часть лучших докладов будет проиндексирована в
Scopus.

Будем рады видеть Вас в сентябре на нашем привычном месте!

Всего доброго,

Программный комитет


Re: Потенциальная востребованность

2019-02-15 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Fri, Feb 15, 2019 at 7:25 PM Sergei M. Abramov abram_AT_botik.ru <
refal@botik.ru> wrote:

> > Это просто весеннее обострение...
>
> Ну, еще не весна... Хотя, Сретенье Господнее!
>

Слякоть... Птичка напилась из лужицы... Значит, к весне.😊

Андрей


День Валентина

2019-02-14 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Дорогие коллеги и друзья,

Сегодня день Святого Валентина и день Валентина Федоровича Турчина!
День нашей любви к нему и памяти о нем!
Ему исполнилось бы 88 лет.

Он создал новые философские подходы и научные направления.
Заразил нас ими, дал нам такой пинок, что мы до сих пор летим по близким к
заданным им траекториям.
Его роль в нашей жизни невозможно выразить: все слова будут слабее живых
переживаний и фактов.
Он с нами, в нашей памяти и наших делах, которые хоть немного реализуют его
великие замыслы.

Помянем Валентина Федоровича и Татьяну Ивановну, ушедшую вслед за ним в
прошлом году.
Светлая память!

Андрей


Re: Коллапсируюшее представление данных

2019-02-13 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Переношу реплику Аркадия под этот сабж.
А то мысли про джунгли окажутся потерянными в нескольких тредах.
Андрей

On Wed, Feb 13, 2019 at 6:26 PM Arkady Klimov arkady.klimov_AT_gmail.com <
refal@botik.ru> wrote:

> То, о чем написал Сергей действительно полезно на практике. У меня
> написана некая система работы с полиномами, и там обрабатываются
> неравенства вида P(x,y,...) < K, где K - целое число, а P не содержит
> свободного члена. В списке таких неравенств часто надо находить неравенства
> с общей левой частью (подобные). Конечно, полиномы должны иметь
> канонизированное представление. Тогда, джунгли очень даже полезны будут при
> поиске пар подобных неравенств посредством образца
>e1 (tA e) e2 (tA e) e3
> Ну и память экономится, если таких пар много.
>
> А насчет сборки мусора - так Антон и написал же, что ее нет, а есть
> счетчики ссылок. А нужна она только чтобы зависшие ящики подчищать. Но мне
> кажется, что это особо и не нужно - всегда можно руками вовремя обнулить.
> А если и вводить, то надо и "слабые" ссылки вводить.
>
> Другое дело, что возможно счетчики ссылок будут мешать распараллеливанию
> "над общей памятью". Даже если функции чистые и формально независимые, при
> параллельном выполнении придется корректировки ссылок делать защищенно,
> скажем atomic. Вопрос к залу: это не очень тормозить будет? Не потеряется
> ли эффект от распараллеливания? Надо б проверить.
> Аркадий К.
>
>
> вт, 12 февр. 2019 г. в 17:22, Eisymont Leonid verger-lk_AT_yandex.ru <
> refal@botik.ru>:
>
>> Так это массивное представление оправдало себя или нет? В сухом остатке
>> ведь - сборка мусора на ровном месте(раньше не было), какие-то переполнения
>> стеков. А в программах копирования списков не так уж и много, откуда этот
>> миф? Ради чего?
>> Наукообразия? Кто в больших программах про эти "джунгли" думать будет?
>> Имеются несколько недоработанных реализаций? Какая лучше всех, чем
>> пользоваться можно? Бенчмарки были или нет? М.б. просто рефал-2 взять и все
>> дела. Восстановить распараллеливание там хотя бы через машинные операции и
>> все. Прирост скорости будет в сотни раз на современных системах, а не
>> проценты или разы. Как быть?
>> Л.Эйсымонт
>>
>>
>> 12.02.2019, 15:53, "Sergei M. Abramov abram_AT_botik.ru" > >:
>>
>> День добрый, всем!
>>
>> Антон, спасибо за детали. Думаю снято много обвинений в сторону
>> массивного представления ;-)
>>
>> Коллеги, и это не все фенечки еще описаны. Как мелкий пример: как мне
>> помнится (Антон поправит), были еще реализованы "коллапсирующие
>> джунгли" или "табулирование сравнения термов-скобок".
>>
>> Суть простая:
>>
>> 0. Терм-скобка это поинтер на первое звено p и длина L.
>>
>> 1. У сравнения двух термов-скобок на равенство есть масса быстрых слуюаев:
>> 1.0 Если L1 == 0 && L2==0, то термы равны
>> 1.1 Если L1 /= L2, то термы не равны,
>> 1.2 Если p1==p2 && L1==L2, то термы равны
>>
>> 2. Наконец, если нам пришлось делать длинное сравнение и в конце
>> выяснилось, что термы таки равны, то мы делаем "коллапсирующие
>> джунгли" -- делаем присваивание: p2 = p1, L2=L1 (второе лишнее, но
>> пусть будет). Тут и память освободилась и следующий раз сравнение на
>> равенство пройдет быстрее ;-)
>>
>> О! Ран-тайм рефала плюс полировался с любовью ;-)
>>
>> Всего доброго,
>>
>> Сергей Абрамов
>>
>>
>> Anton Orlov orlovan_AT_gmail.com.
>>
>> Вы писали 11 февраля 2019 г., 21:39:24:
>>
>>  Добрый день!
>>
>>  On Mon, Feb 11, 2019 at 12:50 PM Arkady Klimov
>>  arkady.klimov_AT_gmail.com  <
>> refal@botik.ru> wrote:
>>
>>  Может ли кто ответить на такие вопросы по реализации Рефал+ на C++
>>  (в статье они не обсуждается - не тот уровень абстракции):
>>
>>  1.Какая организована работа с памятью? Какой менеджер памяти
>>  используется? Свой или каждый новый чанк через malloc запрашивается?
>>
>>  Сделан свой аллокатор по алгоритму близнецов, описанному Кнутом
>>  (https://en.wikipedia.org/wiki/Buddy_memory_allocation). Это делал
>> Андрей Слепухин.
>>
>>  2.Используются ли счетчики ссылок? Или полная сборка мусора время от
>> времени? Какой сборщик мусора?
>>
>>  Используются счётчики ссылок. Полной сборки мусора нет, поэтому
>>  память может течь (например, возможны циклы через ящики). Сборка
>>  мусора была в планах, но так и не была реализована (на практике
>> надобность в ней не ощущалась).
>>
>>  3.Есть ли версия конкатенации inplace (когда память для выражения
>>  взята "с запасом")? Андрей уже ответил частично.
>>
>>  В алгоритме близнецов все выделяемые куски имеют размер 2^n.
>>  Выражение помещается посередине нового куска, а справа и слева
>>  естественным образом получается запас по месту. При конкатенации,
>>  если этой дырки рядом с одним из выражений достаточно, то копируется
>>  только одно из выражений, а новая память не выделяется.
>>
>>  Например, если выражение длины N строится дописыванием в
>>  конец/начало по одному терму, то это требует O(log N) аллокаций
>>  (амортизированная стоимость O(1)).
>>
>>  Ант

Re: Коллапсируюшее представление данных

2019-02-13 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Wed, Feb 13, 2019 at 9:55 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Прокси может ссылаться на прокси.
>
> Допустим, у нас есть три равных терма: A, B и C.
>
> Сравнивая A и B, мы превращаем A в прокси, который ссылается на B: A → B.
>
> Сравнивая затем B и C, делаем прокси B: B → C.
>
> Получается цепочка прокси: A → B → C.
>
> Конечно, при следующем обращении к A цепочка коллапсирует до A → C.
>

Да, верно. Ну это я пытался пооптимизировать сверх основного утверждения и
проврался.🤕
Главное – каждое обращение спрямляет ссылку. Остальное – мелочи.

Андрей


> Александр Коновалов
>
>
>
> *From:* Andrei Klimov andrei_AT_klimov.net 
> *Sent:* Wednesday, February 13, 2019 9:42 PM
> *To:* refal@botik.ru
> *Subject:* Re: Коллапсируюшее представление данных
>
>
>
> On Wed, Feb 13, 2019 at 2:42 PM Александр Коновалов
> a.v.konovalov87_AT_mail.ru  wrote:
>
> Андрей!
>
>
> *«Головная ячейка представления скобочного терма может быть прокси,
> то есть ссылкой на окончательное представление или снова
> на прокси.»«Одновременно спрямлять ссылки.»*
>
> Получаем лес непересекающихся множеств:
>
> https://ru.wikipedia.org/wiki/Лес_непересекающихся_множеств
>
> У этого метода самая лучшая временна́я сложность после константы —
> обратная функция Аккермана. Недостаток — требуется дополнительное поле
> ранга для выбора чего чему присваивать. Но ранг вроде тоже небольшой
> (в книжке Кормена, Лейзерсона и др. вроде про это есть), скорее всего байта
> хватит.
>
>
>
> Я не вижу смысла делать операцию объединения множеств, представленных
> таким "лесом", для которой в этой статье обсуждают сложность и нужен ранг.
> Каждая ссылка на прокси, спрямляются один раз в жизни, когда по ней
> произойдет доступ, проходом от прокси к реальному представлению. И прокси
> надо сразу устанавливать на представление терма. Я зря написал, что прокси
> может ссылаться на прокси. Это я недодумал.
>
>
>
> Других операций над прокси не выполняется. Тут вроде бы нечего
> оптимизировать.
>
>
>
> Всего наилучшего,
>
> Андрей
>
>
>
>  С уважением,
>
> Александр Коновалов
>
>
>
> *From:* Andrei Klimov andrei_AT_klimov.net 
> *Sent:* Wednesday, February 13, 2019 2:11 PM
> *To:* refal@botik.ru
> *Subject:* Re: Коллапсируюшее представление данных
>
>
>
> Александр, еще раз добрый день!
>
>
>
> Я понял, о чем вы писали и зачем требуется отношение порядка. Объясню
> своими словами на подвешенных скобках.
>
>
>
> Пусть (eX) и (eY) входят в два выражения e1(eX)e2 и e3(eY)e4, и при их
> сравнении выяснилось, что (eX) = (eY).
>
> И пусть на представления (eX) и (eY) есть еще ссылки из других выражений.
>
> Тогда замена ссылки на (eX) в первом выражении на ссылку на (eY) не
> освобождает память представления (eX).
>
> И наоборот, замена ссылки на (eY) во втором на ссылку на (eX) не
> освобождает память представления (eY).
>
> Более того, теряется информация про равенство (eX), или соответственно
> (eY), равным термам в других выражениях.
>
>
>
> Хотелось бы, чтобы был разумный способ выбрать, что на что заменять, чтобы
> какое-то из представлений равных термов лидировало и затягивало бы в себя
> ссылки с других.
>
> Например, в реализации со счетчиками ссылок на скобочный терм, можно
> переносить на представление с большим счетчиком.
>
> А если есть отношение порядка между представлениями, то можно выбирать
> наименьшее.
>
> Если сборка мусора не меняет расположение представлений в памяти (что, как
> правило, имеет место быть), то подходящий порядок задают адреса.
>
> Но все равно процесс "затягивания" ссылок на самое "тяжелое" представление
> будет медленным и плохо предсказуемым.
>
>
>
> Чтобы не терять информацию об уже обнаруженных равенствах термов, лучший
> (как мне помнится) вариант, который был придуман такой:
>
> Головная ячейка представления скобочного терма может быть прокси, то есть
> ссылкой на окончательное представление или снова на прокси.
>
> Тогда при выяснении равенства (eX) и (eY) в вышеприведенном примере
> головная ячейка, скажем, (eY) становится прокси, ссылающимся на головную
> ячейку (eX). Подмена ссылки в выражении тоже делается.
>
>
>
> Теперь при каждом вхождении в скобки нужно проверять, не на прокси ли мы
> попали, и, если да, идти дальше. Одновременно спрямлять ссылки.
>
>
>
> Вот такая сложность картины, плюс ее непредсказуемость для
> Рефал-программиста, и привели к тому, что эти идеи остались в истории.
>
> Теперь я вспомнил, что отсутствие "идеальных" решений и есть главная
> причина, из-за которой идея не пошла в массы = в реализации Рефала.
>
> Спасибо, вот сейчас мы нечаянно на них вышли и запротоколировали.
>
> Может, где-то когда-то кому-то пригодится.
>
>
>
> И по-прежнему, интересно узнать, использовалось ли такое коллапсирование
> или обсуждавшаяся табуляция в каких-нибудь системах.
>
> Если кто наткнется или уже знает, напишите, пожалуйста.
>
>
>
> Всего наилучшего,
>
> Андрей
>
>
>
> On Wed, Feb 13, 2019 at 1:08 PM Andrei Klimov andrei.klimov_AT_gmail.com <
> refal@botik.ru> wrote:
>
> Александр, тогда

Re: Коллапсируюшее представление данных

2019-02-13 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Wed, Feb 13, 2019 at 2:42 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Андрей!
>
>
> *«Головная ячейка представления скобочного терма может быть прокси,
> то есть ссылкой на окончательное представление или снова
> на прокси.»«Одновременно спрямлять ссылки.»*
>
> Получаем лес непересекающихся множеств:
>
> https://ru.wikipedia.org/wiki/Лес_непересекающихся_множеств
>
> У этого метода самая лучшая временна́я сложность после константы —
> обратная функция Аккермана. Недостаток — требуется дополнительное поле
> ранга для выбора чего чему присваивать. Но ранг вроде тоже небольшой
> (в книжке Кормена, Лейзерсона и др. вроде про это есть), скорее всего байта
> хватит.
>

Я не вижу смысла делать операцию объединения множеств, представленных таким
"лесом", для которой в этой статье обсуждают сложность и нужен ранг. Каждая
ссылка на прокси, спрямляются один раз в жизни, когда по ней произойдет
доступ, проходом от прокси к реальному представлению. И прокси надо сразу
устанавливать на представление терма. Я зря написал, что прокси может
ссылаться на прокси. Это я недодумал.

Других операций над прокси не выполняется. Тут вроде бы нечего
оптимизировать.

Всего наилучшего,
Андрей


>  С уважением,
>
> Александр Коновалов
>
>
>
> *From:* Andrei Klimov andrei_AT_klimov.net 
> *Sent:* Wednesday, February 13, 2019 2:11 PM
> *To:* refal@botik.ru
> *Subject:* Re: Коллапсируюшее представление данных
>
>
>
> Александр, еще раз добрый день!
>
>
>
> Я понял, о чем вы писали и зачем требуется отношение порядка. Объясню
> своими словами на подвешенных скобках.
>
>
>
> Пусть (eX) и (eY) входят в два выражения e1(eX)e2 и e3(eY)e4, и при их
> сравнении выяснилось, что (eX) = (eY).
>
> И пусть на представления (eX) и (eY) есть еще ссылки из других выражений.
>
> Тогда замена ссылки на (eX) в первом выражении на ссылку на (eY) не
> освобождает память представления (eX).
>
> И наоборот, замена ссылки на (eY) во втором на ссылку на (eX) не
> освобождает память представления (eY).
>
> Более того, теряется информация про равенство (eX), или соответственно
> (eY), равным термам в других выражениях.
>
>
>
> Хотелось бы, чтобы был разумный способ выбрать, что на что заменять, чтобы
> какое-то из представлений равных термов лидировало и затягивало бы в себя
> ссылки с других.
>
> Например, в реализации со счетчиками ссылок на скобочный терм, можно
> переносить на представление с большим счетчиком.
>
> А если есть отношение порядка между представлениями, то можно выбирать
> наименьшее.
>
> Если сборка мусора не меняет расположение представлений в памяти (что, как
> правило, имеет место быть), то подходящий порядок задают адреса.
>
> Но все равно процесс "затягивания" ссылок на самое "тяжелое" представление
> будет медленным и плохо предсказуемым.
>
>
>
> Чтобы не терять информацию об уже обнаруженных равенствах термов, лучший
> (как мне помнится) вариант, который был придуман такой:
>
> Головная ячейка представления скобочного терма может быть прокси, то есть
> ссылкой на окончательное представление или снова на прокси.
>
> Тогда при выяснении равенства (eX) и (eY) в вышеприведенном примере
> головная ячейка, скажем, (eY) становится прокси, ссылающимся на головную
> ячейку (eX). Подмена ссылки в выражении тоже делается.
>
>
>
> Теперь при каждом вхождении в скобки нужно проверять, не на прокси ли мы
> попали, и, если да, идти дальше. Одновременно спрямлять ссылки.
>
>
>
> Вот такая сложность картины, плюс ее непредсказуемость для
> Рефал-программиста, и привели к тому, что эти идеи остались в истории.
>
> Теперь я вспомнил, что отсутствие "идеальных" решений и есть главная
> причина, из-за которой идея не пошла в массы = в реализации Рефала.
>
> Спасибо, вот сейчас мы нечаянно на них вышли и запротоколировали.
>
> Может, где-то когда-то кому-то пригодится.
>
>
>
> И по-прежнему, интересно узнать, использовалось ли такое коллапсирование
> или обсуждавшаяся табуляция в каких-нибудь системах.
>
> Если кто наткнется или уже знает, напишите, пожалуйста.
>
>
>
> Всего наилучшего,
>
> Андрей
>
>
>
> On Wed, Feb 13, 2019 at 1:08 PM Andrei Klimov andrei.klimov_AT_gmail.com <
> refal@botik.ru> wrote:
>
> Александр, тогда я видимо совсем вас не понял – ни псевдокод, ни
> объяснение словами в предыдущем письме:
>
>
>
> ср, 13 февр. 2019 г., 0:18 Александр Коновалов a.v.konovalov87_AT_mail.ru
> :
> Добрый вечер, Сергей!
> > 2.  Наконец, если нам пришлось делать длинное сравнение и в конце
> выяснилось, что термы таки равны, то мы делаем "коллапсирующие джунгли" --
> делаем присваивание: p2 = p1, L2=L1 (второе лишнее, но пусть будет).  Тут и
> память освободилась и следующий раз сравнение на равенство пройдет быстрее
> ;-)
> *А если у нас в поле зрения есть несколько экземпляров одинаковых пар (p1,
> L1), (p2, L2). В первый раз сравниваются пары в порядке (p1, L1) == (p2,
> L2) и мы присвоили p1 := p2. В другой раз (другие экземпляры) сравнились в
> порядке (p2, L2) == (p1, L1) и коллапсировались уже p2 := p1. Тогда память
> не освободится.

Re: Коллапсируюшее представление данных

2019-02-13 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Александр, да, теперь я понял.
Получилось так, что мы писали навстречу друг другу.
Я только что послал письмо, где обрисовал картину более подробно с
возможными решениями, но, к сожалению, неидеальными.
Андрей

On Wed, Feb 13, 2019 at 2:10 PM Александр Коновалов
a.v.konovalov87_AT_mail.ru  wrote:

> Андрей!
>
> Описываю, что я имел ввиду, на Рефале. Будем предполагать, что в этой
> реализации используются подвешенные скобки.
>
> F {
>   = ;
> }
>
> G {
>   t.1 t.2 = ;
> }
>
> H {
>   t.X t.X t.Y t.Y = t.X t.Y;
> }
>
> В памяти всё равно могут остаться два экземпляра ('abc'). Потому что
> первый раз мы сравниваем t.1 с t.2 (и присваиваем первому терму ссылку
> на второй), а второй раз — t.2 с t.1 (и присваиваем третьему терму ссылку
> на четвёртый). При первом присваивании одна ссылка на t.1 удаляется, одна
> ссылка на t.2 появляется. При втором наоборот. К моменту выполнения
> правой части в памяти останутся по два экземпляра ('abc'), на каждый
> из которых по две ссылки.
>
>
>
> С уважением,
> Александр Коновалов
>
>
>
> *From:* Andrei Klimov andrei.klimov_AT_gmail.com 
> *Sent:* Wednesday, February 13, 2019 1:08 PM
> *To:* refal@botik.ru
> *Subject:* Re: Коллапсируюшее представление данных
>
>
>
> Александр, тогда я видимо совсем вас не понял – ни псевдокод, ни
> объяснение словами в предыдущем письме:
>
>
>
> ср, 13 февр. 2019 г., 0:18 Александр Коновалов a.v.konovalov87_AT_mail.ru
> :
> Добрый вечер, Сергей!
> > 2.  Наконец, если нам пришлось делать длинное сравнение и в конце
> выяснилось, что термы таки равны, то мы делаем "коллапсирующие джунгли" --
> делаем присваивание: p2 = p1, L2=L1 (второе лишнее, но пусть будет).  Тут и
> память освободилась и следующий раз сравнение на равенство пройдет быстрее
> ;-)
> *А если у нас в поле зрения есть несколько экземпляров одинаковых пар (p1,
> L1), (p2, L2). В первый раз сравниваются пары в порядке (p1, L1) == (p2,
> L2) и мы присвоили p1 := p2. В другой раз (другие экземпляры) сравнились в
> порядке (p2, L2) == (p1, L1) и коллапсировались уже p2 := p1. Тогда память
> не освободится. Такое может быть?*
>
>
>
> По-видимому, я не сообразил, про какое представление рефал-выражений идет
> речь.
>
> И я тоже виноват, что не пояснил, что подразумевал. Договорю.
>
>
>
> Лучше всего рассмотреть "подвещенные" скобки: скобочный терм (e0)
> представляется ссылкой на представление e0. Это ссылка хранится в месте
> терма (e0) в выражениях, в которые он входит. То есть,
>
>- <представление выражение e1(e0)e2> = <представление e1> <ссылка на
>(e0)> <представление e2>
>
> Заметим, что это рассуждение не зависит от того, массивное представление
> выражений или одно- или двунаправленное списочное.
>
>
>
> Если в процессе отождествления повторных переменных были обнаружены равные
> термы (e0), входящие в два выражения, то в одном из выражений ссылка на
> (e0) заменяется на вторую, а второе представление (e0) может освободиться
> (сборкой мусора или по счетчику ссылок).
>
>
>
> Александр, тонкость, о которой вы пишите, присутствует в таком
> представлении с такой операцией сравнения?
>
>
>
> Если речь о том, что отнюдь не все равные термы будут сколлапсированы, а
> только те, что когда-то пройдут через операцию сравнения их вхождений в
> какие-то выражения, то да, это так. В частности это гасило пыл попробовать
> такую реализацию, так как программисту очень трудно предсказывать пользу:
> произошла ли экономия памяти и операций сравнения или нет.
>
>
>
> On Wed, Feb 13, 2019 at 12:17 PM Александр Коновалов
> a.v.konovalov87_AT_mail.ru  wrote:
>
> Доброе утро, Андрей!
>
> Спасибо за интересное письмо!
>
> *«Память освободится, но отдельно в первой паре и во второй, а чтобы
> остался один экземпляр из четырёх, нужно ещё одно сравнение.»*
>
> Я имел ввиду другое. Поясню псевдокодом:
>
> def equals(lhs, rhs):
> if lhs.L == 0 && rhs.L == 0:
> return True
> elif lhs.L == rhs.L && strcmp(lhs.p, rhs.p) == 0:
> // коллапсируем
> lhs.p := rhs.p
> return True
> else:
> return False
>
> x1 := (p1, L)
> x2 := (p2, L)
> x3 := (p1, L)
> x4 := (p2, L)
>
> equals(x1, x2)
> equals(x4, x3)
>
> Предполагается, что p1 и p2 — указатели на разные строки с одинаковым
> содержимым. После выполнения этого псевдокода будет x1.p ≡ x2.p ≡ p2 и x3.
> p ≡ x4.p ≡ p1. Т.е. память не освободится. Просто переменные поменяются
> ссылками. Поэтому и нужно дополнительное ранжирование. Вроде вот этого:
>
> *«То есть в ящиках поддерживаются индексы в некотором отношении линейного
> порядка для последующего быстрого сравнения»*
>
> Либо можно сравнивать указатели как числа и присваивать большему меньшее.
>
>
>
> Я не понял, зачем может понадобится отношение порядка для коллапсирования.
>
>
>
> *«Чтобы экономить память (и надеялись — и время), для системы Сантра Игоря
> Шенкова я ещё в 80-е годы разработал библиотечку ROTAB (References for
> Order Tabulation) для „коллапсирования рефал-выражений в ящики“ (выдаётся
> ссылка на тот же ящик, если уже формировался 

Re: Коллапсируюшее представление данных

2019-02-13 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Александр, еще раз добрый день!

Я понял, о чем вы писали и зачем требуется отношение порядка. Объясню
своими словами на подвешенных скобках.

Пусть (eX) и (eY) входят в два выражения e1(eX)e2 и e3(eY)e4, и при их
сравнении выяснилось, что (eX) = (eY).
И пусть на представления (eX) и (eY) есть еще ссылки из других выражений.
Тогда замена ссылки на (eX) в первом выражении на ссылку на (eY) не
освобождает память представления (eX).
И наоборот, замена ссылки на (eY) во втором на ссылку на (eX) не
освобождает память представления (eY).
Более того, теряется информация про равенство (eX), или соответственно
(eY), равным термам в других выражениях.

Хотелось бы, чтобы был разумный способ выбрать, что на что заменять, чтобы
какое-то из представлений равных термов лидировало и затягивало бы в себя
ссылки с других.
Например, в реализации со счетчиками ссылок на скобочный терм, можно
переносить на представление с большим счетчиком.
А если есть отношение порядка между представлениями, то можно выбирать
наименьшее.
Если сборка мусора не меняет расположение представлений в памяти (что, как
правило, имеет место быть), то подходящий порядок задают адреса.
Но все равно процесс "затягивания" ссылок на самое "тяжелое" представление
будет медленным и плохо предсказуемым.

Чтобы не терять информацию об уже обнаруженных равенствах термов, лучший
(как мне помнится) вариант, который был придуман такой:
Головная ячейка представления скобочного терма может быть прокси, то есть
ссылкой на окончательное представление или снова на прокси.
Тогда при выяснении равенства (eX) и (eY) в вышеприведенном примере
головная ячейка, скажем, (eY) становится прокси, ссылающимся на головную
ячейку (eX). Подмена ссылки в выражении тоже делается.

Теперь при каждом вхождении в скобки нужно проверять, не на прокси ли мы
попали, и, если да, идти дальше. Одновременно спрямлять ссылки.

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

И по-прежнему, интересно узнать, использовалось ли такое коллапсирование
или обсуждавшаяся табуляция в каких-нибудь системах.
Если кто наткнется или уже знает, напишите, пожалуйста.

Всего наилучшего,
Андрей

On Wed, Feb 13, 2019 at 1:08 PM Andrei Klimov andrei.klimov_AT_gmail.com <
refal@botik.ru> wrote:

> Александр, тогда я видимо совсем вас не понял – ни псевдокод, ни
> объяснение словами в предыдущем письме:
>
> ср, 13 февр. 2019 г., 0:18 Александр Коновалов a.v.konovalov87_AT_mail.ru
>> :
>> Добрый вечер, Сергей!
>> > 2.  Наконец, если нам пришлось делать длинное сравнение и в конце
>> выяснилось, что термы таки равны, то мы делаем "коллапсирующие джунгли" --
>> делаем присваивание: p2 = p1, L2=L1 (второе лишнее, но пусть будет).  Тут и
>> память освободилась и следующий раз сравнение на равенство пройдет быстрее
>> ;-)
>> *А если у нас в поле зрения есть несколько экземпляров одинаковых пар
>> (p1, L1), (p2, L2). В первый раз сравниваются пары в порядке (p1, L1) ==
>> (p2, L2) и мы присвоили p1 := p2. В другой раз (другие экземпляры)
>> сравнились в порядке (p2, L2) == (p1, L1) и коллапсировались уже p2 := p1.
>> Тогда память не освободится. Такое может быть?*
>
>
> По-видимому, я не сообразил, про какое представление рефал-выражений идет
> речь.
> И я тоже виноват, что не пояснил, что подразумевал. Договорю.
>
> Лучше всего рассмотреть "подвещенные" скобки: скобочный терм (e0)
> представляется ссылкой на представление e0. Это ссылка хранится в месте
> терма (e0) в выражениях, в которые он входит. То есть,
>
>- <представление выражение e1(e0)e2> = <представление e1> <ссылка на
>(e0)> <представление e2>
>
> Заметим, что это рассуждение не зависит от того, массивное представление
> выражений или одно- или двунаправленное списочное.
>
> Если в процессе отождествления повторных переменных были обнаружены равные
> термы (e0), входящие в два выражения, то в одном из выражений ссылка на
> (e0) заменяется на вторую, а второе представление (e0) может освободиться
> (сборкой мусора или по счетчику ссылок).
>
> Александр, тонкость, о которой вы пишите, присутствует в таком
> представлении с такой операцией сравнения?
>
> Если речь о том, что отнюдь не все равные термы будут сколлапсированы, а
> только те, что когда-то пройдут через операцию сравнения их вхождений в
> какие-то выражения, то да, это так. В частности это гасило пыл попробовать
> такую реализацию, так как программисту очень трудно предсказывать пользу:
> произошла ли экономия памяти и операций сравнения или нет.
>
> On Wed, Feb 13, 2019 at 12:17 PM Александр Коновалов
> a.v.konovalov87_AT_mail.ru  wrote:
>
>> Доброе утро, Андрей!
>>
>> Спасибо за интересное письмо!
>>
>> *«Память освободится, но отдельно в первой паре и во второй, а чт

Re: Коллапсируюшее представление данных

2019-02-13 Пенетрантность Andrei Klimov andrei_AT_klimov . net
On Wed, Feb 13, 2019 at 11:04 AM Andrei Klimov  wrote:

> Я сменил сабж, так как тема шире, чем лишь для Рефала Плюс.
>
> ср, 13 февр. 2019 г., 0:18 Александр Коновалов a.v.konovalov87_AT_mail.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
   

DJVU
   


Вообще интересно, в каких-нибудь системах компьютерной алгебры и прочей
> символьной обработки используются ли подобные механизмы? Они могли быть
> опробованы в стародавние времена, когда памяти было мало, а, подозреваю, в
> нынешнее время никто не стал бы возиться с исследованиями такого вопроса.
> Но все-таки, может, были эксперименты? Никто не знает?
>
> Андрей
>


Коллапсируюшее представление данных

2019-02-13 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Я сменил сабж, так как тема шире, чем лишь для Рефала Плюс.

ср, 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.

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

Андрей


Re: Рефал Плюс – Was: Синтаксический анализ в Рефале

2019-02-11 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый вечер!

Я занудно меняю сабж, приписывая "Рефал Плюс", а то тред "Синтаксический
анализ в Рефале" уже перегружен и обсуждение ушло с основной темы.
Архивируемая рассылка ценна тем, что потом в ней можно находить ценную
информацию. Для этого треды должны быть короткими, а сабжи – называть
основную тему. Пусть ответ Антона на вопросы Аркадия перейдет под этот сабж
(внизу привожу его текст).

Давайте проясним, сколько у нас реализаций Рефала Плюс, и, говоря он них,
будем указывать, о какой речь, а то, мне кажется, уже начала возникать
путаница. Эта переписка напомнила мне о трех реализациях:

1. Я писал в предыдущем письме про исходную реализацию на С от Рутена
Гурина и Сергея Романенко, прошедшую потом через руки сотрудников ИПС и в
конце концов – Андрея Слепухина. Я не заглядывал в ее внутренности, а
только был ее пользователем, поэтому могу ошибаться, говоря о ее свойствах.
То, что я наивно думал, я написал в предыдущем письме. Резюмирую здесь:

   - массивное представление
   - чанки памяти под выражения выделяются из памяти, захваченной при
   старте; кажется, там был параметр – сколько памяти взять
   - сборка мусора была изначально
  - это ее алгоритм разработал Сергей Абрамов со Светланой Трубициной?
   - дырки были добавлены потом (точно не знаю, кто именно их реализовывал)
  - есть параметр – размер дырок
   - язык реализации – С (не С++)
   - погружение в IDE: нет
   - годы разработки от первой до последней версий: ~1990 – ~2000
  - хорошо бы для истории восстановить даты поточнее

Авторы, я не проврался?

2. Антон Орлов ответил на вопросы Аркадия про другую – вторую реализацию.
Из письма Антона выписываю, как я понял:

   - массивное представление
   - аллокатор по алгоритму близнецов, умеющий склеивать чанки при возврате
   памяти
   - сборки мусора нет, есть счетчики ссылок
   - начальные дырки есть по сущности аллокатора (до степени двойки)
   - язык реализации: С++
   - погружение в IDE: нет ?
   - годы разработки: начало 2000 ?

Авторы, пожалуйста, поправьте меня или добавьте интересную информацию.

3. Реализация на JVM в среде Eclipse Антона Орлова и Юры Климова:

   - массивное представление:
  - выражение = Java-массив из термов
  - терм = объект специального класса
  - символы обернуты в терм или унаследованы от терма ?
 - например, как реализован символ-число?
  - выражение в скобках – массив, обернутый в объект-терм, да?
 - вопрос: есть ли "лишний" ссылочный уровень для скобок или
 массив-содержимое является элементом объемлющего массива-выражения?
  - аллокатор выражения:  JVM'овский new array
   - сборка мусора: JVM'овская
   - дырок нет
   - язык реализации: Java и Рефал; исполняется на JVM
   - погружение в IDE (подсветки, подсказки и т.п.): Eclipse
   - годы разработки: 2006-2008 ?
   - спонсор: ИПС им. А.К. Айламазяна РАН

Антон и Юра, правильно выписаны характеристики?

О других реализациях Рефала Плюс я не слышал (или забыл). Еще есть?

*. Для информации приведу еще одну реализацию на JVM, но не Рефала Плюс, а
Рефала-6. Поэтому обозначаю ее в этом списке как *, а не 4. Ее сделал
Аркадий Климов (а я был в роли "мы пахали") задолго до реализации Антона и
Юры. Она называлась RefalJ:

   - массивное представление:
  - выражение = Java-массив из термов
  - терм = любой объект – не массив
 - символы: String, числа и т.п. – непосредственные элементы
 массива-выражения
 - выражение в скобках –  содержимое-массив является элементом
 объемлющего выражения-массива
 - то есть "лишней" косвенной адресации нет
  - аллокатор выражения: JVM'овский new array
   - сборка мусора: JVM'овская
   - дырок нет
   - язык реализации: Java и Рефал-6; исполняется на JVM
   - погружение в IDE: нет
   - год разработки: 2003 (первое полугодие)
   - спонсор: Авикомп Сервисез 
  - Предполагалось использовать эту реализацию, расширяя структуры
  данных и входной язык, для "семантических технологий
  ", которые разрабатывались
  группой под руководством Владимира Хорошевского. (Но как-то не
получилось.)

Аркадий, поправь меня, пожалуйста, если я в чем-то ошибся.

Замечание про реализации 3 и * на JVM: При конкатенации выражений, даже при
приписывании одного терма к выражению, происходит копирование массивов. Оно
выполняется библиотечным методом java.lang.System.arraycopy(), который в
JVM выполняется одной Intel'овской командой, а не циклом. Такая операция в
современных процессорах имеет хорошую локальность с пред-подкачкой в кеш.

Мы с Аркадием были удивлены скоростью выполнения (сравнительные данные
сейчас уже не могу привести). Думали, что копирование массивов будет
большим тормозом. На это изначально шли, так как предполагалось, что
впоследствии будут разрабатываться специальные структуры данных для
семантических технологий Авикомпа, расширяя рефал-выражения. Поэтому было
важно, чтобы базовое представление выражений было как 

Рефал Плюс – Was: Синтаксический анализ в Рефале

2019-02-11 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Добрый день

Я изменил сабж, чтобы информация не терялась в одной нити обсуждения.

1. К вопросу об имеющихся реализациях:

Дополнительно к ссылкам Сергея Абрамова (см. внизу) и сайту Андрея Немытых,
на которую была дана ссылка в одном из предыдущих писем:
http://refal.botik.ru/references/references.htm
вот еще страница с списком диалектов и реализаций на официальном сайте
Рефала:
http://refal.net/dialects.html

Возможно, она в чем-то устарела. Просьба не сетовать на это, а, заметив
расхождения, писать Леониду Белоусу (можно через refal@botik; он здесь и
читает письма), он пополнит.
Вот сейчас я зашел туда и обнаружил, что на странице
http://refal.net/dialects.html ссылки на реализацию Рефала Плюс на
http://revenge.botik.ru
, к
сожалению, не работают:

   - *Refal-plus*
   - сайт поддержки
  
  http://revenge.botik.ru/cgi-bin/twiki/view/Refaldevel/WebHome
  - документация 
  http://refal.net/doc_ref_plus.html
  - download
  
  http://revenge.botik.ru/cgi-bin/twiki/view/Refaldevel/RefalOnCVS

Видать, http://revenge.botik.ru
 прикрыли
или куда-то перенесли. Надо разобраться, как поправить. Вернемся к этому в
следующем пункте.


2. Юра написал про реализацию Рефала+, не пояснив, что это уже *вторая*
реализация Рефала Плюс – на JVM в среде Eclipse. Она была изготовленная им
вместе с Антоном Орловым:

On Sun, Feb 10, 2019 at 11:06 PM Yuri Klimov yuri_AT_klimov.net <
refal@botik.ru> wrote:

> Ссылки по Рефалу+:
>
>- http://rfp.botik.ru/ - сайт с исходниками, есть и скомпилированная
>версия под Windows, есть ссылка на svn-репозиторий, и на плагин для 
> Eclipse.
>- http://wiki.botik.ru/Refaldevel/ - сайт с описанием
>- https://pat.keldysh.ru/~orlov/publications.html - статьи проще
>искать на странице Антона, 2004-2008 года.
>
> К сожалению, с тех пор (2007-2008 года) проект не развивался...
>

Юра, именно эта реализация была на http://revenge.botik.ru
?
Если да, пошли пожалуйста, Леониду Белоусу правильные ссылки вместо битых.
Если нет, то, наверно, на http://revenge.botik.ru
 была
*первая* реализация Рефала Плюс, о которой следующий пункт.


3. Я был активным пользователем первой реализации Рефала Плюс, хотя и для
небольших задач, и могу высказать свое положительное мнение: быстрая,
компактная, стабильная, без ошибок (по крайней мере, обнаруженных;-)).
Главный недостаток: нет документированного интерфейса с С. То есть для
замкнутых задач на одном Рефал Плюс полностью годится, а для встраивания и
расширения библиотеки – надо осваивать исходный код на С, то есть в
нынешнем виде не годится.
Исходники на С есть, но, кажется, нигде не выставлены (или я просто не знаю
ссылку). Если поискать, найдем.;-)

Эта реализация вышла из рук Рутена Гурина и Сергея Романенко в районе 1990
года, прошла через Андрея Немытых, Владимира Козадоя и возможно других
сотрудников ИПС в 90-е годы, Андрея Слепухина в районе 2000-го года и,
наверно, еще кого-то, кого я запамятовал или, может, мне и не говорили.
В ней массивное представление выражений и главное развитие сделанное в ИПС
после Рутена и Сергея – добавление "дыр" (резерва памяти) вокруг выражений,
чтобы не переписывать при приписывании к длинному выражению термов или
коротких выражений, что я является стандартным приемом программирования на
Рефале ("прокачка выражения").
Процент памяти на дыры можно задавать, но я никогда это не делал: скорость
и так большая. Наверно, он в районе 10%.

Последняя реализация от Андрей Слепухина была выпущена под Линуксом. Она
работала с С-ными библиотеками тех времен (~2000 год). Наверно, надо
перекомпилировать для работы с современными библиотеками.
Дистрибутив под Windows не был сделан. Не хватало мелочей (как всегда;-)) –
параметров настройки окружения: где лежит cigwin и прочее. Юра по моей
просьбе в начале нулевых годов собрал версию, в которой имена директорий
(cigwin'а и, может, еще что-то) были зашиты в код, как они были на моей
машине. Я ей много лет пользовался, но после покупки очередного компа и
установки всех систем заново, старая система с ходу не пошла, надо было
разбираться, перекомпилировать, но каждый раз, когда думал, не
воспользоваться ли Рефалом Плюс для текущей задачи, из-за ее срочности
выбирал другой путь (типа: скриптование на другом языке) и не поднимал
Рефал Плюс.
Возможно, наступило время это сделать.😊

Всего наилучшего,
Андрей


On Mon, Feb 11, 2019 at 11:12 AM Sergei M. Abramov abram_AT_botik.ru <
refal@botik.ru> wrote:

> > Замысловатый ответ ни о чем.  Так какой результат, если есть статьи,
> > то ссылки где?.
>
> http://www.botik.ru/PSI/RCMS/publications/public

TOOLS 50+1: Call for Papers

2019-02-09 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Dear colleagues,

I'm glad to spread information about an international conference to be held
in Innopolis University:

*TOOLS 50+1:Technology of Object-Oriented Languages and Systems*
Innopolis University, Innopolis, Kazan, Russia
*October 14-19, 2019*
http://tools2019.innopolis.ru/

This new edition of the TOOLS conference series revives a tradition going
> back 50 conferences from 1989 to 2012. TOOLS was originally "Technology of
> Object-Oriented Languages and Systems" and grew to encompass all innovative
> aspects of software technology. Many of today's most important software
> concepts were first introduced there. The 2019 TOOLS 50+1, taking place
> near Kazan, in Russia, continues the series in the same spirit of
> creativity, passion for everything software-related, combination of
> scientific soundness and industrial applicability, and an open attitude
> welcoming all trends and communities in the field.
>
> TOOLS 50+1 will be held in the week of October 14, 2019, with the
> conference proper on October 15 to 17 (Tuesday to Thursday) and colocated
> events on the surrounding days. Proposers of colocated events are welcome
> to contact organizers.
>
> Proceedings will be published as a volume of the Springer's Lecture Notes
> in Computer Science .


Important Dates

   - Abstract registration deadline - April 5, 2019
   - Submission deadline - April 19, 2019

Best regards,
Andrei Klimov





*From:* Manuel Mazzara [mailto:m.mazz...@innopolis.ru]
*Sent:* Wednesday, January 30, 2019 3:38 PM
*To:* Manuel Mazzara
*Subject:* TOOLS 50+1: Call for Papers



Dear Colleagues,

we have now launched our new website:



http://tools2019.innopolis.ru/



and defined the list of satellite events. If you want to organize a
workshop you are of course welcome.

Please help us spreading awareness of TOOLS 50+1 in  your community. Do not
forget to submit your paper ;-)

Best,


TOOLS 50+1 Organizing Committee


Re: PSI'19 submission deadline extended

2019-02-09 Пенетрантность Andrei Klimov andrei_AT_klimov . net
Еще добавлю по-русски:

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

Всего наилучшего,
Андрей Климов


On Sat, Feb 9, 2019 at 9:41 PM Andrei Klimov klimov_AT_keldysh.ru <
refal@botik.ru> wrote:

> Dear colleagues,
>
> The submission deadline to the PSI Conference to be held in Akademgorodok,
> Novosibirsk, Russia is extended to *February 17, 2019*.
> https://psi.nsc.ru
>
> Abstract submission is not closed yet. The PC asks to submit an abstract
> ASAP if you plan to submit a paper.
>
> Best regards,
> Andrei Klimov
>
> *Important Dates*
>
>- February 3, 2019: abstract submission
>- *February 17, 2019: submission deadline*
>- April 1, 2019: notification of acceptance
>- April 27, 2019: camera ready papers for pre-proceedings
>- July 2–5, 2019: the conference dates
>- September 1, 2019: camera ready papers due
>
>
>
> On Mon, Jun 25, 2018 at 5:31 PM Andrei Klimov  wrote:
>
>> -- Forwarded message --
>> From: PSI Conference 
>> Date: Mon, Jun 25, 2018 at 3:49 PM
>> Subject: PSI'19 Preliminary Call for Papers
>>
>>
>> **
>> Preliminary Call for Papers
>>  12th ERSHOV INFORMATICS CONFERENCE (PSI'19)
>> 02 July - 05 July, 2019, Akademgorodok, Novosibirsk, Russia
>>http://psi.nsc.ru
>>
>> **
>>
>> [IMPORTANT DATES]
>>
>> January 27, 2019: abstract submission
>> Febuary 3, 2019: submission deadline
>> April 1, 2019: notification of acceptance
>> July 2 - 5, 2019: the conference dates
>> September 1, 2019: LNCS camera ready papers due
>>
>> [AIMS AND SCOPE]
>>
>> A.P. Ershov Informatics Conference (the PSI Conference Series, the 12th
>> edition) is the premier international forum in Russia for research and
>> its applications in computer, software and information sciences. The
>> conference brings together academic and industrial researchers, developers
>> and users to present and discuss the most recent innovations, trends,
>> experiences and concerns in the conference area.
>>
>> PSI'19 will be held in the scope of Computer Science Summer in Russia,
>> which
>> will take place at Novosibirsk State University on June, 24 - July, 5,
>> 2019.
>>
>>
>> [ORGANIZERS]
>>
>> - A.P. Ershov Institute of Informatics Systems, Siberian Branch of RAS
>> - Novosibirsk State University
>>
>> [CONFERENCE CHAIR]
>>
>> Alexander Marchuk
>>  A.P. Ershov Institute of Informatics Systems, Novosibirsk, Russia
>>
>> [STEERING COMMITTEE]
>>
>> - Kim Guldstrand Larsen
>> Aalborg University, Denmark
>>
>> - Bertrand Meyer
>> ETH, Zurich, Switzerland & Innopolis University, Kazan, Russia
>>
>> - Vladimiro Sassone
>> University of Southampton, Great Britain
>>
>> - Michael Gerard Hinchey
>> Limerick, Ireland
>>
>> - Sriram Rajamani
>> Microsoft Research India
>>
>> [PROGRAMME COMMITTEE CHAIRS]
>>
>> - Nikolaj Bjorner
>> Microsoft Research, Redmond, USA
>>
>> - Irina Virbitskaite
>> A.P. Ershov Institute of Informatics Systems, Novosibirsk, Russia
>>
>> - Andrei Voronkov
>> The University of Manchester, UK
>>
>> [CONFERENCE SECRETARY]
>>
>> - Irina Adrianova
>> - Natalya Cheremnykh
>>
>> A.P. Ershov Institute of Informatics Systems, Novosibirsk, Russia
>> 6, Acad. Lavrentiev av.
>> 630090 Novosibirsk, Russia
>> tel.: +7 383 3307352
>> fax:  +7 383 3323494
>> e-mails: psiconf2...@gmail.com, iadrian...@iis.nsk.su,
>> chergene...@gmail.com
>>
>> [PUBLICITY CHAIRS]
>>
>> - Natalia Garanina
>> A.P. Ershov Institute of Informatics Systems, Novosibirsk, Russia
>>
>> - Denis Ponomaryov
>> A.P. Ershov Institute of Informatics Systems, Novosibirsk, Russia
>>
>> [CONFERENCE TOPICS]
>>
>> 1. Foundations of Program and System Development and Analysis
>>
>> - specification, validation, and verification techniques,
>> - program analysis, transformation and synthesis,
>> - semantics, logic and formal models of programs,
>> - partial evaluation, mixed computation, abstract interpretation,
>>   compiler construction,
>> - theorem proving and model checking,
>> - concurrency theory,
>> - modeling and analysis of real-time and hybrid systems,
>> - computer models and algorithms for bioinformatics.
>>
>> 2. Programming Methodology and Software Engineering
>>
>> - object-oriented, aspect-oriented, component-based, and generic
>>   programming,
>> - programming by contract,
>> - program and system construction for parallel and distributed computing,
>> - constraint programming,
>> - multi-agent technology,
>> - system re-engineering and reuse,
>> - integrated programming environments,
>> - software architectures,
>> - software development and testing,
>> - agile software development,
>> - software engineering methods and tools,
>> - service engineering, service oriented architecture