You are viewing [info]mauhuur's journal

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/377

    P.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
    According to the surgeon general...


    Ну ладно бы какой 6-pack по 0.33, так ведь нет - вся совсем как настоящая...
    Thursday, September 9th, 2004
    8:14 pm
    Sunday, June 27th, 2004
    2:39 am
    DSL Engine
    С некоторым запозданием: таки опубликовал предварительную версию макродвижка - http://dslengine.sourceforge.net/

    Теперь буду делать нечто-заместо-XSLT...
    Wednesday, April 28th, 2004
    5:28 pm
    XML
    А таки клёвый сайтик - http://xmlsucks.org... Очень в тему, касательно моих попыток заюзать SSAX...
    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 сделать?
About LiveJournal.com