?

Log in

No account? Create an account

Метапрограммирование в Агде и немного философии - Excelsior

Aug. 27th, 2013

09:49 am - Метапрограммирование в Агде и немного философии

Previous Entry Share Next Entry

Comments:

From:Valentin Budaev
Date:September 3rd, 2013 08:59 am (UTC)
(Link)
> Синтетические деревья, которым позиция не сопоставлена, получают позицию макро вызова, который сейчас раскрывается.

Ага, это хорошо.

> Не знаю, как это делается в Схеме

В схеме оно just works. Экспандер раскрывает форму -> смотрит не является ли оно define-syntax, если является - вычисляет в +1 фазе тело и добавляет в лексический контекст информацию о том, что с соответствующим идентификатором связан макространсформер. И дальше при раскрытии если этот сгенеренный макрос встретится, то он уже будет раскрываться, т.к. добавлен в контекст.

> я планирую это сделать через интерпретацию деревьев.

Это как? В смысле, что вообще под этим подразумевается?

> Вообще, наше обсуждение это часть большого редизайна нашей макросистемы, которым я сейчас занимаюсь. Если вам будет интересно, я расшарю первую версию дизайн-документа, когда она будет готова для прочтения кем-нибудь кроме меня (сейчас там еще во многих местах полнейший хаос).

О, мне очень интересно будет :)
(Reply) (Parent) (Thread)
[User Picture]
From:xeno_by
Date:September 3rd, 2013 11:52 am (UTC)
(Link)
> "вычисляет в +1 фазе тело"
Ага, именно это я и хочу реализовать через интерпретацию.
(Reply) (Parent) (Thread)