Re: Refal interpreter


Subject: Re: Refal interpreter
From: Leonid Belous (belous@ilt.kharkov.ua)
Date: Sat Jan 22 2005 - 22:28:38 MSK


Здравствуйте, Антон!

Правильно ли я понял, что встроенные арифметические функции в Вашей реализации (add,sub,mul,div,div,mod)пока не расчитаны на произвольноразрядную целую арифметику?

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

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

Я бы рекомендовал вот это описание http://www.refal.net/origins/d2k/[Functional.Programming].Klimov,.Romanenko.-.Refal-2..Opisanie.vxodnogo.yazy`ka.(1987)(ru).djvu . Это расширение Базисного Рефала было реализовано на EC ЭВМ, БЭСМ-6, PDP-11, VAX-11, IBM PC.

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

С уважением,
--Леонид Белоус

----- Исходное сообщение -----
От: "A.A.Vladimirov" <vladimi@mech.math.msu.su>
Кому: <refal@botik.ru>
Отправлено: 21 января 2005 г. 15:39
Тема: Re: Refal interpreter

> > 1. Что представляет реализуемое Вами подмножество языка Рефал и его синтаксис.
> Если в общих чертах, то реализуется нечто типа первоначального Рефала, а
> именно:
> 1) типы переменных - e, s, и w; имена состоят из произвольного числа
> букв и заключаются в "/";
> 2) функции пишутся через "k" и ".";
> 3) красивостей (вроде where- и with-выражений) не предусмотрено.
> 4) комментарии начинаются с "#" (вместо "*"), строки "склеиваются"
> посредством "\" (вместо "+");
> 5) строки делятся на:
> 5.1) пустые (состоят только из пробелов и табуляций) - игнорируются.
> 5.2) начинающиеся с символа "$" - это "команды интерпретатора" (см.
> ниже)
> 5.3) начинающиеся с буквы - определения функций; должны состоять из
> имени функции и первой формулы подстановки
> 5.4) начинающиеся с пробела или табуляции - продолжение определения
> функции; состоит из формулы подстановки.
> 6) $-команды: $use (подключение библиотеки встроенных функций); $include
> (включение в программу другого рефал-файла; аналогично команде из C);
> $start (определение начального поля зрения).
> 7) кодировкой, на которой пишется скрипт, является UTF-8 (в частности,
> можно применять чистый ASCII).
> 8) все символы - натуральные числа (начиная с нуля и заканчивая
> переполнением ОЗУ). Соответственно, строка типа 'ля-ля-ля' с внутренней
> точки зрения представляет собой последовательность номеров входящих в
> неё букв.
>
> Например, всеми любимое оборачивание строк, берущихся из файла
> '1.txt' (и записанных в любой однобайтовой кодировке), с записью
> результата в '2.txt' (в той же кодировке) может выглядеть так, как это
> сделано в программе из вложенного архива. Надеюсь, синтаксис
> используемых функций интуитивно понятен :)
>
> > 2. Вы обещали поменять комментарии на более читабельный (нежели "ломаный Эсперанто" :-) )
> > язык. Но относится ли это намерение к идентификаторам в программе? Глядя на имя
> > "nterp_preni_nomon", возникает какая-то ассоцияция с интерпретацией, но не более.
>
> Ну, комментарии - это вопрос понятный. А идентификаторы - неужели же они
> действительно столь нечитаемы? Лексика-то всё же интернациональная (хотя
> чаще - романская, а не германская)...
>
> > Кстати, мне часто попадалось имя "kuranta", что оно означает?
>
> "Текущий". Обычно указывает на обрабатываемый в данный момент элемент
> списка.
>
> С уважением,
> Антон Владимиров
>
>



This archive was generated by hypermail 2b25 : Sat Jan 22 2005 - 22:33:31 MSK