Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021)

Материал из 0x1.tv

(перенаправлено с «20210616C»)
Докладчик
Валерий Лаптев.jpg
Валерий Лаптев

Описывается разработка среды Drakon IDE, предназначенная для обучения алгоритмизации на графическом языке ДРАКОН. Сформулированы требования к среде, определён минимальный набор икон и разработан интерпретатор дракон-схем типа «Примитив». Разработка осуществляется на языке Dart.

Видео

on youtube

Презентация

Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf

Thesis

На кафедре АСОИУ Астраханского технического университета возникла потребность в реализации специализированной интегрированной среды для обучения начинающих программистов алгоритмизации. В качестве визуального алгоритмического языка выбран язык ДРАКОН [1]. Этот язык был выбран по нескольким причинам. Во-первых, он близок к блок-схемам, с которыми знакомы почти все студенты, поступившие на ИТ-направления. Во-вторых, Дракон-схемы, в отличие от блок-схем, строятся по строгим правилам. В-третьих, ДРАКОН является российской разработкой.

Требования к интегрированной среде

Первоначально были сформулированы требования к интегрированной среде. Среда должна обеспечивать пользователю следующие минимальные возможности:

  • работа с проектами;
  • работа со схемами;
  • накопление компонентов схем в библиотеке;
  • выполнение схемы;
  • конвертирование схемы в программу на языке программирования.

Проект может содержать одну или несколько схем. Типичные действия с проектами: создать проект, добавить/удалить схему, сохранить проект, открыть/закрыть проект.

Работа со схемами — это типичные операции создания, редактирования и сохранения схемы. Очевидно, что эти операции должен обеспечивать специализированный графический редактор.

Среда должна обеспечивать накопление библиотеки стандартных алгоритмов и элементов алгоритмов.

Для проверки схемы требуется выполнение сконструированного алгоритма. Выполнение возможно в различных режимах: непрерывное, непрерывное с задержкой, пошаговое.

Конвертирование схемы в программу на языке программирования способствует лучшему пониманию алгоритмов и программ. Кроме того, это позволит получать исполняемый файл для Дракон-схемы.

Интегрированная среда также должна иметь современный, наглядный и информативный пользовательский интерфейс.

Как выяснилось в результате детального анализа, в настоящее время ни одна из существующих систем не обеспечивает выполнение Дракон-схем.

Описание модели схемы

Для работы со схемами разработана модель. Каждой иконе в схеме соответствует объект-икона в модели, которая содержит полную информацию, необходимая для изображения, интерпретации и конвертации иконы. Все иконы, кроме иконы «Вопрос», имеют один вход и один выход. Икона «Вопрос» имеет один вход и два выхода.

Дракон-схемы бывают двух видов: схемы типа «примитив» и схемы типа «силуэт». Модель примитива представляет собой последовательность объектов-икон. Схема типа «силуэт» имеет ветки, которые делят схему на смысловые части. Модель ветки — это последовательность объектов-икон, а весь силуэт представляет собой последовательность веток (последовательность последовательностей икон).

Разработка интерпретатора Дракон-схем

Разработка среды началась с разработки первой версии интерпретатора. Был определён минимальный набор икон для интерпретации схем типа «Примитив»:

  • икона «Заголовок»;
  • икона «Действие»;
  • икона «Вопрос»;
  • икона «Полка»;
  • икона «Конец».

Для каждой иконы было определены допустимые операции в иконах.

Икона «Заголовок» обозначает начало алгоритма и является хранилищем переменных Дракон-схемы. Количество переменных может быть произвольным. Переменные могут иметь целочисленный, вещественный и логический типы. Вещественные и логические переменные задаются с типом, целые — без типа. Переменным присваивается начальное значение.

Иконы «Действие», «Вопрос» и «Полка» могут содержать только по одному выражению.

Икона «Действие» содержит выражение присваивания переменным Дракон-схемы некоторого значения. Преобразования типов не выполняется.

Икона «Вопрос» служит для сравнения значений двух переменных. Результатом операции сравнения является значение логического типа: истина (true, да, верно) или ложь (false, нет, неверно).

Икона «Полка» содержит выражение с арифметической операцией с двумя переменными. Результат вычисления операции присваивается переменной. Преобразования типов не выполняется.

Для отладки первой версии интерпретатора было разработано текстовое представление икон и схемы типа «Примитив». На рисунке 1 показана дракон-схема и её текстовое представление.

Дракон-схема и её текстовое представление
Дракон-схема и её текстовое представление

Текущее состояние проекта

Первоначальная версия интерпретатора разрабатывалась на языке С++ с использованием библиотеки Qt. Однако в результате более глубокого анализа функционала разрабатываемой среды было принято решение переписать интерпретатор на языке программирования Dart с использованием Flutter SDK. В настоящее время первая версия интерпретатора полностью реализована.

На этом же инструментарии в настоящее время выполняется разработка специализированного графического редактора (см. рис. 1), а также конвертера в учебный язык программирования Slang. Рассматривается разработка конвертеров в промышленные языки программирования, в частности, в С++ и Оберон.

После завершения разработки первой версии среды исходный код будет размещён на github.

Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021)!.jpg

Примечания и ссылки

Plays:4   Comments:0