Re: Refal+ abstract syntax


Subject: Re: Refal+ abstract syntax
From: Arkady Klimov (klark@bagirra.rinet.ru)
Date: Mon Dec 06 1999 - 14:15:43 MSK


----- Original Message -----
From: Andrey Slepuhin <pooh@msu.ru>
To: Arkady Klimov <klark@bagirra.rinet.ru>
Cc: Sergei M. Abramov <abram@botik.ru>; <refal@botik.ru>
Sent: Monday, December 06, 1999 12:19 PM
Subject: Re: Refal+ abstract syntax

> Arkady Klimov wrote:
> >
> > Андрей, добрый день.
>
> Добрый день!
>
> >
> > Как я понял, то что ты здесь предлагаешь, это - средство,
позволяющее
> > смешивать результатные выражения с блоками (тоже, видимо,
> > результатными), чтобы их результаты объединялись в одно значение
путем
> > конкатенации, да? В принципе, это интересная возможность, и о ней
> > стоит подумать, но, на мой взгляд это никак не связано с вопросами
АС,
> > которые мы обсуждали. Тем не менее давайте обсудим и эту
возможность.
> >
> > 1. А какие средства в исходном синтаксите будут ей отвечать?
>
> Речь пока не идет об исходном синтаксисе. Мысли, высказанные в
письме,
> были просто результатом размышлений на тему семантики всевозможных
> комбинаций того, чем может быть t.Action.
Хм, тогда, наверно я не вполне понял эти размышления. Как я уже
писал,мне интересны вопросы типа: а какая семантика такой-то
комбинации. Мне кажется, есть общая семантика (я тоже писал о ней) и
из нее по-моему все следует. Но если возникают сомнения и
контрпримеры - давайте рассматривать.
>
> > 2. А почему мы ограничиваемся только возможностью конкатенации
> > выражения с блоком, для полноты счастья было бы неплохо уметь
> > использовать блок как произвольную часть результатного выражения,
> > например брать его в скобки, передавать аргументом в функции и
т.п.,
> > например (в условном внешнем синтаксисе):
> > <F e1 ({<G e2>:t3 e4=t3})>
> > Но тогда и в АС нужно иметь возможность просто поместить блок как
один
> > из элементов результатного выражения. В АС это ведь ничему не
> > противоречит, поскольку там все скобки помечены тегами и все
> > однозначно разбираемо. С семантикой, думаю, тоже больших проблем
не
> > будет, также как и с компиляцией в виртуальный код.
>
> Думаю, да.
>
> > Но, подчеркну еще
> > раз, это все замечательно в АС, но во внешнем синтаксисе могут
быть
> > синтаксические проблемы. Но лично я не вижу ничего против того,
чтобы
> > уже сейчас это ввести в АС, не обязательно думая о том, как это
будет
> > во внешнем.
>
> Абсолютно согласен. Если что, я готов писать программы прямо на АС -
> это не сложно ;-)
>
> > Хотя бы для тех приложений, где нужно будет порождать
> > программы в АС динамически.
> >
> > Аркадий.
> >
> > PS. Продолжаешь ли ты работать над АС? Мне хотелось бы получить
твои
> > комментарии по сути предложенного мной в
> > http://inet.keldysh.ru/dpt_16/arklimov/RefalAbstractSyntax.htm
>
> Я сейчас хочу как можно быстрее выложить новую версию Рефала+, в
которой
> уже будет компиляция в виртуальный код, поэтому временно над АС не
> работаю. Кроме того, очень хотелось бы услышать мнение авторов
Рефала+
> (т.е. Сергея Романенко и Рутена Гурина). В целом мое мнение такое:
> С большей частью я в принципе согласен, мне не нравится только
> раскрытие NOT и ITER - с моей точки зрения это ход в сторону
приближения
> к виртуальному коду (то как они раскрываются - просто один в один
> совпадает с тем, как они отображаются в виртуальном коде).
Ну, это (замечание в скобках) можно считать также и аргументом ЗА
раскрытие.
Но тут я не хочу ничего навязывать. Может, есть также резон в том,
чтобы сделать несколько уровней АС на пути от внешнего к виртуальному
коду.

> Есть над чем подумать в отношении import/export и pragma, но это
> все-таки не основное. И еще: с моей точки зрения было бы неплохо
> сразу описывать семантику.
Согласен. И еще надо добавить const (и ссылки), которые также должны
быть увязаны с import/export.

Пока давай возьмем тайм-аут, пусть отлежится. Еще будут обсуждения в
связи с трансляцией Рефала в ЯВУ (Язык Высокого Уровня), которые тоже
могут наложить свой отпечаток на работу по АС.
>
> Всего доброго,
> Андрей.



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