to post messages and comments.

mps

Читаю про RASE, и то как много времени ушло на определенние ActionScript. И задаюсь вопросом – а не легче ли за это время закончить университет на Computer Science, разбогатеть, обзавестись кучей свободного времени, и написать свой компилятор =)?

mps

Пробую MPS (http://www.jetbrains.com/mps/). Собственно действительно интересно. Ничего не нашел пока на тему того, можно ли сделать, что бы сгенерированный язык можно было бы использовать без MPS среды. Вообще говорят, что можно. Не нашел мавен плагина для сборки собственно MPS-проекта, предлагают использовать maven-ant-task.

В MPS 2.0 появились таблицы в коде. Поставил задачу сделать редакторы для матриц и оформлять списки красиво — указывать количество колонок. Вот тут статья как товарищ сделал таблицу условия voelterblog.blogspot.com Что бы еще такого придумать? А?

Как клева, что в IDE есть всякие штуки, типа навигации по коду, автодополнения и рефакторингов. Как хреново, что все это обрывается, когда поток данных уходит из клиента на сервер. Или из swf клиента в js код.

А когда поток данных идет по маршруту button click -> app.swf -> js code -> app2.swf -> rtmp server -> app3.swf -> js code
то приходится тщательно следить за ним вручную, контролируя идентификаторы, имена, типы данных, количество параметров и т.д. Жутко утомительная работа.

Теоретически возможно сделать так, чтобы IDE все это поддерживала кросс платформенно и кросс язычно. Но сложно. Думаю, в этом направлении будущее за MPS и его производными, типа Realaxy.

Нужно было мне методы скопировать из lang-концепта в класс, а в концептах методы — не методы нифига — они ConceptMethodDeclaration и через клипбоард не лезет. Сначала по привычке стал делать методы нормальные "руками" — копировать сначала имя, потом тело мтода и ретурн-тайп. Потом подумал "ну не дурак ли?". Написал быстро языковое расширение, где есть paste-wrapper и все. Копи-пейст заработал. Часто делаешь тупую работу только потому, что привычно. Да и понимаешь и знаешь как, но все равно делаешь по старинке. Все никак не вдолбится в голову, что редактор расширяем очень легко.

mps

В mps 2.0 появится офигенная возможность — сделать свое маленький mps со своими расширениями. "Высушенный" — без Идеи, без mps-платформы, которую можно воткнуть в любое java-приложение. Плагин в идею, окно конфигураций какого приложения — да мало ли где будет потребность в маленьком редакторе. Вижу редактор для архитекторов или там бухгалтеров.

(Сегодняшняя тренировка. Туплю возле доски: мне повелели написать код нового для нашей группы алгоритма, который я не поняла — да и остальные, в общем-то, тоже).

Сенсей> *указывая на портреты над доской* Это Вирт, он придумал Паскаль. Рядом — Кнут. Видишь его выражение лица? Он смотрит на тебя и приходит в ужас! Столько всего он написал, столько работал на ваше благо — а ты не можешь найти мосты в графе!.. А это Ляпунов, великий русский математик. Посмотри, каким взглядом следит он за твоими записями! Даже Гагарин (указывает на плакат на стенке) ничего не понимает, но смеется! А мультяшная пчёлка (календарик на той же стене) в недоумении разводит лапками: "Как можно не понимать такую ерунду?!"
(Подходит к стенду, читает) Действия учителя при несчастных случаях. При необходимости оказать доврачебную помощь.. Оказываю тебе доврачебную помощь: здесь нужно обновить значение min! Так..ждать приезда скорой помощи. Ждём? (Пару секунд спустя открывается дверь, входит одмин, что-то забирает и уходит под наш неадекватный хохот).

... (через несколько минут)
Сенсей> Ээ, а вы что, действительно раньше этого не проходили? О_о Ну блин, а сразу сказать нельзя? =)

Сегодня на командной тренировке:
Препод> капитаны команд, встаньте возле первых парт, сейчас дам вам логины.
Стопкране> *с соответствующим выражением* Мы капитаны. Это кабинет информатики. Сейчас мы будем кодить. Мы капитаны!

Суровые будни начинающих олимпиадников:

йа> Сенсей, сжалься и намекни, как решать, а?.. Что-то мне вообще непонятно, куда воткнуть положенные два стека %)

преп> времени полно еще)

йа> Потом нагрянет школьная домашка, и я ничего не успею )

преп> школьная домашка не должна тебя волновать, юный падаван

преп> и при чем там 2 стека, когда очередь нужна

Давно не припомню такого легкого вступительного экзамена в МШП. Несмотря на то, что было порядка 170 школьников, что уже является рекордом, все работы мы проверили меньше, чем за 2(!) часа. В общем, epic fail. Радует только то, что на районной, быть может, еще отыграемся и выложим задачи, которые остались.

mps

Прочитал тутор jetbrains.com стало понятнее, как работает MPS. Не скажу, что это вызвало у меня кучу восторгов и горячее желание наделать кучу своих DSL.

Генерация из DSL целевого языка, потом компиляция целевого языка — это удлинняет цикл отладки. Да и вообще, как это отлаживать — совершенно непонятно.

В общем, Realaxy буду встречать насторожено и с сомнениями. Кстати, надо будет посмотреть все скринкасты.

У МШП-1 на ВКОШП снова второй диплом! Кроме того, вторая команда получила третий.. МШП далеко не так безнадежна, как я сначала думал.. Впрочем, я и про свою команду так думал.

mps


Интересно, что проснувшись утром после той самой ночи, когда я пытался придумать, как упаковат громоздкий код в лаконичные, близкие к человеческому языку слова, я узнал, что вышла MPS. Она, наверное, поможет в этом.

Статья а Хабре: valyard.habrahabr.ru , статья о ЯОП, 2006 год: rsdn.ru — от автора MPS.

MPS 1.0 ( jetbrains.com ). Бесплатная система Языково-Ориентированного программирования от JetBRAINS. Можно создавать свои языки или расширения существующих под нужные предметные области.