Subject: Re: Refal -> Java?  РефалАС-->АСАИЯ !
From: Nikolai Kondratiev (Nikolai.Kondratiev@gmx.de)
Date: Fri Dec 10 1999 - 13:25:09 MSK
Сергей,
я хочу еще раз подчеркнуть именно важность интеграции с Явой. Я бы все рассматривал именно с этой точки зрения.
На мой взгляд даже сам принцип отображения функция -> функия, выражение -> массив важен именно потому, что интерфейс с Явой крайне упрощается. В Яве мы можем получить хороший "тягач" для рефала. Все, что будет мешать интегрировать рефал с Явой я бы безжалостно отбросил. Даже ценой потери универсальности отображения по отношению к другим императивным языкам.
Второе, что бы я безжалостно отбросил - это преемственность по отношению с существующим и существовавшим реализациям рефала. Версию языка необходимо определить заново. Если она войдет в противоречие с существующими реализациями на уровне АС, тем хуже для этих реализаций и для АС.
Это не означает, что новая версия не возьмет ничего от старых, но мы не должны быть связаны никакими нашими исторически сложившимися предпочтениями. Версия рефала для Явы (Refal-J) должна на мой взгляд разрабатываться так, чтобы быть наиболее естественной для знатоков Явы, а не рефала.
Эта тематика мне кажется важной, как относящаяся к первому уровню иерархии целей.
Николай Кондратьев
  ----- Original Message ----- 
  From: Sergei M. Abramov 
  To: Arkady Klimov ; Andrei Klimov 
  Cc: refal ; ; Lyuda Solovskaya ; Mikhail Kovtun 
  Sent: Friday, December 10, 1999 7:32 AM
  Subject: Re: Refal -> Java? РефалАС-->АСАИЯ !
  День добрый, всем!
   
  Позвольте краткую реплику, по поводу:
  Date: 7 декабря 1999 г. 22:45
  Subject: Refal -> Java
  ================
  (0) Блестящая идея!
  ================
   
  Идея компилировать Рефал(ы) в императивный язык (функция-->в функцию, развилки-->в "IF", вызовы-->в CALL, циклы--в циклы) как убедительно показал Алик, достояна самого пристального внимания...
   
  Я давно (с лета!) не испытывал такого Рефал-удовлетворения и Рефал-подъема!
   
  ===================
  (1) Давно забытое старое
  ===================
   
  Конечно, идея старая.  И даже был ведь компилятор Рефала Плюс в Си.
   
  Правда, идея Алика--намного глубше ТОГО компилятора--там был все-таки виртуальный код.
   
  Основная мысль у Алика (и именно ее надо не потерять), в том, что: виртуальный код НЕ НУЖЕН, ОН ТОЛЬКО МЕШАЕТ (!!!).  
  Нужна прямая синтаксическая компиляция из АС в императивный язык (и Ява тут не причем):
   
  1    функция-->в функцию; 
        арность-->в арность; 
        коарность-->хотелось бы в коарность, (но можно выкрутиться и массивом, хотя надо честно себе сказать--это именно "выкрутиться", кривое решение,  по хорошему надо возвращать раздельно).
   
  2    переменные-->в переменные;
   
  3    развилки-->в "IF"; 
   
  4    вызовы-->в CALL; 
   
  5    циклы--в циклы (хочу в императивном языке иметь метки и GOTO внутри тела функции!  Не знаю, в Яве-то они есть?);
   
  6    "::" в присваивания;
   
  7    ":" в цепочку конструкций, с широкой эксплуатацией преимуществ массивного представления списков:
          (а) прямое обращение к термам по индексу;
          (б) проверка длинны массива, прежде чегм ковыраться в термах.
   
  Ради исторической справедливости скажу, что даже в такой формулировке (1--7) идея у нас была уже давно.  А именно, 
   
      *    я четко помню, что Рутик и СеРгей обсуждали такую компиляция (по крайней мере, раздел "2. переменные-->в переменные;" мне помнится четко);
   
      *    и в своих играх в НИЦЭВТе (Рефал-->ПЛ/1-МДА) я выписывал (но не реализовал!) использование "7.б Проверка длинны массива, прежде чегм ковыраться в термах";
   
      *    а в понедельник идя из МГУ в метро (за день !!!, когда я от Алика узнал о его письме!) с Андреем Слепухиным мы именно такую реализацию обсуждали ;-)
   
  Сказанное выше не умалаяет исторического значения сделанного Аликом шага--надо было не просто обсуждать, надо было вспомнить это самое "давно забытое старое" и не побояться ярко показать, что оно красиво и НАСТОЛЬКО эффективно (надо было попрограммировать и замерить эффективность!)
   
  СПАСИБО!
  =============================
  (2) Надо делать быстро и качественно
  =============================
   
  Это общий мотив всех откликов на Аликино письмо.  И я присоединяююсь к этому.
   
  Ну так и давайте от общих слов попробуем перейти к конкретному обсуждению (прежде чем перейти к делу ;-).  Тем более (по результатом восторженной реакции и после локального обсуждения со Светланой Пономаревой) кажется могут быть волонтиры, которые возможно до 15 января будут иметь "дырку" для написания такого компилятора.  Сложного-то в нем ничего ведь нету!
   
  Так что значит "делать быстро и качественно" (чтобы по возможности потом не переделывать)?  Мне кажется, это осначает:
   
      *    Компилировать надо из АС
   
      *    А при чем тут Ява? Компилировать надо в АСАИЯ (в Абстрактный Синтаксис Абстрактного Императивного Языка)
   
  =======================
  (3) Компилировать надо из АС
  =======================
  Думаю, с этим тезисом все согласятся.
  Тем самым, после выступления Алика можно сделать два адмнистративных заявления:
   
      -а- работа в направлении "уметь выдавать виртуальный код из РефалПлюс компилятора"--имеет низкий приоритет, так как для промышленной реализации Аликовой идеи:
          >...виртуальный код НЕ НУЖЕН, ОН ТОЛЬКО МЕШАЕТ (!!!)
      -б- работа в направлении "уметь выдавать АС из РефалПлюс компилятора"--имеет ВЫСОКИЙ приоритет.
   
  ========================
  (4) А при чем тут Ява?
  Компилировать надо в АСАИЯ
  ========================
  Объяснюсь.  Ставя задачу именно так "компилировать надо в АСАИЯ"  мы легко получаем:
   
      -1- не только компилятор Рефал в Яву (я согласен, он весьма интересен!) но и компиляторы Рефал->Си/Си++, и Рефал->Т-язык (пардон за шкурный интерес ;-);
   
      -2- возможность привлечь к разработке волонтеров, которые не знают (не хотят спешно изучать) Яву (например: Абрамов, Пономарева);
   
      -3- да и вообще, это выделение разумной независимой фазы ;-)
   
  Ну а фаза "АСАИЯ -->Ява" будет задачей на полчаса, для знатоков Явы...
  Впрочем как и фазы "АСАИЯ -->Си", "АСАИЯ -->Си++", "АСАИЯ -->Т-язык".
  Вот и все, что я хотел бы сказать по Аликовму письму.
   
  Самый важный лично для меня тезис: 
  ========================
  Андрей Слепухин!  Срочно 
  захотелось иметь отдельную 
  фазу:  Рефал Плюс-->АС
  ========================
   
  Всего всем доброго,
   
  Сергей
This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:58 MSD