Слайд 2Инструментальное средство UniMod
![Инструментальное средство UniMod](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/344466/slide-1.jpg)
Слайд 5Графический язык программирования
Достоинства средства UniMod
Диаграммы более выразительны, чем текст
UML-нотация — общепринята
Недостатки средства
![Графический язык программирования Достоинства средства UniMod Диаграммы более выразительны, чем текст UML-нотация](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/344466/slide-4.jpg)
UniMod
Вводить диаграммы неудобно
Программисты предпочитают текстовый код
Слайд 6Текстовый язык автоматного программирования
Проблемно-ориентированный автоматный язык
Автомат описывается в терминах автоматного программирования
Диаграммы генерируются
![Текстовый язык автоматного программирования Проблемно-ориентированный автоматный язык Автомат описывается в терминах автоматного](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/344466/slide-5.jpg)
по мере ввода текста программы
Слайд 7Разработка текстового языка программирования
Транслятор
Лексический анализатор
Синтаксический анализатор
Семантический анализатор
Генератор кода
Интегрированная среда разработки
«Подсветка» ошибок
Автоматическое завершение
![Разработка текстового языка программирования Транслятор Лексический анализатор Синтаксический анализатор Семантический анализатор Генератор](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/344466/slide-6.jpg)
ввода
Навигация по коду
Слайд 8Система метапрограммирования MPS
Принимает на вход
абстрактный синтаксис
конкретный синтаксис
систему типов
кодогенератор
Автоматически строит интегрированную среду разработки
![Система метапрограммирования MPS Принимает на вход абстрактный синтаксис конкретный синтаксис систему типов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/344466/slide-7.jpg)
Слайд 9Виды проблемно-ориентированных языков
Проблемно-ориентированные расширения существующих языков
Например,
язык доступа к базе данных,
язык описания
![Виды проблемно-ориентированных языков Проблемно-ориентированные расширения существующих языков Например, язык доступа к базе](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/344466/slide-8.jpg)
регулярных выражений и т.д.
Независимые языки
Например,
язык планировщика задач операционной системы
Слайд 10Автоматное расширение языка Java
Позволяет описывать поведение Java-класс в виде автомата
Отправка событий —
![Автоматное расширение языка Java Позволяет описывать поведение Java-класс в виде автомата Отправка](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/344466/slide-9.jpg)
вызов специальных методов класса
Состояние храниться в переменной объекта
Автомат описывается в терминах автоманого программирования
Слайд 11Независимый автоматный язык
Все приложение описывается в терминах автоманого программирования
Возможно использовать для генерации
![Независимый автоматный язык Все приложение описывается в терминах автоманого программирования Возможно использовать](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/344466/slide-10.jpg)
не Java-кода
Соответствует понятию запускаемых спецификаций
Слайд 13Результаты
Разработанное средство позволяет
разрабатывать автоматные программы
описывать поведение Java-классов в виде автоматов
использовать преимущества текстового
![Результаты Разработанное средство позволяет разрабатывать автоматные программы описывать поведение Java-классов в виде](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/344466/slide-12.jpg)
ввода программ и представления автоматов в виде диаграмм