Scp4's news.


Subject: Scp4's news.
From: Andrei P. Nemytykh (nemytykh@math.botik.ru)
Date: Sat Sep 02 2000 - 23:57:48 MSD


           Об'явление.

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

   Что нового:
    -----------------------------------------------------------------
     - Данная версия SCP4 ТРЕБУЕТ версии РЕФАЛА-5 с НОВЫМ синтаксисом
       (которую можно взять на той же странице ).
       Под старой версией Рефала-5 данная версия SCP4 работать НЕ будет.

    - ВХОДНОЙ ЯЗЫК Scp4 ИЗМЕНЁН. Scp4 преобразовывает программы
       в новом синтаксисе Рефала-5.
       Необходимо ПЕРЕНЕСТИ ВСЕ Ваши модули под НОВЫЙ синтаксис.

     - Scp4 для старого синтаксиса Рефала-5 не поддерживается.

     - Scp4 под операционной системой MS DOS не поддерживается.

     - Исправлено несколько ошибок.
       Большое спасибо Александру Корлюкову , за пересланные мне тесты на
ошибки.

     - Входной язык Scp4 расширен:
                           -- реализована специальная стандартная функция
ScpArg.
                               Эта функция может быть вызвана из
преобразовываемой
                               программы <ScpArg s.number> и должна быть
объявлена в ней
                               как внешняя и исполняемая. Если Вы вызываете
Scp4 с
                               дополнительным аргументом вида
user+string1+string2...+stringN ,
                               тогда результат вызова этой функции в момент
суперкомпиляции
                               будет строка с номером s.number. Функция
существует только в
                               момент суперкомпиляции.
                             ( Например: SYSTEM> scp4 config.mst
user+my_file.txt+your_file.txt
                                                <ScpArg 0> ==> 'user'
                                                <ScpArg 1> ==> 'my_file.txt'
                                                <ScpArg 2> ==>
'your_file.txt'
                                                <ScpArg 3> ==>

/* empty */
                             )

   - Появился новый псевдокомментарий:
     *$VERSION e.version;
                        -- он позволяет описывать желаемую версию Scp4.
                            inref4.bat выдаст предупреждение, если
актуальная версия не
                            совпадает с объявленной.

                        -- имя текущей версии можно узнать двумя способами:
                                              -- вызвать внешнюю исполняемую
функцию <Scp4Version>
                                                  из программу, которая
будет преобразовываться;

                                              -- посмотреть определение этой
функции в модуле KEY.REF

     - Появился новый файл TRACE.TXT, где даны некоторые комментарии к
        Scp4-трассировке.

     - Добавлено несколько новых демонстрационных примеров.
      (Например:
       программа #1:
              $ENTRY Go { s.1 (e.x) = <Subst (s.1 s.1) e.x>; }

              Subst {
              (s.what e.value) = ;
              (s.what e.value) s.what e.where
                                = e.value <Subst (s.what e.value) e.where>;
              (s.what e.value) s.1 e.where
                                = s.1 <Subst (s.what e.value) e.where>;
              (s.what e.value) (e.1) e.where
                   = (<Subst (s.what e.value) e.1>) <Subst (s.what e.value)
e.where>;
              }

       преобразуется к Go { s.1 (e.x) = e.x; }

       программа #2:
              $ENTRY Go { e.x = <Fbc <Fab e.x>>; }

              Fab { 'a' e.x = 'b' <Fab e.x>;
                    s.1 e.x = s.1 <Fab e.x>;
                            = ;
                  }

              Fbc { e.x = <Fbc1 e.x> (e.x); }

              Fbc1 { 'b' e.x = 'c' <Fbc1 e.x>;
                      s.1 e.x = s.1 <Fbc1 e.x>;
                              = ;
                   }

       преобразуется к
              $ENTRY Go { e.41 , <F46 e.41 >:e.130 = <F11 e.41 > (e.130 )
; }

              F46 { 'a' e.41 = 'b' <F46 e.41 > ;
                    s.118 e.41 = s.118 <F46 e.41 > ;
                                = ;
                  }

              F11 { 'a' e.41 = 'c' <F11 e.41 > ;
                    'b' e.41 = 'c' <F11 e.41 > ;
                  s.103 e.41 = s.103 <F11 e.41 > ;
                              = ;
                  }

     )
     ( см. DOC/USE.TXT и сами примеры DEMO/)

   Андрей Немытых.



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