News


Subject: News
From: Alexander P. Konyshev (shura@hope.polnet.botik.ru)
Date: Wed Feb 02 2000 - 00:25:33 MSK


         Об'явление.

На страничке http://www.botik.ru/pub/local/scp/refal5/refal5.html
выложена новая версия Рефала 5:

-- исправлены замеченные ранее ошибки;

-- изменен формат RSL-файлов! ПЕРЕКОМПИРУЕЙТЕ все рефальские исходники.

-- снято ограничение на длину имен переменных;

-- снято ограничение на длину имен функций;

-- снято ограничение на длину имён идентификаторов;

-- оптимизировано обращение к внешней функции (EXTERNAL).

-- добавлены управляющие ключи для интерпретатора:
    -cnnn (или --code_limit=nnn)
        где nnn ограничение на размер RSL-модуля в Kb (килобайт)

    -Vnn (или --var_stack=nn)
        значения рефальских переменных заносятся в таблицу переменных
        во время отождествления.
        Параметр nn умноженный на умолчательный размер таблицы определяет
        её реальный размер. По умолчанию размер таблицы подобран так,
        что для большинство задач его не надо менять. Рекомендуемые
        значения параметра nn от 1 до 10.

    -Cnn (или --call_stack=nn)
        параметр nn умножинный на умолчательное значение влияет на размер
        стэка для вызовов рефальских функций и числа предложений в левых
        частях функции (patterns). По умолчанию размер этого стэка подобран
        так, что удолетворяет для большинства задач. Рекомендуемые значения
        параметра nn от 1 до 10.

-- добавлены встроенные функции:
    <ExistFile e.Name> :: s.Boolean
        Функция-предикат проверяет наличие файла, заданного аргументом
        e.Name, как последовательность символов. Возвращает булевское
        значение True или False, как рефал-символ, в зависимости от
        наличия файла.

    <GetCurrentDirectory> :: e.DirName
        Функция возвращает абсолютный путь до текущей директории, как
        рефальскую последовательность символов. Эта функция не принимает
        аргументов.

    <RemoveFile e.Name> :: s.Boolean (e.Error)
        Удаляет файл, указанный в аргумете, который состоит из рефальской
        последовательности символов. Возвращает True или False (как
        рефальский символ) и код ошибки удаления (e.Errors), если она
        произошла, возвращенной операционной системой. e.Errors
        представляет собой рефальскую последовательность символов. Если
        s.Boolean является True, то e.Errors пустое выражение.

Важное замечание:
 Начиная со следующей версии в синтаксис и сематику Рефала-5 будут внесены
изменения.

Призываю Вас непрерывно подправлять синтаксис исходных текстов -- уложить их
в пересечение старого и нового синтаксисов. Точно определение я здесь давать
не буду, оно появится на одной из страничек. Приведу несколько важных
принципиальных моментов "пересечения" двух синтаксисов:
   -- между типом и именем переменной обязательно должна стоять точка;
   -- идентификаторы, имена функций и имена переменных считаются равными
      только при условии ПОЛНОГО графического совпадения (например имена
      функций Ff и FF не равны)
   -- существенно меняется семантика двойных кавычек " -- ранее их семантика
      совпадала с семантикой одинарных кавычек ' , т.е. замените все Ваши
      двойные кавычки на одинарные;

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




  _ . _______________________________________
  )`|-, Alexander P. Konyshev
_/__|_)_ shura@shura.botik.ru
\______/ UIN: 18750145



This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:58 MSD