Re: Нужны ли вещественные числа в Рефале?
Какое-то странное обсуждение. Кусок памяти с числом, на который имеется ссылка в звене списковой памяти, которое с точки зрения рефала - ссылка , это просто вещественное число. Можно по-другому назвать, тип добавить. Какая разница? Своего рода косвенная адресация. Что с ним можно делать - все в силе. В том числе и стандарт 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: Нужны ли вещественные числа в Рефале?
Добрый день, Леонид! «С указателями на числа все неправильно. Именно надо работать с тем, на что ссылаемся, на 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: Нужны ли вещественные числа в Рефале?
С указателями на числа все неправильно. Именно надо работать с тем, на что ссылаемся, на 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: Нужны ли вещественные числа в Рефале?
Добрый день, Леонид! «Со символами ссылками не так. Там тупо в символе рефала ссылка на кусок памяти в 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: Нужны ли вещественные числа в Рефале?
Со символами ссылками не так. Там тупо в символе рефала ссылка на кусок памяти в 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: Нужны ли вещественные числа в Рефале?
Александр, как же так, вы же писали что в синтаксисе вещественных констант нет, как же это вы скомпилировали, и выполнили? У меня это тоже не компилируется, точнее неправильно компилируется. Но в самом рефале вещественные числа есть. Вопрос в том, как получить первое число. Если вещественное сложить с целым, будет уже вещественное. Но целое с целым всегда целое. Там есть разные функции типа 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: Нужны ли вещественные числа в Рефале?
Добрый вечер, Леонид! «Мы же сами только обеспечивали работу с такими числами через символы-ссылки.» Если представлять вещественные числа символами-ссылками, то проблема равенства уходит на второй план: два символа равны, если ссылаются на общий контейнер. «Так что хоть какое-то распараллеливание есть, это будет важно применить в комбинаторных алгоритмах компиляции. Сейчас со всем этим будем работать на сервере с 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: Нужны ли вещественные числа в Рефале?
Конечно, не 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: Нужны ли вещественные числа в Рефале?
Аркадий! В дистрибутиве 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: Нужны ли вещественные числа в Рефале?
Вещественные числа есть в М-Рефале (моя с Николаем Мансуровым разработка). Без них мы бы компилятор для Бурана не смогли бы сделать - нужны были вычисления для выбора масштабов. Это есть там с середины 80-х годов прошлого столетия.Л.Эйсымонт 27.11.2019, 19:44, "Александр Коновалов a.v.konovalov87_AT_mail.ru" :Добрый вечер всем!Собственно, вопрос: нужны ли вещественные числа в Рефале? Из известных мне реализаций они есть только в Рефале-6. Также они упоминались в старом учебнике Рефала-5 Турчина, при этом описывались встроенные функции Trunc, Real и Realfun. В новом актуальном их нет.Вопрос их отсутствия в большинстве реализаций — идеологический или технический?У меня (Рефал-5λ) их нет, поскольку (а) мне они не требовались, (б) их нет в Рефале-5, с которым должен быть совместим Рефал-5λ. Добавлять или не добавлять — я думаю. Поэтому и спросил. С уважением,Александр Коновалов
Re: Нужны ли вещественные числа в Рефале?
Как инструмент изготовления картинок SVG наверно вариант, но там была нужна интерактивность, были также средства принимать сигналы от мышки, а это можно делать только через экран. Зачем это "нужно было мне"? Просто чтобы на рефале писать интерактивное приложение с богатым графическим UI, включающем создание векторных картинок. чт, 28 ноя 2019 г., 0:45 Boyko Bantchev boykobb_AT_gmail.com : > > Это было давно, во времена MS-DOS’а. > > Да, но я о ведь о сейчас говорю – как возможный способ реанимировать > рисование в Рефале-6 (или ввести в любой Рефал). > > > Слишком оптимистичное мнение о SVG. Если график содержит миллиард точек, > > то SVG (равно как и PostScript) получится необычайно толстым, в браузере > > будет открываться годами... А вот растровая графика (например, PNG) -- > > ей все равно, миллиард точек на графике или сто миллиардов (я имею в > > виду размер файла и время загрузки его; создание PNG со ста миллиардами > > точек, конечно же, в сто раз дольше, чем с миллиардом точек). > > Вы говорите о растровой графике, а я – о рисовании линий и фигур, о > котором написал Аркадий Климов. Рисование линий и фигур я связываю с > векторной графикой и никак не с «миллиардом точек». Впрочем, глубокие > проблемы с обработкой миллиарда точек, как мне кажется, возникли бы > и без всякой графики, будь то и растровой. >
Re: Нужны ли вещественные числа в Рефале?
> Это было давно, во времена MS-DOS’а. Да, но я о ведь о сейчас говорю – как возможный способ реанимировать рисование в Рефале-6 (или ввести в любой Рефал). > Слишком оптимистичное мнение о SVG. Если график содержит миллиард точек, > то SVG (равно как и PostScript) получится необычайно толстым, в браузере > будет открываться годами... А вот растровая графика (например, PNG) -- > ей все равно, миллиард точек на графике или сто миллиардов (я имею в > виду размер файла и время загрузки его; создание PNG со ста миллиардами > точек, конечно же, в сто раз дольше, чем с миллиардом точек). Вы говорите о растровой графике, а я – о рисовании линий и фигур, о котором написал Аркадий Климов. Рисование линий и фигур я связываю с векторной графикой и никак не с «миллиардом точек». Впрочем, глубокие проблемы с обработкой миллиарда точек, как мне кажется, возникли бы и без всякой графики, будь то и растровой.
Re: Нужны ли вещественные числа в Рефале?
Слишком оптимистичное мнение о 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: Нужны ли вещественные числа в Рефале?
Это было давно, во времена 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: Нужны ли вещественные числа в Рефале?
А я не понимаю, почему для совместимости с Р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: Нужны ли вещественные числа в Рефале?
Здесь речь о том, что, если бы они были в Рефале-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: Нужны ли вещественные числа в Рефале?
> У меня (Рефал-5λ) их нет, поскольку (а) мне они не требовались, (б) их нет в > Рефале-5, с которым должен быть совместим Рефал-5λ. Добавлять или не > добавлять — я думаю. Поэтому и спросил. А какого рода несовместимость появилась бы, если бы у Рефала-5λ были вещественные числа? Т.е., какие программы на Рефале-5 имели бы ошибочное (с точки зрения Рефала-5) истолкование в Рефале-5λ?