Re: Refal+ abstract syntax


Subject: Re: Refal+ abstract syntax
From: Andrey Slepuhin (pooh@msu.ru)
Date: Mon Dec 06 1999 - 12:19:16 MSK


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, но это
все-таки не основное. И еще: с моей точки зрения было бы неплохо
сразу описывать семантику.

Всего доброго,
Андрей.



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