Generative programming 2013 — различия между версиями
Mikhail (обсуждение | вклад) м |
Mikhail (обсуждение | вклад) |
||
Строка 14: | Строка 14: | ||
[[Медиа: Lect_3.pdf | Domain engineering]], [[Медиа: Sample_3.zip | пример]] <br/> | [[Медиа: Lect_3.pdf | Domain engineering]], [[Медиа: Sample_3.zip | пример]] <br/> | ||
− | 25.09.2013: | + | 25.09.2013: Практическое занятие ([[Медиа: DialogDemo.zip |проект]]) <br/> |
== Домашние задания == | == Домашние задания == | ||
<b>1. [[Generative Programming Homework 1|Парсер упрощенного XML]]</b>, срок сдачи до 15.09 <br> | <b>1. [[Generative Programming Homework 1|Парсер упрощенного XML]]</b>, срок сдачи до 15.09 <br> | ||
− | <b>2. [[Generative Programming Homework 2|Модель домена калькуляторов]] </b>, срок сдачи до | + | <b>2. [[Generative Programming Homework 2|Модель домена калькуляторов]] </b>, срок сдачи продлен <b>до 29.09</b> <br> |
Предполагается генерировать калькулятор по описанию. | Предполагается генерировать калькулятор по описанию. | ||
Необходимо проанализировать домен калькуляторов (Вы выступаете экспертом и пользователем) и смоделировать его. | Необходимо проанализировать домен калькуляторов (Вы выступаете экспертом и пользователем) и смоделировать его. | ||
Строка 26: | Строка 26: | ||
Калькулятор должен уметь выполнять арифметические операции (+-*/) с числами. Должна быть предусмотрена возможность добавления как минимум унарных и бинарных операций. UI фичи - на усмотрение пользователя. <br/> | Калькулятор должен уметь выполнять арифметические операции (+-*/) с числами. Должна быть предусмотрена возможность добавления как минимум унарных и бинарных операций. UI фичи - на усмотрение пользователя. <br/> | ||
Модель должна уметь описывать стандартный (минимальный) калькулятор Windows (или любой другой ОС). <br/> | Модель должна уметь описывать стандартный (минимальный) калькулятор Windows (или любой другой ОС). <br/> | ||
+ | |||
+ | |||
+ | <br/> | ||
Для описания пользовательских операций можно использовать FunctionType и/или ClosureLiteral из языка jetbrains.mps.baseLanguage.closures | Для описания пользовательских операций можно использовать FunctionType и/или ClosureLiteral из языка jetbrains.mps.baseLanguage.closures |
Версия 21:34, 25 сентября 2013
Преподаватели - Власьев Михаил Игоревич (mailto:michael.vlassiev@jetbrains.com),
Мухин Михаил Александрович (mailto:Mihail.Muhin@jetbrains.com)
Лекции
04.09.2013:
О чем курс,
Textmapper,
Textmapper example
11.09.2013:
Введение в MPS
18.09.2013:
Domain engineering, пример
25.09.2013: Практическое занятие (проект)
Домашние задания
1. Парсер упрощенного XML, срок сдачи до 15.09
2. Модель домена калькуляторов , срок сдачи продлен до 29.09
Предполагается генерировать калькулятор по описанию.
Необходимо проанализировать домен калькуляторов (Вы выступаете экспертом и пользователем) и смоделировать его.
Структуру домена записать на MPS 3.0.
Калькулятор должен уметь выполнять арифметические операции (+-*/) с числами. Должна быть предусмотрена возможность добавления как минимум унарных и бинарных операций. UI фичи - на усмотрение пользователя.
Модель должна уметь описывать стандартный (минимальный) калькулятор Windows (или любой другой ОС).
Для описания пользовательских операций можно использовать FunctionType и/или ClosureLiteral из языка jetbrains.mps.baseLanguage.closures
Приблизительная разбалловка
5 - задание сделано и полностью работает
4 - небольшие недочеты, в целом все работает
3 - не работает в некоторых случаях
1 - задание не сдано
Список литературы
Generative Programming: Methods, Tools, and Applications
Krysztof Czarnecki, Ulrich Eisenecker
Addison-Wesley Professional; 1 edition (June 16, 2000)
Перевод: Чернецки К., Айзенекер У. Порождающее программирование: методы, инструменты, применение / Пер. с англ. СПб: Питер, 2005.
Domain-Specific Languages
Martin Fowler
Addison-Wesley; 2011
Полезные ссылки
JetBrains MPS: http://www.jetbrains.com/mps
Отчеты об ошибках MPS писать сюда: http://youtrack.jetbrains.com/issues/MPS