mauhuur's Journal
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 9 most recent journal entries recorded in
mauhuur's LiveJournal:
| Monday, August 22nd, 2005 | | 12:27 am |
Таки update: MetaPlatform
Таки однако решился вывалить на суд общественности текущие наработки-недоделки - то, из чего планирую построить настоящую, полноценную мета-систему (то, что в последней статье описывал). Ломало регистрировать новый проект и плодить дохляков на SourceForge, да и проведённый на работе семинар так и не породил подходящего имени для проекта, в общем, зарелизил в проекте DSL Engine: http://sourceforge.net/projects/dslengine/Хоть оно и связано с предыдущим кодом только лишь не очень-то и используемым генератором парсеров, ну да ладно, если найдутся желающие проект развивать вместе со мной - зарегистрирую отдельно. Сам Scheme DSL Engine не помер и будет развиваться - но это уже совершенно отедельная история. В общем, что это такое: пока - всего лишь лиспообразный ленивый чистый функциональный язык с возможностями метапрограммирования. Работает пока только на JVM. Чем оно будет в будущем - см. в сырцах. Current Mood: angry | | Monday, February 14th, 2005 | | 11:16 am |
Таки придумал наконец, на фига мне нужен LJ. Буду сюда постить конспект всего, что нужно мне (но может быть полезным и другим). Рыться по источникам и разбрасывать выписанное куда попало - гнило, и остаётся надеяться, что хотя бы LJ приучит меня к порядку. Темы будут следующие: - реализация ленивых языков (сейчас знакомлюсь с технологиями, применёнными в GHC и Hellium) - метапрограммирование - суперкомпиляция, специализация, partial evaluation. - оптимизации вообще. - пи-исчисление, параллелизьм вообще. Ясное дело, что публиковаться всё будет в эгоистичной надежде, что если где ошибусь - меня поправят. ;) Current Mood: creative | | Thursday, January 27th, 2005 | | 12:23 pm |
Я решил. Reflection не просто имеет право на существование, оно есть вовсе полный рулез. Сижу, пытаюсь осознать последствия решения. Да, вот ещё: не я один такой, другие тоже этой темой занимаются: http://macro.sourceforge.net/Ну и если кто пропустил тему на LtU: http://lambda-the-ultimate.org/node/view/377P.S. А ещё я вынужденно сменил ориентацию. Теперь основной целевой платформой становится .NET. :( | | Saturday, December 4th, 2004 | | 10:38 pm |
Довели гады
Не, ну на фига у Схемских макр нулёвый environment... Пришлось сделать гадость, типа, теперь могу так:
(define-hier tst () ((a 1) (b 2)
(c (lambda (zz)(* zz b)))))
(new-macro (tst x) (inherit (tst))
`(,c ,x))
"Классы", естественно, параметризованные, и тоже являются макрами. Отвратительно, правда? Эх, как же я люблю Common Lisp с его человеческой, доброй и разумной семантикой defmacro. Но нет никакого Common Lisp под ненавистную, скотскую, ублюдочную JVM!!!!! :( P.S. Реализацию вышеописанной гадости смотреть в CVS проекта DSL Engine, http://dslengine.sourceforge.net/ Current Mood: angry | | Thursday, September 23rd, 2004 | | 12:36 pm |
| | Thursday, September 9th, 2004 | | 8:14 pm |
| | Sunday, June 27th, 2004 | | 2:39 am |
| | Wednesday, April 28th, 2004 | | 5:28 pm |
| | Tuesday, April 27th, 2004 | | 9:03 pm |
Макры рулят
Таки define-macro рулит... Сделал recursive descendant parser на Схеме, теперь можно его использовать в самих же макрах:
;; Wow!!! 3rd-level macro, using regexp to define a macro-expander!!!
(define-macro (exp1 . v)
(defparsers
(letrec
((epr
(let
((body
(regexp
(num :-> $0)
/
(lst -> (aprs epr)))))
(regexp
((SCM lambda (t) (print t) `((FAIL) ,@t))) /
((body + (SCM psym +) + epr)
:-> (list (+ $0 $2)))
/
((body + (SCM psym -) + epr)
:-> (list (- $0 $2)))
/
((body + (SCM psym *) + epr)
:-> (list (* $0 $2)))
/
((body + (SCM psym /) + epr)
:-> (list (/ $0 $2)))
/ body
))))
(car (result (epr v))))))
Теперь вот думаю - ну и на фига оно мне надо? Может, замену XSL сделать? |
|