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

Материал из SEWiki
Перейти к: навигация, поиск
(Лекции)
м
 
(не показаны 22 промежуточные версии 2 участников)
Строка 1: Строка 1:
Преподаватели - Власьев Михаил Игоревич (mailto:michael.vlassiev@jetbrains.com),<br>
+
Преподаватели - Власьев Михаил Игоревич (mailto:michael.vlassiev@jetbrains.com), Мухин Михаил Александрович (mailto:mihail.muhin@jetbrains.com)<br>
  
 
== Лекции ==
 
== Лекции ==
Строка 18: Строка 18:
  
 
14.10.2014:
 
14.10.2014:
Практическое занятие по написанию генератора. <br/>
+
Практическое занятие по написанию генератора. ([[Медиа: L14_6_project.zip |проект]])<br/>
  
 
21.10.2014:
 
21.10.2014:
<b>Будет продолжение практического занятия.</b> <br/>
+
Продолжение практического занятия. <br/>
  
== Домашние задания ==
+
28.10.2014:
<b>1. [[Generative Programming 14 HW1|Моделирование домена таймеров/секундомеров]]</b>, срок сдачи до 21.10 <br/>
+
[[Медиа: L14_8.pdf‎ | Aspect programming]]. (Здесь последняя версия [[Медиа: L14_8_project.zip |проекта]] практического занятия по генератору).<br/>
Предполагается генерировать секундомер или таймер по описанию.
+
Необходимо проанализировать домен задачи и смоделировать его. Вы выступаете и экспертом, и пользователем.
+
Структуру домена записать на MPS 3.1. <br/>
+
  
Ожидаемый результат: проект MPS с описанием домена таймеров/секундомеров (language) и редактором, sandbox с моделью, описывающей "стандартный" секундомер.<br>
+
11.11.2014: [[Медиа: L14_9_project.zip‎ | Пример]] реализации аспекта трассировки в MPS.
 +
<br/>
  
Баллы: <br/>
+
18.11.2014: Использование системы на базе MPS для программирования встроенного оборудования. Набор языков в [http://mbeddr.com mbeddr].
5 - Домен задачи проработан, редактор позволяет легко вводить описание секундомера или таймера, есть примеры разных описаний <br/>
+
<br/>
4 - Домен задачи проработан, есть пример "стандартного" секундомера <br/>
+
3 - Домен задачи недостаточно проработан или описание домена запутано, но "стандартный" секундомер можно описывать (есть пример) <br/>
+
2 - Невозможно описать "стандартный" секундомер. <br/>
+
  
Два первых сданных задания получают +1 балл.
+
25.11.2014: Spoofax. [https://drive.google.com/file/d/0B9IFm0Y9fXAiMml4ZEVtanM1OUk/view?usp=sharing Пример с лекции]
Проект со сделанным заданием присылать мне на michael.vlassiev@jetbrains.com. Задания, отправленные после 21.10.2014 00:00, получают на 1 балл меньше.<br/>
+
<br/>
Зачет будет выставляться по результатам домашних заданий и одной контрольной работы (контрольная работа - с весом 2.0).<br/>
+
  
 +
02.12.2014: Занятие переносится.
 +
<br/>
 +
 +
09.12.2014: Занятие отменяется.
 +
<br/>
 +
 +
16.12.2014: Xtext. [https://drive.google.com/file/d/0B9IFm0Y9fXAiYXpnelNSS2lVWDQ/view?usp=sharing Пример с лекции]
 +
<br/>
 +
 +
== Домашние задания ==
 +
<b>1. [[Generative Programming 14 HW1|Моделирование домена таймеров/секундомеров]]</b>, срок сдачи до 21.10 <br/>
 +
<b>2. [[Generative Programming 14 HW2|Генерация HTML-расписания]]</b>, срок сдачи до 18.11 <br/>
 +
<b>3. [[Generative Programming 14 HW3|Аспект трассировки]]</b>, срок сдачи до 07.12 <br/>
 +
 +
<b>4. [[Generative Programming 14 HW4|Spoofax: dependency graph]]</b>, срок сдачи до 16.12 (но можно и раньше) <br/>
 +
<b>4. [[Generative Programming 14 HW5|XText: dependency graph]]</b>, срок сдачи до 23.12 <br/>
 +
 +
<br/><br/>
 +
Проекты со сделанными заданиями присылать мне на michael.vlassiev@jetbrains.com. Они оцениваются по 4-балльной системе (2-5). При получении дополнительного балла возможна оценка 6. Задания, отправленные после срока сдачи, получают на 1 балл меньше.<br/>
 +
Зачет будет выставляться по результатам четырех домашних заданий.<br/>
 +
<b>Результаты</b>
 +
[https://docs.google.com/spreadsheets/d/1__NoFQrJhvWgpNrPulIF43_GUG1GCgl3JNNL8ZWCl_g/edit?usp=sharing здесь].
 +
Если Вы заметили ошибку в этой таблице - никогда не поздно о ней сообщить, поправим.
  
 
== Список литературы ==
 
== Список литературы ==
Строка 57: Строка 74:
 
JetBrains MPS: http://www.jetbrains.com/mps <br>
 
JetBrains MPS: http://www.jetbrains.com/mps <br>
 
Отчеты об ошибках MPS писать сюда: http://youtrack.jetbrains.com/issues/MPS <br>
 
Отчеты об ошибках MPS писать сюда: http://youtrack.jetbrains.com/issues/MPS <br>
 +
 +
 +
[[Category:6 курс. Осень 2014]]

Текущая версия на 12:49, 15 февраля 2015

Преподаватели - Власьев Михаил Игоревич (mailto:michael.vlassiev@jetbrains.com), Мухин Михаил Александрович (mailto:mihail.muhin@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.

18.11.2014: Использование системы на базе MPS для программирования встроенного оборудования. Набор языков в mbeddr.

25.11.2014: Spoofax. Пример с лекции

02.12.2014: Занятие переносится.

09.12.2014: Занятие отменяется.

16.12.2014: Xtext. Пример с лекции

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

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

4. Spoofax: dependency graph, срок сдачи до 16.12 (но можно и раньше)
4. XText: dependency graph, срок сдачи до 23.12



Проекты со сделанными заданиями присылать мне на michael.vlassiev@jetbrains.com. Они оцениваются по 4-балльной системе (2-5). При получении дополнительного балла возможна оценка 6. Задания, отправленные после срока сдачи, получают на 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