Автор Тема: Программирование по-русски  (Прочитано 64373 раз)

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 89
Re: Программирование по-русски
« Ответ #165 : 18.04.2021 09:27:35 »
Это вообще проблема модераторов. Чувство собственной значимости разъедает им трезвый взгляд на действительность, причём почти у всех модераторов такая "профессиональная деформация".
Полагаю, дело обстоит несколько иначе.

Альту более 20 лет, проект зародился на идеях СПО, которые исходно международные. Альт вырос, пережил многих "попутчиков", в том числе пытавшихся под сурдинку неких "выгод для России" проехаться на шее. Имею ввиду скандальную историю с внедрением в школы, когда третья сторона испортила установочные носители, сладкий шекель получили структуры некоего бывшего министра, а шишки до сих пор кидают в "Школьный Альтлинукс". Потом началось импортозамещение, когда некоторые бьют себя пяткой в грудь с криками "их бин Рашн ОС мантайнер", а по факту Эльбрус работает только на Альте и Астре (которая Debian, как и МЦСТ).

Благодаря накопившемуся опыту воспринимают разговоры без демонстрации чего-либо готового в лучшем случае как имитацию бурной деятельности.

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 89
Re: Программирование по-русски
« Ответ #166 : 18.04.2021 09:40:18 »
Я предлагаю инициаторам «посконного» ЯП сделать реализацию и привлечь прикладных хотя бы разработчиков.

Накидал реализацию. Нормальные алгорифмы Маркова и РЕФАЛ Турчина - посконнее некуда.

Фрагмент диалога с заинтересованной стороной:

Вопрос:  что такое "вычислительные скобки?"

Ответ: Цитирую РЕФАЛ-5 Руководство по программированию и справочник Турчин В.Ф., стр. 10 [...]

Десятая страница. Всё описание языка, включая абстрактную машину и примеры, укладывается в эти 10 страниц. Можно ли было их прочесть, я как-то даже боюсь спрашивать.
« Последнее редактирование: 18.04.2021 09:43:20 от trs »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 18 692
    • Домашняя страница
    • Email
Re: Программирование по-русски
« Ответ #167 : 18.04.2021 13:03:37 »
Я предлагаю инициаторам «посконного» ЯП сделать реализацию и привлечь прикладных хотя бы разработчиков.

Накидал реализацию. Нормальные алгорифмы Маркова и РЕФАЛ Турчина - посконнее некуда.
Где скачать можно?
Андрей Черепанов (cas@)

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 89
Re: Программирование по-русски
« Ответ #168 : 19.04.2021 08:58:24 »
Где скачать можно?

Исходники  https://github.com/STrusov/refal-machine
Там же книга Турчина В.Ф. в pdf.
Интерпретатор понимает Базисный Рефал с некоторыми упрощениями (см. каталог examples, где модифицируется и исполняется компилятор Refal-05) плюс поддерживает кириллицу. Вместо традиционных префиксов s. e. t. (определяют тип переменной) можно использовать спецсимволы (незачем лишний раз переключать раскладку).

Ниже примеры поиска простых чисел. Моя реализация понимает оба варианта (если в первом удалить директивы $EXTERN и $ENTRY)
* Refal5-PZ & Refal-05 compatible

$EXTERN Add, Sub;

* syntactic sugar
*$ENUM From, To;

$ENTRY Go {
  = <Prout <Naturals <Sieve <Series From 2 To 10000>>>>;
}

Sieve {
  0      e.Tail = 0      <Sieve e.Tail>;
  s.Mesh e.Tail = s.Mesh <Sieve <Aliquots s.Mesh s.Mesh (e.Tail)>>;
   = ;
}

Aliquots {
  s.Mesh 1     (s.Cur e.In) e.Out = <Aliquots s.Mesh s.Mesh        (e.In) e.Out 0>;
  s.Mesh s.Cnt (s.Cur e.In) e.Out = <Aliquots s.Mesh <Sub s.Cnt 1> (e.In) e.Out s.Cur>;
  e.Stuff () e.Result = e.Result;
}

Series {
  From s.End To s.End e.Series = e.Series s.End;
  From s.Min To s.Max e.Series = <Series From <Add 1 s.Min> To s.Max e.Series s.Min>;
}

Naturals {
  0         e.Tail = <Naturals e.Tail>;
  s.Natural e.Tail = s.Natural <Naturals e.Tail>;
  = ;
}

#!/bin/refal -w

начало = <натуральные <решето <ряд от 2 до 10000>>>;

решето {
  0    … = 0    <решето …>;
  ?шаг … = ?шаг <решето <кратные ?шаг ?шаг (…)>>;
   = ;
}

кратные {
  ?шаг 1     (? .вход) .выход  = <кратные ?шаг ?шаг        (.вход) .выход 0>;
  ?шаг ?счёт (? .вход) .выход  = <кратные ?шаг <?счёт - 1> (.вход) .выход ?>;
  … () .готово = .готово;
}

ряд {
  от ?    до ?     .ряд = .ряд ?;
  от ?мин до ?макс .ряд = <ряд от <1 + ?мин> до ?макс .ряд ?мин>;
}

натуральные {
  0 … =   <натуральные …>;
  ? … = ? <натуральные …>;
  = ;
}
« Последнее редактирование: 19.04.2021 09:15:50 от trs »