GenProg14 — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
м
Строка 32: Строка 32:
 
<b>1. [[Generative Programming 14 HW1|Моделирование домена таймеров/секундомеров]]</b>, срок сдачи до 21.10 <br/>
 
<b>1. [[Generative Programming 14 HW1|Моделирование домена таймеров/секундомеров]]</b>, срок сдачи до 21.10 <br/>
 
<b>2. [[Generative Programming 14 HW2|Генерация HTML-расписания]]</b>, срок сдачи до 18.11 <br/>
 
<b>2. [[Generative Programming 14 HW2|Генерация HTML-расписания]]</b>, срок сдачи до 18.11 <br/>
Необходимо реализовать язык описания расписания и генератор моделей на этом языке в HTML-страницы с расписанием
+
<b>2. [[Generative Programming 14 HW3|Аспект трассировки]]</b>, срок сдачи до 02.12 <br/>
В языке записи добавляются в любом порядке, в расписании они должны появляться отсортированными по времени начала лекции
+
 
+
Модель на языке должна выглядеть так:
+
    lectures Monday
+
        lecture Programming
+
          at: 10:00-11:00
+
          in room: 123
+
          presenter: Vasily Pupkin
+
        lecture Maths
+
          at: 9:00-9:20
+
          in room: 234
+
          presenter: Vasily Pupkin jr.
+
        lecture History
+
          at: 12:00-13:00
+
          in room: 123
+
          presenter: Vasily Pupkin
+
+
Генерировать проще всего в язык xml, уже описанный в MPS. Чтобы язык можно было использовать в генераторе, подключите его к генераторной модели (ctrl-L или из model properties диалога)
+
Первые два принятых решения получают дополнительно +1 балл.
+
Еще +1 балл получит одно решение, где будет создаваться не .xml, а .html файл. Решение не может получить +2 балла.
+
  
 
<br/><br/>
 
<br/><br/>

Версия 05:07, 19 ноября 2014

Преподаватели - Власьев Михаил Игоревич (mailto:michael.vlassiev@jetbrains.com),

Лекции

09.09.2014: О чем курс

16.09.2014: Введение в MPS, проект mps.demolazy

23.09.2014: Domain engineering

30.09.2014: Практическое занятие. Моделирование калькулятора: MPS проект

07.10.2014: Продолжение моделирования калькулятора (проект), Domain implementation, generation.

14.10.2014: Практическое занятие по написанию генератора. (проект)

21.10.2014: Продолжение практического занятия.

28.10.2014: Aspect programming. (Здесь последняя версия проекта практического занятия по генератору).

11.11.2014: Пример реализации аспекта трассировки в MPS.

Домашние задания

1. Моделирование домена таймеров/секундомеров, срок сдачи до 21.10
2. Генерация HTML-расписания, срок сдачи до 18.11
2. Аспект трассировки, срок сдачи до 02.12



Проекты со сделанными заданиями присылать мне на michael.vlassiev@jetbrains.com. Они оцениваются по 4-балльной системе (2-5). При получении дополнительного балла возможна оценка 6. Задания, отправленные после срока сдачи, получают на 1 балл меньше.
Зачет будет выставляться по результатам трех домашних заданий и одной контрольной работы (контрольная работа - с весом 2.0).
Результаты здесь. Если Вы заметили ошибку в этой таблице - никогда не поздно о ней сообщить, поправим.

Список литературы

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