Re: Нужны ли вещественные числа в Рефале?

2019-12-01 Пенетрантность Eisymont Leonid verger-lk_AT_yandex . ru
Какое-то странное обсуждение. Кусок памяти с числом, на который имеется ссылка в звене списковой памяти, которое с точки зрения рефала - ссылка , это просто вещественное число. Можно по-другому назвать, тип добавить. Какая разница? Своего рода косвенная адресация. Что с ним можно делать - все в силе. В том числе и стандарт IEEE.Л.Эйсымонт 01.12.2019, 14:52, "Александр Коновалов a.v.konovalov87_AT_mail.ru" :Добрый день, Леонид!«С указателями на числа все неправильно. Именно надо работать с тем, на что ссылаемся, на 64-х разрядные числа.»Меня смутила фраза «символы-ссылки» в предыдущем письме. Во многих языках программирования различают типы-значения и типы-ссылки. Типы-значения сравниваются по значению, для типов-ссылок по умолчанию сравниваются адреса. Например, в Java примитивные типы (логические, числовые типы) — значения, для них == сравнивает значение, классы — ссылочные типы, == сравнивает указатели. Для сравнения ссылочных типов на равенство нужно вызывать метод x.equals(y).А сравнение вещественных чисел IEEE на равенство может преподнести сюрпризы. Во-первых, есть значения +0.0 и −0.0, которые имеют разное двоичное представление, но должны быть равны. Во-вторых, есть значение NaN (not-a-number, нечисло), которое не равно ничему, даже самому себе. Следующий код на Си выведет false:void f() {  double NaN = 0.0 / 0.0;  printf("%s\n", NaN == NaN ? "true" : "false");}В контексте Рефала это может привести к нарушению семантических инвариантов. Например,* Рефал-2Test SX = k/Eq/ k/Dup/ SX..Dup SX = SX SXEq SX SX = /Eq/   SX SY = /Neq/* Рефал-5Test { s.X = > }Dup { s.X = s.X s.X }Eq {  s.X s.X = Eq;  s.X s.Y = Neq;}По идее, функция Test всегда должна возвращать слово Eq. Но если вызвать функцию Test со значением «нечисло» и реализация будет использовать машинное сравнение на равенство для вещественных чисел, то функция вернёт Neq.Т.е. NaN нарушает неявный семантический инвариант Рефала — скопированные символы должны быть всегда равны. Это неявно предполагается в эквивалентных преобразованиях программ Турчина, на которых построена, в частности, суперкомпиляция Рефала. Про параллелизм и стиль программирования отвечу отдельными письмами. С уважением,Александр Коновалов From: Eisymont Leonid verger-lk_AT_yandex.ru [mailto:refal@botik.ru] Sent: Friday, November 29, 2019 5:25 PMTo: refal@botik.ruSubject: Re: Нужны ли вещественные числа в Рефале? С указателями на числа все неправильно. Именно надо работать с тем, на что ссылаемся, на 64-х разрядные числа. При реализации у нас даже мыслей таких не было, это не практично. Ссылки на ящики - совсем другое. Кстати, в реализации того рефала были введены ссылки на хеш-таблицы и даже на вектора. Это сильно помогло при оптимизации быстродействия.С функциями с побочным эффектом надо быть осторожными. То, что Вы говорите, сводит на нет все распараллеливание по чистым конкретизациям. Это мы проходили в начале 80-х годов. Хорошее распараллеливание в эксперименте удалось получить лишь при работе не просто с переменными и копилками, а, по-существу, с объектами типа мониторов Хоара и формируемых уникальных ID обращений к ним. Эти ID в таком объекте использовались для внутреннего упорядочивания действий с такими объектами. Есть препринт ИПМ  того времени по распараллеливанию модельного компилятора на имитационной модели параллельной рефал-машины. Я эту модель сделал на базе реализации Романенко-Климова для БЭСМ-6, просто по другому конкретизации запускал из дерева конкретизаций , используя предоставленный ими интерфейс.Про читаемость можно действительно  не обсуждать, но мне эти идентификаторы через точку при свободных переменных никогда не нравились, они "замыливают" видимость всей структуры области конкретизации, а это важно и для Рефала принципиально. Для информативности в смысле "что какая свободная переменная означает" использование идентификаторов явно недостаточно. У нас использовалась технология другая - была документация, хоть и рукописная, к наиболее важным функциям, где структура строки обращения подробно расписывалась.Еще требование - часть этой информации выносилась в  основной комментарий к функции типа структура входа и выхода. Более мелкие функции снабжались комментариями для каждого рефал-предложения.Это мы использовали в течение 30-40 лет при написании более 20 компиляторов и имитационных моделей. Потом настала перестройка и все обвалилось. Сейчас пытаемся эту практику восстановить. Очень хочется успеть самому и научить молодежь.Л.Эйсымонт  29.11.2019, 15:51, "Александр Коновалов a.v.konovalov87_AT_mail.ru" <refal@botik.ru>:Добрый день, Леонид!«Со символами ссылками не так. Там тупо в символе рефала ссылка на кусок памяти в 64 разряда, где хранится само число. Если сравнивать, то сравниваются содержимое двух кусков памяти, как это аппаратура может сделать.»Про символы-ссылки я имел ввиду следующее. Пусть имеются два символа-ссылки в переменных SA и SB. И мы вызываем функцию k/Eq/

RE: Нужны ли вещественные числа в Рефале?

2019-12-01 Пенетрантность Александр Коновалов a . v . konovalov87_AT_mail . ru
Добрый день, Леонид!

«С указателями на числа все неправильно. Именно надо работать с тем, на что 
ссылаемся, на 64-х разрядные числа.»

Меня смутила фраза «символы-ссылки» в предыдущем письме. Во многих языках 
программирования различают типы-значения и типы-ссылки. Типы-значения 
сравниваются по значению, для типов-ссылок по умолчанию сравниваются адреса. 
Например, в Java примитивные типы (логические, числовые типы) — значения, для 
них == сравнивает значение, классы — ссылочные типы, == сравнивает указатели. 
Для сравнения ссылочных типов на равенство нужно вызывать метод x.equals(y).

А сравнение вещественных чисел IEEE на равенство может преподнести сюрпризы. 
Во-первых, есть значения +0.0 и −0.0, которые имеют разное двоичное 
представление, но должны быть равны. Во-вторых, есть значение NaN 
(not-a-number, нечисло), которое не равно ничему, даже самому себе. Следующий 
код на Си выведет false:

void f() {
  double NaN = 0.0 / 0.0;
  printf("%s\n", NaN == NaN ? "true" : "false");
}

В контексте Рефала это может привести к нарушению семантических инвариантов. 
Например,

* Рефал-2
Test SX = k/Eq/ k/Dup/ SX..

Dup SX = SX SX

Eq SX SX = /Eq/
   SX SY = /Neq/

* Рефал-5
Test { s.X = > }

Dup { s.X = s.X s.X }

Eq {
  s.X s.X = Eq;
  s.X s.Y = Neq;
}

По идее, функция Test всегда должна возвращать слово Eq. Но если вызвать 
функцию Test со значением «нечисло» и реализация будет использовать машинное 
сравнение на равенство для вещественных чисел, то функция вернёт Neq.

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

 

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

 

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

 

From: Eisymont Leonid verger-lk_AT_yandex.ru [mailto:refal@botik.ru] 
Sent: Friday, November 29, 2019 5:25 PM
To: refal@botik.ru
Subject: Re: Нужны ли вещественные числа в Рефале?

 

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

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

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

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

Это мы использовали в течение 30-40 лет при написании более 20 компиляторов и 
имитационных моделей. Потом настала перестройка и все обвалилось. Сейчас 
пытаемся эту практику восстановить. Очень хочется успеть самому и научить 
молодежь.

Л.Эйсымонт

 

 

29.11.2019, 15:51, "Александр Коновалов a.v.konovalov87_AT_mail.ru" 
mailto:refal@botik.ru> >:

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

«Со символами ссылками не так. Там тупо в символе рефала ссылка на кусок памяти 
в 64 разряда, где хранится само число. Если сравнивать, то сравниваются 
содержимое двух кусков памяти, как это аппаратура может сделать.»

Про символы-ссылки я имел ввиду следующее. Пусть имеются два символа-ссылки в 
переменных SA и SB. И мы вызываем функцию k/Eq/ SA SB.:

Eq SX SX = /Eq/
   SX SY = /Neq/

Тогда для ссылок наиболее логичным будет решение сравнить два указателя на 
равенство: если они ссылаются на один объект в памяти, то символы равны. А для 
сравнения вещественных чисел как чисел разумно ввести функцию вроде k/Compare/ 
SX SY.,

Re: Нужны ли вещественные числа в Рефале?

2019-11-29 Пенетрантность Eisymont Leonid verger-lk_AT_yandex . ru
С указателями на числа все неправильно. Именно надо работать с тем, на что ссылаемся, на 64-х разрядные числа. При реализации у нас даже мыслей таких не было, это не практично. Ссылки на ящики - совсем другое. Кстати, в реализации того рефала были введены ссылки на хеш-таблицы и даже на вектора. Это сильно помогло при оптимизации быстродействия.С функциями с побочным эффектом надо быть осторожными. То, что Вы говорите, сводит на нет все распараллеливание по чистым конкретизациям. Это мы проходили в начале 80-х годов. Хорошее распараллеливание в эксперименте удалось получить лишь при работе не просто с переменными и копилками, а, по-существу, с объектами типа мониторов Хоара и формируемых уникальных ID обращений к ним. Эти ID в таком объекте использовались для внутреннего упорядочивания действий с такими объектами. Есть препринт ИПМ  того времени по распараллеливанию модельного компилятора на имитационной модели параллельной рефал-машины. Я эту модель сделал на базе реализации Романенко-Климова для БЭСМ-6, просто по другому конкретизации запускал из дерева конкретизаций , используя предоставленный ими интерфейс.Про читаемость можно действительно  не обсуждать, но мне эти идентификаторы через точку при свободных переменных никогда не нравились, они "замыливают" видимость всей структуры области конкретизации, а это важно и для Рефала принципиально. Для информативности в смысле "что какая свободная переменная означает" использование идентификаторов явно недостаточно. У нас использовалась технология другая - была документация, хоть и рукописная, к наиболее важным функциям, где структура строки обращения подробно расписывалась.Еще требование - часть этой информации выносилась в  основной комментарий к функции типа структура входа и выхода. Более мелкие функции снабжались комментариями для каждого рефал-предложения.Это мы использовали в течение 30-40 лет при написании более 20 компиляторов и имитационных моделей. Потом настала перестройка и все обвалилось. Сейчас пытаемся эту практику восстановить. Очень хочется успеть самому и научить молодежь.Л.Эйсымонт  29.11.2019, 15:51, "Александр Коновалов a.v.konovalov87_AT_mail.ru" :Добрый день, Леонид!«Со символами ссылками не так. Там тупо в символе рефала ссылка на кусок памяти в 64 разряда, где хранится само число. Если сравнивать, то сравниваются содержимое двух кусков памяти, как это аппаратура может сделать.»Про символы-ссылки я имел ввиду следующее. Пусть имеются два символа-ссылки в переменных SA и SB. И мы вызываем функцию k/Eq/ SA SB.:Eq SX SX = /Eq/   SX SY = /Neq/Тогда для ссылок наиболее логичным будет решение сравнить два указателя на равенство: если они ссылаются на один объект в памяти, то символы равны. А для сравнения вещественных чисел как чисел разумно ввести функцию вроде k/Compare/ SX SY., возвращающую '<', '=' или '>'.На сколько я знаю Рефал-2, ссылки на динамические ящики сравниваются по ссылкам, а не по содержимому. «Про параллельность интересно, только нам запись типа Рефал-2 нужна, новые расширения явно неудачные, надуманные, в больших программах это „не прокатит“, даже по примерам в письмах вижу, что программы не читаются. Кто-то из коллег, по-моему, также высказал такое мнение.»Предполагаемая параллельная реализация всё равно будет поддерживать только базисный Рефал: без условий, блоков и прочих наворотов. Параллелиться будут независимые по данным вызовы функций, но при этом вызовы примитивных «грязных» функций (ввод-вывод, копилка и т.д.) будут выполняться в правильном порядке. Подход к распараллеливанию может быть вполне применим и к Рефалу-2.А вопрос читаемости — я считаю, что это вопрос привычки. Мне, например, трудно читать Рефал-2. Хотя я однажды читал исходник компилятора Василия Стеллецкого, уже к середине текст читался нормально. Так что вопрос привычки. Если прочтёте 1000 строк кода Рефала-5, то тоже сможете некоторое время нормально его воспринимать.А кто-то из коллег — это Василий Стеллецкий. Он тоже писал в рассылку, что текст на Рефале-5 он не читает, а расшифровывает. С уважением,Александр Коновалов  From: Eisymont Leonid verger-lk_AT_yandex.ru <refal@botik.ru>Sent: Friday, November 29, 2019 1:20 PMTo: refal@botik.ruSubject: Re: Нужны ли вещественные числа в Рефале? Со символами ссылками не так. Там тупо в символе рефала ссылка на кусок памяти в 64 разряда, где хранится само число. Если сравнивать, то сравниваются содержимое двух кусков памяти, как это аппаратура может сделать.Про параллельность интересно, только нам запись типа Рефал-2 нужна, новые расширения явно неудачные, надуманные, в больших программах это "не прокатит", даже по примерам в письмах вижу, что программы не читаются. Кто-то из коллег, по-моему, также высказал такое мнение.Л.Эйсымонт 28.11.2019, 20:46, "Александр Коновалов a.v.konovalov87_AT_mail.ru" <refal@botik.ru>:Добрый вечер, Леонид!«Мы же сами только обеспечивали работу с такими числами через символы-ссылки.»Если представлять веществен

RE: Нужны ли вещественные числа в Рефале?

2019-11-29 Пенетрантность Александр Коновалов a . v . konovalov87_AT_mail . ru
Добрый день, Леонид!
«Со символами ссылками не так. Там тупо в символе рефала ссылка на кусок памяти 
в 64 разряда, где хранится само число. Если сравнивать, то сравниваются 
содержимое двух кусков памяти, как это аппаратура может сделать.»
Про символы-ссылки я имел ввиду следующее. Пусть имеются два символа-ссылки в 
переменных SA и SB. И мы вызываем функцию k/Eq/ SA SB.:
Eq SX SX = /Eq/
   SX SY = /Neq/
Тогда для ссылок наиболее логичным будет решение сравнить два указателя на 
равенство: если они ссылаются на один объект в памяти, то символы равны. А для 
сравнения вещественных чисел как чисел разумно ввести функцию вроде k/Compare/ 
SX SY., возвращающую '<', '=' или '>'.
На сколько я знаю Рефал-2, ссылки на динамические ящики сравниваются по 
ссылкам, а не по содержимому.
 
«Про параллельность интересно, только нам запись типа Рефал-2 нужна, новые 
расширения явно неудачные, надуманные, в больших программах это „не прокатит“, 
даже по примерам в письмах вижу, что программы не читаются. Кто-то из коллег, 
по-моему, также высказал такое мнение.»
Предполагаемая параллельная реализация всё равно будет поддерживать только 
базисный Рефал: без условий, блоков и прочих наворотов. Параллелиться будут 
независимые по данным вызовы функций, но при этом вызовы примитивных «грязных» 
функций (ввод-вывод, копилка и т.д.) будут выполняться в правильном порядке. 
Подход к распараллеливанию может быть вполне применим и к Рефалу-2.
А вопрос читаемости — я считаю, что это вопрос привычки. Мне, например, трудно 
читать Рефал-2. Хотя я однажды читал исходник компилятора Василия Стеллецкого, 
уже к середине текст читался нормально. Так что вопрос привычки. Если прочтёте 
1000 строк кода Рефала-5, то тоже сможете некоторое время нормально его 
воспринимать.
А кто-то из коллег — это Василий Стеллецкий. Он тоже писал в рассылку, что 
текст на Рефале-5 он не читает, а расшифровывает.
 
С уважением,
Александр Коновалов 
 
From: Eisymont Leonid verger-lk_AT_yandex.ru  
Sent: Friday, November 29, 2019 1:20 PM
To: refal@botik.ru
Subject: Re: Нужны ли вещественные числа в Рефале?
 
Со символами ссылками не так. Там тупо в символе рефала ссылка на кусок памяти 
в 64 разряда, где хранится само число. Если сравнивать, то сравниваются 
содержимое двух кусков памяти, как это аппаратура может сделать.
Про параллельность интересно, только нам запись типа Рефал-2 нужна, новые 
расширения явно неудачные, надуманные, в больших программах это "не прокатит", 
даже по примерам в письмах вижу, что программы не читаются. Кто-то из коллег, 
по-моему, также высказал такое мнение.
Л.Эйсымонт
 
28.11.2019, 20:46, "Александр Коновалов a.v.konovalov87_AT_mail.ru" 
mailto:refal@botik.ru> >:
Добрый вечер, Леонид!
«Мы же сами только обеспечивали работу с такими числами через символы-ссылки.»
Если представлять вещественные числа символами-ссылками, то проблема равенства 
уходит на второй план: два символа равны, если ссылаются на общий контейнер.
«Так что хоть какое-то распараллеливание есть, это будет важно применить в 
комбинаторных алгоритмах компиляции. Сейчас со всем этим будем работать на 
сервере с 28 ядрами.»
А у меня сейчас студент работает над параллельной реализацией Рефала (курсовая 
работа). Если что-то получится, напишу подробнее. Пишется не для кластеров, а 
для простых многоядерных компьютеров. Но зато вся параллельность будет 
полностью прозрачна для программиста.
 
С уважением,
Александр Коновалов
 
From: Eisymont Leonid verger-lk_AT_yandex.ru [mailto:refal@botik.ru 
<mailto:refal@botik.ru> ]
Sent: Thursday, November 28, 2019 5:41 PM
To: refal@botik.ru <mailto:refal@botik.ru> 
Subject: Re: Нужны ли вещественные числа в Рефале?
 
Конечно, не IEEE, у нас была та арифметика, что есть в ЕС ЭВМ (IBM 360). Мы же 
сами только обеспечивали работу с такими числами через символы-ссылки.
Для очень точных вычислений использовали дроби. Про работу с длинной мантиссой 
я не помню, кажется была. Надо посмотреть, реализация ведь есть и мы ее подняли 
сейчас в ЗАО"НТЦ"Модуль" для моделирования перспективных комбинаторных 
алгоритмов компиляции и непосредственно перспективных архитектур процессоров и 
систем. Нам надо просто быстро делать это в исследованиях (т.е. быстро ставить 
эксперименты), вот и выбрали Рефал, опыт его такого использования есть еще с 
времен ракетно-космической тематики в ИПМ. Рефал, вдобавок, у нас с введенными 
операциями типа MPI. Это в 2004 году в НИЦЭВТ-е добавили к М-рефалу. Так что 
хоть  какое-то распараллеливание есть, это будет важно применить в 
комбинаторных алгоритмах компиляции. Сейчас со всем этим будем работать на 
сервере с 28 ядрами.
Л.Эйсымонт
 
28.11.2019, 14:16, "Александр Коновалов a.v.konovalov87_AT_mail.ru" 
mailto:refal@botik.ru> >:
Добрый день, Леонид!
Я только что написал в рассылку про тонкости семантики вещественных чисел, 
включая сравнение на равенство. Как в М-Рефале решена проблема равенства 
вещественных чисел? Или в

Re: Нужны ли вещественные числа в Рефале?

2019-11-29 Пенетрантность Eisymont Leonid verger-lk_AT_yandex . ru
Со символами ссылками не так. Там тупо в символе рефала ссылка на кусок памяти в 64 разряда, где хранится само число. Если сравнивать, то сравниваются содержимое двух кусков памяти, как это аппаратура может сделать.Про параллельность интересно, только нам запись типа Рефал-2 нужна, новые расширения явно неудачные, надуманные, в больших программах это "не прокатит", даже по примерам в письмах вижу, что программы не читаются. Кто-то из коллег, по-моему, также высказал такое мнение.Л.Эйсымонт 28.11.2019, 20:46, "Александр Коновалов a.v.konovalov87_AT_mail.ru" :Добрый вечер, Леонид!«Мы же сами только обеспечивали работу с такими числами через символы-ссылки.»Если представлять вещественные числа символами-ссылками, то проблема равенства уходит на второй план: два символа равны, если ссылаются на общий контейнер.«Так что хоть какое-то распараллеливание есть, это будет важно применить в комбинаторных алгоритмах компиляции. Сейчас со всем этим будем работать на сервере с 28 ядрами.»А у меня сейчас студент работает над параллельной реализацией Рефала (курсовая работа). Если что-то получится, напишу подробнее. Пишется не для кластеров, а для простых многоядерных компьютеров. Но зато вся параллельность будет полностью прозрачна для программиста. С уважением,Александр Коновалов From: Eisymont Leonid verger-lk_AT_yandex.ru [mailto:refal@botik.ru]Sent: Thursday, November 28, 2019 5:41 PMTo: refal@botik.ruSubject: Re: Нужны ли вещественные числа в Рефале? Конечно, не IEEE, у нас была та арифметика, что есть в ЕС ЭВМ (IBM 360). Мы же сами только обеспечивали работу с такими числами через символы-ссылки.Для очень точных вычислений использовали дроби. Про работу с длинной мантиссой я не помню, кажется была. Надо посмотреть, реализация ведь есть и мы ее подняли сейчас в ЗАО"НТЦ"Модуль" для моделирования перспективных комбинаторных алгоритмов компиляции и непосредственно перспективных архитектур процессоров и систем. Нам надо просто быстро делать это в исследованиях (т.е. быстро ставить эксперименты), вот и выбрали Рефал, опыт его такого использования есть еще с времен ракетно-космической тематики в ИПМ. Рефал, вдобавок, у нас с введенными операциями типа MPI. Это в 2004 году в НИЦЭВТ-е добавили к М-рефалу. Так что хоть  какое-то распараллеливание есть, это будет важно применить в комбинаторных алгоритмах компиляции. Сейчас со всем этим будем работать на сервере с 28 ядрами.Л.Эйсымонт 28.11.2019, 14:16, "Александр Коновалов a.v.konovalov87_AT_mail.ru" <refal@botik.ru>:Добрый день, Леонид!Я только что написал в рассылку про тонкости семантики вещественных чисел, включая сравнение на равенство. Как в М-Рефале решена проблема равенства вещественных чисел? Или во времена Бурана он писался для компьютеров со своей (не IEEE) реализацией вещественной арифметики? С уважением,Александр Коновалов From: Eisymont Leonid verger-lk_AT_yandex.ru <refal@botik.ru>Sent: Thursday, November 28, 2019 1:53 PMTo: refal@botik.ruSubject: Re: Нужны ли вещественные числа в Рефале? Вещественные числа есть в М-Рефале (моя с Николаем Мансуровым разработка). Без них мы бы компилятор для Бурана не смогли бы сделать - нужны были вычисления для выбора масштабов. Это есть там с середины 80-х годов прошлого столетия.Л.Эйсымонт 27.11.2019, 19:44, "Александр Коновалов a.v.konovalov87_AT_mail.ru" <refal@botik.ru>:Добрый вечер всем!Собственно, вопрос: нужны ли вещественные числа в Рефале? Из известных мне реализаций они есть только в Рефале-6. Также они упоминались в старом учебнике Рефала-5 Турчина, при этом описывались встроенные функции Trunc, Real и Realfun. В новом актуальном их нет.Вопрос их отсутствия в большинстве реализаций — идеологический или технический?У меня (Рефал-5λ) их нет, поскольку (а) мне они не требовались, (б) их нет в Рефале-5, с которым должен быть совместим Рефал-5λ. Добавлять или не добавлять — я думаю. Поэтому и спросил. С уважением,Александр Коновалов 

Re: Нужны ли вещественные числа в Рефале?

2019-11-28 Пенетрантность Arkady Klimov arkady . klimov_AT_gmail . com
Александр, как же так, вы же писали что в синтаксисе вещественных констант
нет, как же это вы скомпилировали, и выполнили?
У меня это тоже не компилируется, точнее неправильно компилируется.
Но в самом рефале вещественные числа есть. Вопрос в том, как получить
первое число. Если вещественное сложить с целым, будет уже вещественное. Но
целое с целым всегда целое. Там есть разные функции типа SIN, LOG - можно
через них получить вещ из цел. МОжно даже считать из файла через READ или
DECODE. Типа все есть, кроме возможности писать в самом языке константы.
Это недоделка.
Кстати, я сам тестирую функции в интерактивном режиме. Он вызывается через
батник rfi.bat.
Или командой ri i+*ask .
Потом вводим (после приглашения #>):
#>mul 3 0.5
1.50e+000
#> mul 0 -1.0
-0.00e+000
#> compare 0.0 
'='
#>compare 1 0.0
'<'
 Без угловых скобок строчными (если надо все заглавные) можно (нужно)
писать только самый внешний вызов. Остальные - как в файле *.ref
Как видите, при сравнении целого и вещественного целое всегда меньше. А как
надо?
Аркадий


чт, 28 нояб. 2019 г. в 14:11, Александр Коновалов a.v.konovalov87_AT_mail.ru
:

> Аркадий!
>
> В дистрибутиве Refal-Java лежит обычный Рефал-6 более свежей версии
> с вещественными числами. И у меня для Вас фокус.
>
> Рассмотрим такую волшебную функцию:
>
> Magic {
>   s.X s.Y
> ,  : '='
> , {
> s.X : s.Y = ;
> s.X :# s.Y = ;
>   };
>
>   s.X s.Y = ;
> };
>
> Функция сравнивает два символа при помощи COMPARE. Если они с точки
> зрения COMPARE не равны, печатается Ok2.
>
> А вот если COMPARE вернула '=', то символы сравниваются при помощи
> рефальского отождествления. Логично было бы ожидать, что функция COMPARE 
> возвращает
> '=' только для синтаксически отождествимых между собой символов (хотя
> документация об этом благоразумно ничего не говорит).
>
> Но можно построить символы, которые не равны с точки зрения
> отождествления, но при этом считаются равными COMPARE:
>
> $ENTRY GO {
>   =  >
> };
>
> Умножение нуля на положительное число даёт вещественное значение +0,
> умножение на отрицательное — −0 (минус ноль). Битовые представления у этих
> чисел различны, но вещественное сравнение их считает равными (согласно
> стандарту IEEE на вещественные числа).
>
> Функция COMPARE считает +0 и −0 равными значениями, но рефальское
> отождествление их различает. Выводятся на экран они, кстати, одинаково.
>
> Можно предположить, что рефальское отождествление с повторной переменной
> сравнивает битовое представление чисел, из-за чего ноль не всегда равен
> нулю. Но простая замена битового сравнения на вещественное приведёт
> к другому фокусу, нарушающему более глубокие семантические инварианты.
>
>
>
> С уважением,
> Александр Коновалов
>
>
>
> *From**:* Александр Коновалов a.v.konovalov87_AT_mail.ru 
> *Sent**:* Thursday, November 28, 2019 1:25 PM
> *To**:* refal@botik.ru
> *Subject:* RE: Нужны ли вещественные числа в Рефале?
>
>
>
> Добрый день, Аркадий!
>
> Хотел посмотреть, как работают вещественные числа в Рефале-6. Скачал
> дистрибутив с сайта refal.ru, распаковал, поправил путь в ri.bat. Написал
> такую программу (zero.ref):
>
> $ENTRY GO {
>   = >;
> };
>
> Компилирую и запускаю — падает:
>
> D:\…\Refal6>rfc zero.ref
>
> D:\…\Refal6>ri i+c+*go zero.ref -W0 -B25000
> Refal-6 Compiler. Copyright (C) 1993 by Ark. Klimov
> zero.ref:
> Parsing time = 0.00 seconds
> No syntax errors
> Compilation time = 0.00 seconds
>
> D:\…\Refal6>ri i+zero.rex+*go
> EVAL: *** Unexpected FAIL
> EVAL: Act Vf Fre Run [n]Step [n]Trc Evl Chg Kil New Inf M W D H cLr Quit>a
> AT: <*DIV 1 "." 0 1 "." 0>
> EVAL: Act Vf Fre Run [n]Step [n]Trc Evl Chg Kil New Inf M W D H cLr Quit>q
> Exit? (Y/N/P)>y
>
> Такое чувство, что синтаксис вещественных чисел не поддерживается. Число
> +1.0 компилятор проинтерпретировал как целое +1, слово "." и целое 0.
>
>
>
> В документации написано (
> http://refal.ru/~arklimov/refal6/M5-Lib.htm#Arithm):
>
> *«Функции этой группы оперируют с целыми или вещественными числами. Если
> оба аргумента целые, то результат — целый, в противном случае —
> вещественный.»*
>
> Видоизменил программу: делю 1 на 2:
>
> $ENTRY GO {
>   = >;
> };
>
> Выводит целый 0.
>
> Похоже, что в версии, опубликованной на сайте refal.ru, вещественные
> числа не поддерживаются. А RI32.EXE я запустить не смог — у меня
> 64-разрядная Windows и она не поддерживает DOS-овские исполнимые файлы.
>
> Возможно, они есть в Refal-Java, но мне пока лень разбираться с её
> установкой и конфигурированием.
>
>
>
> С уважением,
> Александр Конова

RE: Нужны ли вещественные числа в Рефале?

2019-11-28 Пенетрантность Александр Коновалов a . v . konovalov87_AT_mail . ru
Добрый вечер, Леонид!

«Мы же сами только обеспечивали работу с такими числами через символы-ссылки.»

Если представлять вещественные числа символами-ссылками, то проблема равенства 
уходит на второй план: два символа равны, если ссылаются на общий контейнер.

«Так что хоть какое-то распараллеливание есть, это будет важно применить в 
комбинаторных алгоритмах компиляции. Сейчас со всем этим будем работать на 
сервере с 28 ядрами.»

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

 

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

 

From: Eisymont Leonid verger-lk_AT_yandex.ru [mailto:refal@botik.ru] 
Sent: Thursday, November 28, 2019 5:41 PM
To: refal@botik.ru
Subject: Re: Нужны ли вещественные числа в Рефале?

 

Конечно, не IEEE, у нас была та арифметика, что есть в ЕС ЭВМ (IBM 360). Мы же 
сами только обеспечивали работу с такими числами через символы-ссылки.

Для очень точных вычислений использовали дроби. Про работу с длинной мантиссой 
я не помню, кажется была. Надо посмотреть, реализация ведь есть и мы ее подняли 
сейчас в ЗАО"НТЦ"Модуль" для моделирования перспективных комбинаторных 
алгоритмов компиляции и непосредственно перспективных архитектур процессоров и 
систем. Нам надо просто быстро делать это в исследованиях (т.е. быстро ставить 
эксперименты), вот и выбрали Рефал, опыт его такого использования есть еще с 
времен ракетно-космической тематики в ИПМ. Рефал, вдобавок, у нас с введенными 
операциями типа MPI. Это в 2004 году в НИЦЭВТ-е добавили к М-рефалу. Так что 
хоть  какое-то распараллеливание есть, это будет важно применить в 
комбинаторных алгоритмах компиляции. Сейчас со всем этим будем работать на 
сервере с 28 ядрами.

Л.Эйсымонт

 

28.11.2019, 14:16, "Александр Коновалов a.v.konovalov87_AT_mail.ru" 
mailto:refal@botik.ru> >:

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

Я только что написал в рассылку про тонкости семантики вещественных чисел, 
включая сравнение на равенство. Как в М-Рефале решена проблема равенства 
вещественных чисел? Или во времена Бурана он писался для компьютеров со своей 
(не IEEE) реализацией вещественной арифметики?

 

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

 

From: Eisymont Leonid verger-lk_AT_yandex.ru mailto:refal@botik.ru> >
Sent: Thursday, November 28, 2019 1:53 PM
To: refal@botik.ru <mailto:refal@botik.ru> 
Subject: Re: Нужны ли вещественные числа в Рефале?

 

Вещественные числа есть в М-Рефале (моя с Николаем Мансуровым разработка). Без 
них мы бы компилятор для Бурана не смогли бы сделать - нужны были вычисления 
для выбора масштабов. Это есть там с середины 80-х годов прошлого столетия.

Л.Эйсымонт

 

27.11.2019, 19:44, "Александр Коновалов a.v.konovalov87_AT_mail.ru" 
mailto:refal@botik.ru> >:

Добрый вечер всем!

Собственно, вопрос: нужны ли вещественные числа в Рефале? Из известных мне 
реализаций они есть только в Рефале-6. Также они упоминались в старом учебнике 
Рефала-5 Турчина, при этом описывались встроенные функции Trunc, Real и 
Realfun. В новом актуальном их нет.

Вопрос их отсутствия в большинстве реализаций — идеологический или технический?

У меня (Рефал-5λ) их нет, поскольку (а) мне они не требовались, (б) их нет в 
Рефале-5, с которым должен быть совместим Рефал-5λ. Добавлять или не добавлять 
— я думаю. Поэтому и спросил.

 

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

 



Re: Нужны ли вещественные числа в Рефале?

2019-11-28 Пенетрантность Eisymont Leonid verger-lk_AT_yandex . ru
Конечно, не IEEE, у нас была та арифметика, что есть в ЕС ЭВМ (IBM 360). Мы же сами только обеспечивали работу с такими числами через символы-ссылки.Для очень точных вычислений использовали дроби. Про работу с длинной мантиссой я не помню, кажется была. Надо посмотреть, реализация ведь есть и мы ее подняли сейчас в ЗАО"НТЦ"Модуль" для моделирования перспективных комбинаторных алгоритмов компиляции и непосредственно перспективных архитектур процессоров и систем. Нам надо просто быстро делать это в исследованиях (т.е. быстро ставить эксперименты), вот и выбрали Рефал, опыт его такого использования есть еще с времен ракетно-космической тематики в ИПМ. Рефал, вдобавок, у нас с введенными операциями типа MPI. Это в 2004 году в НИЦЭВТ-е добавили к М-рефалу. Так что хоть  какое-то распараллеливание есть, это будет важно применить в комбинаторных алгоритмах компиляции. Сейчас со всем этим будем работать на сервере с 28 ядрами.Л.Эйсымонт 28.11.2019, 14:16, "Александр Коновалов a.v.konovalov87_AT_mail.ru" :Добрый день, Леонид!Я только что написал в рассылку про тонкости семантики вещественных чисел, включая сравнение на равенство. Как в М-Рефале решена проблема равенства вещественных чисел? Или во времена Бурана он писался для компьютеров со своей (не IEEE) реализацией вещественной арифметики? С уважением,Александр Коновалов From: Eisymont Leonid verger-lk_AT_yandex.ru <refal@botik.ru>Sent: Thursday, November 28, 2019 1:53 PMTo: refal@botik.ruSubject: Re: Нужны ли вещественные числа в Рефале? Вещественные числа есть в М-Рефале (моя с Николаем Мансуровым разработка). Без них мы бы компилятор для Бурана не смогли бы сделать - нужны были вычисления для выбора масштабов. Это есть там с середины 80-х годов прошлого столетия.Л.Эйсымонт 27.11.2019, 19:44, "Александр Коновалов a.v.konovalov87_AT_mail.ru" <refal@botik.ru>:Добрый вечер всем!Собственно, вопрос: нужны ли вещественные числа в Рефале? Из известных мне реализаций они есть только в Рефале-6. Также они упоминались в старом учебнике Рефала-5 Турчина, при этом описывались встроенные функции Trunc, Real и Realfun. В новом актуальном их нет.Вопрос их отсутствия в большинстве реализаций — идеологический или технический?У меня (Рефал-5λ) их нет, поскольку (а) мне они не требовались, (б) их нет в Рефале-5, с которым должен быть совместим Рефал-5λ. Добавлять или не добавлять — я думаю. Поэтому и спросил. С уважением,Александр Коновалов 

RE: Нужны ли вещественные числа в Рефале?

2019-11-28 Пенетрантность Александр Коновалов a . v . konovalov87_AT_mail . ru
Аркадий!

В дистрибутиве Refal-Java лежит обычный Рефал-6 более свежей версии с 
вещественными числами. И у меня для Вас фокус.

Рассмотрим такую волшебную функцию:

Magic {
  s.X s.Y
,  : '='
, {
s.X : s.Y = ;
s.X :# s.Y = ;
  };

  s.X s.Y = ;
};

Функция сравнивает два символа при помощи COMPARE. Если они с точки зрения 
COMPARE не равны, печатается Ok2.

А вот если COMPARE вернула '=', то символы сравниваются при помощи рефальского 
отождествления. Логично было бы ожидать, что функция COMPARE возвращает '=' 
только для синтаксически отождествимых между собой символов (хотя документация 
об этом благоразумно ничего не говорит).

Но можно построить символы, которые не равны с точки зрения отождествления, но 
при этом считаются равными COMPARE:

$ENTRY GO {
  =  >
};

Умножение нуля на положительное число даёт вещественное значение +0, умножение 
на отрицательное — −0 (минус ноль). Битовые представления у этих чисел 
различны, но вещественное сравнение их считает равными (согласно стандарту IEEE 
на вещественные числа).

Функция COMPARE считает +0 и −0 равными значениями, но рефальское 
отождествление их различает. Выводятся на экран они, кстати, одинаково.

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

 

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

 

From: Александр Коновалов a.v.konovalov87_AT_mail.ru  
Sent: Thursday, November 28, 2019 1:25 PM
To: refal@botik.ru
Subject: RE: Нужны ли вещественные числа в Рефале?

 

Добрый день, Аркадий!

Хотел посмотреть, как работают вещественные числа в Рефале-6. Скачал 
дистрибутив с сайта refal.ru, распаковал, поправил путь в ri.bat. Написал такую 
программу (zero.ref):

$ENTRY GO {
  = >;
};

Компилирую и запускаю — падает:

D:\…\Refal6>rfc zero.ref

D:\…\Refal6>ri i+c+*go zero.ref -W0 -B25000
Refal-6 Compiler. Copyright (C) 1993 by Ark. Klimov
zero.ref:
Parsing time = 0.00 seconds
No syntax errors
Compilation time = 0.00 seconds

D:\…\Refal6>ri i+zero.rex+*go
EVAL: *** Unexpected FAIL
EVAL: Act Vf Fre Run [n]Step [n]Trc Evl Chg Kil New Inf M W D H cLr Quit>a
AT: <*DIV 1 "." 0 1 "." 0>
EVAL: Act Vf Fre Run [n]Step [n]Trc Evl Chg Kil New Inf M W D H cLr Quit>q
Exit? (Y/N/P)>y

Такое чувство, что синтаксис вещественных чисел не поддерживается. Число +1.0 
компилятор проинтерпретировал как целое +1, слово "." и целое 0.

 

В документации написано (http://refal.ru/~arklimov/refal6/M5-Lib.htm#Arithm):

«Функции этой группы оперируют с целыми или вещественными числами. Если оба 
аргумента целые, то результат — целый, в противном случае — вещественный.»

Видоизменил программу: делю 1 на 2:

$ENTRY GO {
  = >;
};

Выводит целый 0.

Похоже, что в версии, опубликованной на сайте refal.ru, вещественные числа не 
поддерживаются. А RI32.EXE я запустить не смог — у меня 64-разрядная Windows и 
она не поддерживает DOS-овские исполнимые файлы.

Возможно, они есть в Refal-Java, но мне пока лень разбираться с её установкой и 
конфигурированием.

 

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

 

From: Arkady Klimov arkady.klimov_AT_gmail.com mailto:refal@botik.ru> > 
Sent: Thursday, November 28, 2019 7:35 AM
To: refal@botik.ru <mailto:refal@botik.ru> 
Subject: Re: Нужны ли вещественные числа в Рефале?

 

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

Зачем это "нужно было мне"? Просто чтобы на рефале писать интерактивное 
приложение с богатым графическим UI, включающем создание векторных картинок.

 

 

чт, 28 ноя 2019 г., 0:45 Boyko Bantchev boykobb_AT_gmail.com mailto:refal@botik.ru> >:

> Это было давно, во времена MS-DOS’а.

Да, но я о ведь о сейчас говорю – как возможный способ реанимировать
рисование в Рефале-6 (или ввести в любой Рефал).

> Слишком оптимистичное мнение о SVG. Если график содержит миллиард точек,
> то SVG (равно как и PostScript) получится необычайно толстым, в браузере
> будет открываться годами... А вот растровая графика (например, PNG) --
> ей все равно, миллиард точек на графике или сто миллиардов (я имею в
> виду размер файла и время загрузки его; создание PNG со ста миллиардами
> точек, конечно же, в сто раз дольше, чем с миллиардом точек).

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



zero.ref
Description: Binary data


Re: Нужны ли вещественные числа в Рефале?

2019-11-28 Пенетрантность Eisymont Leonid verger-lk_AT_yandex . ru
Вещественные числа есть в М-Рефале (моя с Николаем Мансуровым разработка). Без них мы бы компилятор для Бурана не смогли бы сделать - нужны были вычисления для выбора масштабов. Это есть там с середины 80-х годов прошлого столетия.Л.Эйсымонт 27.11.2019, 19:44, "Александр Коновалов a.v.konovalov87_AT_mail.ru" :Добрый вечер всем!Собственно, вопрос: нужны ли вещественные числа в Рефале? Из известных мне реализаций они есть только в Рефале-6. Также они упоминались в старом учебнике Рефала-5 Турчина, при этом описывались встроенные функции Trunc, Real и Realfun. В новом актуальном их нет.Вопрос их отсутствия в большинстве реализаций — идеологический или технический?У меня (Рефал-5λ) их нет, поскольку (а) мне они не требовались, (б) их нет в Рефале-5, с которым должен быть совместим Рефал-5λ. Добавлять или не добавлять — я думаю. Поэтому и спросил. С уважением,Александр Коновалов 

Re: Нужны ли вещественные числа в Рефале?

2019-11-27 Пенетрантность Arkady Klimov arkady . klimov_AT_gmail . com
Как инструмент изготовления картинок SVG наверно вариант, но там была нужна
интерактивность, были также средства принимать сигналы от мышки, а это
можно делать только через экран.
Зачем это "нужно было мне"? Просто чтобы на рефале писать интерактивное
приложение с богатым графическим UI, включающем создание векторных картинок.


чт, 28 ноя 2019 г., 0:45 Boyko Bantchev boykobb_AT_gmail.com :

> > Это было давно, во времена MS-DOS’а.
>
> Да, но я о ведь о сейчас говорю – как возможный способ реанимировать
> рисование в Рефале-6 (или ввести в любой Рефал).
>
> > Слишком оптимистичное мнение о SVG. Если график содержит миллиард точек,
> > то SVG (равно как и PostScript) получится необычайно толстым, в браузере
> > будет открываться годами... А вот растровая графика (например, PNG) --
> > ей все равно, миллиард точек на графике или сто миллиардов (я имею в
> > виду размер файла и время загрузки его; создание PNG со ста миллиардами
> > точек, конечно же, в сто раз дольше, чем с миллиардом точек).
>
> Вы говорите о растровой графике, а я – о рисовании линий и фигур, о
> котором написал Аркадий Климов.  Рисование линий и фигур я связываю с
> векторной графикой и никак не с «миллиардом точек».  Впрочем, глубокие
> проблемы с обработкой миллиарда точек, как мне кажется, возникли бы
> и без всякой графики, будь то и растровой.
>


Re: Нужны ли вещественные числа в Рефале?

2019-11-27 Пенетрантность Boyko Bantchev boykobb_AT_gmail . com
> Это было давно, во времена MS-DOS’а.

Да, но я о ведь о сейчас говорю – как возможный способ реанимировать
рисование в Рефале-6 (или ввести в любой Рефал).

> Слишком оптимистичное мнение о SVG. Если график содержит миллиард точек,
> то SVG (равно как и PostScript) получится необычайно толстым, в браузере
> будет открываться годами... А вот растровая графика (например, PNG) --
> ей все равно, миллиард точек на графике или сто миллиардов (я имею в
> виду размер файла и время загрузки его; создание PNG со ста миллиардами
> точек, конечно же, в сто раз дольше, чем с миллиардом точек).

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


Re: Нужны ли вещественные числа в Рефале?

2019-11-27 Пенетрантность Mikhail Kovtun mikhail . kovtun_AT_duke . edu
Слишком оптимистичное мнение о SVG. Если график содержит миллиард точек, 
то SVG (равно как и PostScript) получится необычайно толстым, в браузере 
будет открываться годами... А вот растровая графика (например, PNG) -- 
ей все равно, миллиард точек на графике или сто миллиардов (я имею в 
виду размер файла и время загрузки его; создание PNG со ста миллиардами 
точек, конечно же, в сто раз дольше, чем с миллиардом точек).


Best regards,
Mikhail Kovtun

On 11/27/19 3:20 PM, Boyko Bantchev boykobb_AT_gmail.com wrote:

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

Если не обязательно рисовать непосредственно на экране, то можно
порождать SVG.  Это довольно просто, очень экономно, не зависит
от о.с. и можно написать непосредственно на Рефале.  Есть еще
масса преимуществ.




RE: Нужны ли вещественные числа в Рефале?

2019-11-27 Пенетрантность Александр Коновалов a . v . konovalov87_AT_mail . ru
Это было давно, во времена MS-DOS’а. Я не знаю, для чего Аркадию тогда 
потребовалась графика. Может быть, он ответит.

-Original Message-
From: Boyko Bantchev boykobb_AT_gmail.com [mailto:refal@botik.ru] 
Sent: Wednesday, November 27, 2019 11:21 PM
To: refal@botik.ru
Subject: Re: Нужны ли вещественные числа в Рефале?

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

Если не обязательно рисовать непосредственно на экране, то можно порождать SVG. 
 Это довольно просто, очень экономно, не зависит от о.с. и можно написать 
непосредственно на Рефале.  Есть еще масса преимуществ.


Re: Нужны ли вещественные числа в Рефале?

2019-11-27 Пенетрантность Arkady Klimov arkady . klimov_AT_gmail . com
 А я не понимаю, почему для совместимости с Р5 нужно было вводить в Р5λ
целые числа в том же уродливом формате, как в Р5. Вот например в Р6 целое
это всегда символ, но это не мешает для выполнения под Р6 программ на Р5
сделать переопределение нужных функций. В Р6 я так сделал все
переопределения в отдельном модуле совместимости. Главное, чтоб можно было
переопределять под старым именем, сохраняя доступ к родным функциям внутри
таких определений. В итоге для Р5 у меня положительное число это всегда s,
а отрицательное '-' s. Только программа на Р5 не вправе опираться на размер
макроцифры.
А вещ числа мне были нужны для рисования - базовая графика: линии, фигуры
... Но это работало под домом, а сейчас под виндой не работает, увы. Эх,
восстановить бы.
Аркадий

ср, 27 ноя 2019 г., 20:33 Александр Коновалов a.v.konovalov87_AT_mail.ru <
refal@botik.ru>:

> Здесь речь о том, что, если бы они были в Рефале-5, то мне бы их
> _пришлось_ добавить и в Рефал-5λ. Даже если они мне не нужны сами по себе.
> В частности, мне пришлось добавить длинную арифметику по этой причине. И
> для совместимости с актуальной реализацией и учебником Турчина, длинная
> арифметика добавлена в виде макроцифр по основанию 2³².
> Александр Коновалов
>
> -Original Message-
> From: Boyko Bantchev boykobb_AT_gmail.com [mailto:refal@botik.ru]
> Sent: Wednesday, November 27, 2019 8:10 PM
> To: refal@botik.ru
> Subject: Re: Нужны ли вещественные числа в Рефале?
>
> > У меня (Рефал-5λ) их нет, поскольку (а) мне они не требовались, (б) их
> нет в Рефале-5, с которым должен быть совместим Рефал-. Добавлять или не
> добавлять — я думаю. Поэтому и спросил.
>
> А какого рода несовместимость появилась бы, если бы у Рефала-5λ были
> вещественные числа?  Т.е.,  программы на Рефале-5 имели бы ошибочное (с
> точки зрения Рефала-5) истолкование в Рефале-5λ?
>


RE: Нужны ли вещественные числа в Рефале?

2019-11-27 Пенетрантность Александр Коновалов a . v . konovalov87_AT_mail . ru
Здесь речь о том, что, если бы они были в Рефале-5, то мне бы их _пришлось_ 
добавить и в Рефал-5λ. Даже если они мне не нужны сами по себе. В частности, 
мне пришлось добавить длинную арифметику по этой причине. И для совместимости с 
актуальной реализацией и учебником Турчина, длинная арифметика добавлена в виде 
макроцифр по основанию 2³².

Александр Коновалов

-Original Message-
From: Boyko Bantchev boykobb_AT_gmail.com [mailto:refal@botik.ru] 
Sent: Wednesday, November 27, 2019 8:10 PM
To: refal@botik.ru
Subject: Re: Нужны ли вещественные числа в Рефале?

> У меня (Рефал-5λ) их нет, поскольку (а) мне они не требовались, (б) их нет в 
> Рефале-5, с которым должен быть совместим Рефал-5λ. Добавлять или не 
> добавлять — я думаю. Поэтому и спросил.

А какого рода несовместимость появилась бы, если бы у Рефала-5λ были 
вещественные числа?  Т.е., какие программы на Рефале-5 имели бы ошибочное (с 
точки зрения Рефала-5) истолкование в Рефале-5λ?


Re: Нужны ли вещественные числа в Рефале?

2019-11-27 Пенетрантность Boyko Bantchev boykobb_AT_gmail . com
> У меня (Рефал-5λ) их нет, поскольку (а) мне они не требовались, (б) их нет в 
> Рефале-5, с которым должен быть совместим Рефал-5λ. Добавлять или не 
> добавлять — я думаю. Поэтому и спросил.

А какого рода несовместимость появилась бы, если бы у Рефала-5λ были
вещественные числа?  Т.е., какие программы на Рефале-5 имели бы
ошибочное (с точки зрения Рефала-5) истолкование в Рефале-5λ?