Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021)
Материал из 0x1.tv
- Докладчик
- Валерий Лаптев
Описывается разработка среды Drakon IDE, предназначенная для обучения алгоритмизации на графическом языке ДРАКОН. Сформулированы требования к среде, определён минимальный набор икон и разработан интерпретатор дракон-схем типа «Примитив». Разработка осуществляется на языке Dart.
Содержание
Видео
Презентация
Thesis
На кафедре АСОИУ Астраханского технического университета возникла потребность в реализации специализированной интегрированной среды для обучения начинающих программистов алгоритмизации. В качестве визуального алгоритмического языка выбран язык ДРАКОН [1]. Этот язык был выбран по нескольким причинам. Во-первых, он близок к блок-схемам, с которыми знакомы почти все студенты, поступившие на ИТ-направления. Во-вторых, Дракон-схемы, в отличие от блок-схем, строятся по строгим правилам. В-третьих, ДРАКОН является российской разработкой.
Требования к интегрированной среде
Первоначально были сформулированы требования к интегрированной среде. Среда должна обеспечивать пользователю следующие минимальные возможности:
- работа с проектами;
- работа со схемами;
- накопление компонентов схем в библиотеке;
- выполнение схемы;
- конвертирование схемы в программу на языке программирования.
Проект может содержать одну или несколько схем. Типичные действия с проектами: создать проект, добавить/удалить схему, сохранить проект, открыть/закрыть проект.
Работа со схемами — это типичные операции создания, редактирования и сохранения схемы. Очевидно, что эти операции должен обеспечивать специализированный графический редактор.
Среда должна обеспечивать накопление библиотеки стандартных алгоритмов и элементов алгоритмов.
Для проверки схемы требуется выполнение сконструированного алгоритма. Выполнение возможно в различных режимах: непрерывное, непрерывное с задержкой, пошаговое.
Конвертирование схемы в программу на языке программирования способствует лучшему пониманию алгоритмов и программ. Кроме того, это позволит получать исполняемый файл для Дракон-схемы.
Интегрированная среда также должна иметь современный, наглядный и информативный пользовательский интерфейс.
Как выяснилось в результате детального анализа, в настоящее время ни одна из существующих систем не обеспечивает выполнение Дракон-схем.
Описание модели схемы
Для работы со схемами разработана модель. Каждой иконе в схеме соответствует объект-икона в модели, которая содержит полную информацию, необходимая для изображения, интерпретации и конвертации иконы. Все иконы, кроме иконы «Вопрос», имеют один вход и один выход. Икона «Вопрос» имеет один вход и два выхода.
Дракон-схемы бывают двух видов: схемы типа «примитив» и схемы типа «силуэт». Модель примитива представляет собой последовательность объектов-икон. Схема типа «силуэт» имеет ветки, которые делят схему на смысловые части. Модель ветки — это последовательность объектов-икон, а весь силуэт представляет собой последовательность веток (последовательность последовательностей икон).
Разработка интерпретатора Дракон-схем
Разработка среды началась с разработки первой версии интерпретатора. Был определён минимальный набор икон для интерпретации схем типа «Примитив»:
- икона «Заголовок»;
- икона «Действие»;
- икона «Вопрос»;
- икона «Полка»;
- икона «Конец».
Для каждой иконы было определены допустимые операции в иконах.
Икона «Заголовок» обозначает начало алгоритма и является хранилищем переменных Дракон-схемы. Количество переменных может быть произвольным. Переменные могут иметь целочисленный, вещественный и логический типы. Вещественные и логические переменные задаются с типом, целые — без типа. Переменным присваивается начальное значение.
Иконы «Действие», «Вопрос» и «Полка» могут содержать только по одному выражению.
Икона «Действие» содержит выражение присваивания переменным Дракон-схемы некоторого значения. Преобразования типов не выполняется.
Икона «Вопрос» служит для сравнения значений двух переменных. Результатом операции сравнения является значение логического типа: истина (true, да, верно) или ложь (false, нет, неверно).
Икона «Полка» содержит выражение с арифметической операцией с двумя переменными. Результат вычисления операции присваивается переменной. Преобразования типов не выполняется.
Для отладки первой версии интерпретатора было разработано текстовое представление икон и схемы типа «Примитив». На рисунке 1 показана дракон-схема и её текстовое представление.
Текущее состояние проекта
Первоначальная версия интерпретатора разрабатывалась на языке С++ с использованием библиотеки Qt. Однако в результате более глубокого анализа функционала разрабатываемой среды было принято решение переписать интерпретатор на языке программирования Dart с использованием Flutter SDK. В настоящее время первая версия интерпретатора полностью реализована.
На этом же инструментарии в настоящее время выполняется разработка специализированного графического редактора (см. рис. 1), а также конвертера в учебный язык программирования Slang. Рассматривается разработка конвертеров в промышленные языки программирования, в частности, в С++ и Оберон.
После завершения разработки первой версии среды исходный код будет размещён на github.
Примечания и ссылки
Plays:4 Comments:0