Generative Programming Homework 3 — различия между версиями
Mikhail (обсуждение | вклад) (Новая страница: «<b>3. Генератор калькуляторов</b>, срок сдачи до 22.10.2013 <br> Предполагается генерировать кальку…») |
Mikhail (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | <b>3. Генератор калькуляторов</b>, срок сдачи до | + | <b>3. Генератор калькуляторов</b>, срок сдачи до 27.10.2013 <br> |
− | Предполагается генерировать калькулятор по описанию. | + | Предполагается генерировать калькулятор по описанию. В качестве описания можно взять структуру из [[Медиа: calc.zip | примера]], а можно взять свое описание, если оно есть. |
<br/> | <br/> | ||
Строка 6: | Строка 6: | ||
Модель должна уметь описывать стандартный (минимальный) калькулятор Windows (или любой другой ОС). <br/> | Модель должна уметь описывать стандартный (минимальный) калькулятор Windows (или любой другой ОС). <br/> | ||
− | Ожидаемый результат: проект MPS с описанием домена калькуляторов (language) | + | Ожидаемый результат: проект MPS с описанием домена калькуляторов (language), редактором и генератором, sandbox с моделью, описывающей примерно такой калькулятор: |
[[Файл: calc_pict.gif]] | [[Файл: calc_pict.gif]] | ||
+ | <br/> | ||
+ | <br/> | ||
+ | Чего не хватает в генераторе из примера:<br/> | ||
+ | - Вычисление правильных размеров и расположения кнопок и размеров самого калькулятора.<br/> | ||
+ | - Работа с памятью.<br/> | ||
+ | - 0-арные функции (pi)<br/> | ||
+ | - Остальные стандартные операции, кнопка сброса.<br/> | ||
+ | - Аккуратный layout и разумные шрифты (для индикатора, например).<br/> | ||
+ | Что можно добавить:<br/> | ||
+ | - Статус калькулятора для возможности введения клавиш типа "arc" [+"sin"/"cos"].<br/> | ||
+ | - Расширения языка baseLanguage для работы со статусом.<br/> | ||
+ | - Поддержка типов данных для калькулятора (сейчас работает только double).<br/> | ||
+ | - Настройка пользовательского интерфейса. | ||
+ | |||
+ | <br/><br/> | ||
− | + | Чтобы получить максимальную оценку, надо сделать, чтобы правильно работало все, чего не хватает. Дополнительные фичи могут компенсировать недостатки в реализации основных фич. На все фичи должен быть пример в sandbox.<br/> | |
− | + | ||
Два первых сданных задания получают +1 балл. | Два первых сданных задания получают +1 балл. |
Версия 16:29, 17 октября 2013
3. Генератор калькуляторов, срок сдачи до 27.10.2013
Предполагается генерировать калькулятор по описанию. В качестве описания можно взять структуру из примера, а можно взять свое описание, если оно есть.
Калькулятор должен уметь выполнять арифметические операции (+-*/) с числами. Должна быть предусмотрена возможность добавления новых (специфических для данного калькулятора) операций, например, возведение в степень или извлечение квадратного корня. UI фичи - на усмотрение.
Модель должна уметь описывать стандартный (минимальный) калькулятор Windows (или любой другой ОС).
Ожидаемый результат: проект MPS с описанием домена калькуляторов (language), редактором и генератором, sandbox с моделью, описывающей примерно такой калькулятор:
Чего не хватает в генераторе из примера:
- Вычисление правильных размеров и расположения кнопок и размеров самого калькулятора.
- Работа с памятью.
- 0-арные функции (pi)
- Остальные стандартные операции, кнопка сброса.
- Аккуратный layout и разумные шрифты (для индикатора, например).
Что можно добавить:
- Статус калькулятора для возможности введения клавиш типа "arc" [+"sin"/"cos"].
- Расширения языка baseLanguage для работы со статусом.
- Поддержка типов данных для калькулятора (сейчас работает только double).
- Настройка пользовательского интерфейса.
Чтобы получить максимальную оценку, надо сделать, чтобы правильно работало все, чего не хватает. Дополнительные фичи могут компенсировать недостатки в реализации основных фич. На все фичи должен быть пример в sandbox.
Два первых сданных задания получают +1 балл.