Научная статья на тему 'Метод формальной верификации программ для виртуальной лаборатории "машина Поста"'

Метод формальной верификации программ для виртуальной лаборатории "машина Поста" Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
272
25
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНФОРМАЦИОННЫЕ СИСТЕМЫ / INFORMATION SYSTEMS / ЭЛЕКТРОННОЕ ОБУЧЕНИЕ / E-LEARNING / ВИРТУАЛЬНЫЕ ЛАБОРАТОРИИ / VIRTUAL LABORATORIES / ФОРМАЛЬНАЯ ВЕРИФИКАЦИЯ ПРОГРАММ / FORMAL PROGRAM VERIFICATION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лямин А. В.

Введение: формальная верификация программ в символьном виде позволяет в автоматическом режиме осуществлять оценку практических навыков обучающихся при наличии неразрешимого множества верных ответов, что существенно облегчает разработку программных компонентов, используемых для оценки. Цель: разработка нового метода формальной верификации программ в символьном виде для виртуальной лаборатории «Машина Поста». Результаты: разработан новый метод формальной верификации программ в символьном виде для виртуальной лаборатории «Машина Поста». Сформулированы основные принципы и примеры формирования программ для машины Поста и методы их символьной формализации. Рассмотрены различные задачи использования математических операций с представленными на ленте машины числами в унарном коде, в частности: прибавление единицы к числу, сложение и умножение двух чисел, остановка работы программы в определенной конфигурации ленты машины, переход к новой конфигурации машины от первоначально заданной. Рассмотренных задач достаточно для формирования у обучающихся базовых практических навыков алгоритмизации, а символьное представление решения таких задач позволит упростить разработку оценивающих средств виртуальной лаборатории «Машина Поста» и осуществлять контроль формирования данных навыков в автоматическом режиме. Представлена концепция внедрения разработанного метода верификации программ в уже существующие обучающие информационные системы. Практическая значимость: разработанный метод формальной верификации программ для виртуальной лаборатории «Машина Поста» позволяет осуществлять оценку практических навыков алгоритмизации задач у обучающихся и упростить разработку виртуальных лабораторий путем уменьшения затрат на формирование тестовых наборов данных для проведения оценивающих мероприятий.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Лямин А. В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Method of Formal Program Verification for Post Machine Virtua l Laboratory

Introduction: The symbolic method of formal program verification is an effective way to evaluate students’ practical skills automatically, especially for tasks with an unsolvable set of correct answers, which significantly simplifies the development of evaluation software. Purpose: Developing a new method of formal program verification using symbolic evaluation approach for the programs written for Post Machine virtual laboratory. Results: A new method of formal verification of programs written for Post Machine virtual laboratory using symbolic evaluation approach has been developed. The basic principles and examples of programs for Post Machine as well as methods for their symbolic formalization are discussed. Various tasks of running mathematical operations on numbers presented in unary code were considered, i.e. incrementation, addition, multiplication, break point, transfer to a different machine configuration, etc. The considered tasks are sufficient for the students to form basic practical skills in making algorithms. Symbolic representation of students’ answers simplifies the development of evaluation tools of the virtual laboratory, making it possible to monitor the formation of students’ practical skills automatically. A concept of embedding the presented method of formal program verification into the available online educational platforms is presented. Practical relevance: The developed method of formal verification of programs written for Post Machine is used to evaluate students’ practical skills in making algorithms. It can simplify the development of virtual laboratories by reducing the costs of forming test sets used to evaluate the students’ answers.

Текст научной работы на тему «Метод формальной верификации программ для виртуальной лаборатории "машина Поста"»

УДК 004.023, 004.424 doi:10.15217/issnl684-8853.2018.2.104

МЕТОД ФОРМАЛЬНОЙ ВЕРИФИКАЦИИ ПРОГРАММ ДЛЯ ВИРТУАЛЬНОЙ ЛАБОРАТОРИИ «МАШИНА ПОСТА»

А. В.Лямин3, канд. техн. наук, доцент, [email protected]

аСанкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, Кронверкский пр., 49, Санкт-Петербург, 197101, РФ

Введение: формальная верификация программ в символьном виде позволяет в автоматическом режиме осуществлять оценку практических навыков обучающихся при наличии неразрешимого множества верных ответов, что существенно облегчает разработку программных компонентов, используемых для оценки. Цель: разработка нового метода формальной верификации программ в символьном виде для виртуальной лаборатории «Машина Поста». Результаты: разработан новый метод формальной верификации программ в символьном виде для виртуальной лаборатории «Машина Поста». Сформулированы основные принципы и примеры формирования программ для машины Поста и методы их символьной формализации. Рассмотрены различные задачи использования математических операций с представленными на ленте машины числами в унарном коде, в частности: прибавление единицы к числу, сложение и умножение двух чисел, остановка работы программы в определенной конфигурации ленты машины, переход к новой конфигурации машины от первоначально заданной. Рассмотренных задач достаточно для формирования у обучающихся базовых практических навыков алгоритмизации, а символьное представление решения таких задач позволит упростить разработку оценивающих средств виртуальной лаборатории «Машина Поста»и осуществлять контроль формирования данных навыков в автоматическом режиме. Представлена концепция внедрения разработанного метода верификации программ в уже существующие обучающие информационные системы. Практическая значимость: разработанный метод формальной верификации программ для виртуальной лаборатории «Машина Поста» позволяет осуществлять оценку практических навыков алгоритмизации задач у обучающихся и упростить разработку виртуальных лабораторий путем уменьшения затрат на формирование тестовых наборов данных для проведения оценивающих мероприятий.

Ключевые слова — информационные системы, электронное обучение, виртуальные лаборатории, формальная верификация программ.

Цитирование: Лямин А. В. Метод формальной верификации программ для виртуальной лаборатории «Машина Поста» // Информационно-управляющие системы. 2018. № 2. С. 104-114. doi:10.15217/issn1684-8853.2018.2.104

Citation: Lyamin A. V. Method of Formal Program Verification for Post Machine Virtual Laboratory. Informatsionno-upravliaiushchie sistemy [Information and Control Systems], 2018, no. 2, pp. 104-114 (In Russian). doi:10.15217/issn1684-8853.2018.2.104

Введение

Формирование практических навыков у обучающихся в ходе образовательного процесса всегда было одной из первоочередных задач образовательных организаций. В связи с развитием современного образования, в частности электронного обучения, широкое распространение получили виртуальные лаборатории [1, 2], представляющие собой программные компоненты электронных информационно-образовательных сред, доступные для обучающихся. Развитие современного образования способствует созданию большого числа массовых открытых онлайн-курсов [3-5], реализующих обучение в электронной среде. В этом случае использование виртуальных лабораторий является наиболее перспективным методом формирования практических навыков обучающихся и их оценивания.

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

Первая классификационная группа определяет типы лабораторий в зависимости от их

программной реализации. Автономные виртуальные лаборатории [6] представляют собой специализированное программное обеспечение, устанавливающееся на пользовательские рабочие станции и не требующее сетевого подключения к сети Интернет. Одним из недостатков такой реализации является невозможность постоянного сохранения данных о выполненных работах. Клиент-серверные виртуальные лаборатории [7] предоставляют доступ обучающимся к лаборатории через веб-браузер и требуют от клиентской станции сетевого подключения, что позволяет осуществлять сбор необходимых сведений об активности обучающихся при выполнении заданий лаборатории в оперативном режиме.

Вторая классификационная группа разделяет виртуальные лаборатории в зависимости от их аппаратной реализации. Использование виртуальных лабораторий с доступом к физическому оборудованию [8] существенно снижает стоимость разработки программного обеспечения, однако требует увеличения расходов на сопровождение. Использование математических моделей при разработке [9] потребует усложнения архитектуры программного обеспечения виртуальной

лаборатории, однако в то же время существенно снизит затраты на покупку и поддержку функционирования оборудования.

Третья классификационная группа включает виртуальные лаборатории, реализующие возможность автоматической проверки ответов обучающихся [10]. Возможность автоматизированной проверки позволяет с легкостью использовать виртуальные лаборатории в качестве одного из основных инструментов оценивания в массовых открытых онлайн-курсах. В то же время виртуальные лаборатории могут иметь неразрешимое множество правильных ответов, в отличие от стандартных инструментов оценивания, таких как электронные тесты. Для таких заданий правильный ответ не может быть описан конечным множеством или общерекурсивной характеристической функцией, что делает задачу автоматизации проверки таких решений актуальной в рамках развития современного образования. Верификация программ в символьном виде является одним из наиболее перспективных методов решения поставленной задачи. В данной статье описывается созданный метод формальной верификации программ в символьном виде для виртуальной лаборатории «Машина Поста».

Управление удаленной лабораторией

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

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

Виртуальные лаборатории представляют собой программные компоненты информационно-образовательной среды, нацеленные на отдельные предметные области. Для унификации механизма доступа к различным виртуальным лабораториям и работы с ними был разработан метод управления удаленной лабораторией, реализованный в протоколе управления удаленной лабораторией RLCP (Remote Laboratory Control Protocol) [11-13]. В протоколе RLCP определяются требования к виртуальному стенду и виртуальной машине, использующимся для построения виртуальных лабораторий; описывается схема взаимодействия между различными компонентами информационно-образовательной среды в процессе формирования задания и его выполнения в целом; описывается механизм проверки результата выполнения заданий виртуальной лаборатории обучающимся. Общая схема построения RLCP-совместимых виртуальных лабораторий приведена на рис. 1.

Виртуальный стенд RLCP-совместимой виртуальной лаборатории называется RLCP-стендом, виртуальная машина — RLCP-сервером. RLCP-клиент представляется в виде контроллера информационно-образовательной среды. Он реали-

Обозреватель

ш

RLCP-стенд

RLCP-клиент

RLCP-клиент

...

RLCP-клиент

■ Рис. 1. Схема построения RLCP-совместимых виртуальных лабораторий

■ Fig. 1. Scheme of building RLCP-compatible virtual laboratories

База данных

RLCP-клиент

RLCP-сервер

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И ОБРАЗОВАНИЕ

Обозреватель

Приступить к работе

RLCP-стенд

loop J

Запустить

Получить задание

RLCP-клиент База данных

alt

Читать параметры^

RLCP-сервер

I [Существует генератор] Создать ¡вариант_

Выбрать вариант _

Записать состояние

1« ■

Получить данные

[Предусмотрен метод CALCULATE]

Вычислить

. Передать результат

Читать состояние

Вычислить

Получить ответ

Оценить

loop

^____Оценка_______Оценка____<

«

Читать состояние

Записать ответ

Оценить

[Сервер недоступен]

<-

Записать результат

■ Рис. 2. Диаграмма последовательности выполнения лабораторной работы с использованием RLCP-совместимой виртуальной лаборатории

■ Fig. 2. Sequence diagram of passing an assignment using RLCP-compatible virtual laboratory

зует взаимодействие с обозревателем по протоколу HTTP или HTTPS и с RLCP-сервером с использованием протокола RLCP. Доступ к базе данных выполняется с помощью программного интерфейса RLCP-клиента. Взаимодействие RLCP-стенда с обозревателем проводится за счет программного интерфейса RLCP-стенда.

После взаимодействия обучающегося с интерфейсом информационно-образовательной среды по его инициативе выполняется отправка обозревателем RLCP-клиенту HTTP-запроса на получение задания для виртуальной лаборатории (рис. 2). В RLCP предусмотрен метод генерирования задания виртуальной лаборатории GENERATE [14] на основе некоторого базового шаблона с динамической подстановкой варьирующихся значений. После считывания параметров виртуальной лаборатории RLCP-клиент формирует вариант задания с использованием метода GENERATE или же выбирает готовый вариант из существующего набора, хранящегося в базе данных, в зависимости от наличия генератора заданий для конкретной виртуальной лаборатории. Сформированный вариант задания виртуальной лаборатории фиксируется RLCP-клиентом в базе данных для последующей оценки ответа обучающегося, после чего вариант преобразуется в веб-страницу, содержащую вариант задания и RLCP-стенд, и отправляется обозревателю. Путем взаимодействия с RLCP-стендом обучающийся выполняет задание виртуальной лаборатории. При необходимости обучающийся получает возможность использовать ресурсы RLCP-сервера для выполнения сложных вычислений или предварительной проверки текущего решения работы. Данная функция реализуется в методе RLCP-CALCULATE. Разрешение использовать данный метод должно быть установлено регламентом проведения лабораторной работы. По завершении выполнения задания обучающийся подтверждает готовность решения путем инициализации отправки решения на проверку. В этом случае обозреватель получает данные решения обучающегося из RLCP-стенда и отправляет их RLCP-клиенту в виде HTTP-запроса. Решение оценивается RLCP-сервером после отправки ему RLCP-клиентом с использованием метода CHECK информации из базы данных, необходимой для выполнения процедуры оценивания работы. В случае невозможности обработки RLCP-сервером информации в конкретный момент, RLCP-клиент продолжает отправку данных до получения ответа от сервера. После завершения обработки результаты оценивания фиксируются в базе данных и становятся доступны обучающемуся.

Любое взаимодействие по протоколу RLCP инициализируется RLCP-клиентом, поэтому данный протокол является асимметричным. После-

довательность взаимодействия можно представить в следующем виде:

1) установление ТСР-соединения;

2) отправка запроса RLCP-клиентом (запрос содержит строку состояния с названием метода RLCP, поля заголовка, пустую строку, тело запроса);

3) отправка ответа RLCP-сервером;

4) разрыв ТСР-соединения.

Виртуальная лаборатория «Машина Поста»

Абстрактные алгоритмические машины являются одним из основных инструментов формирования базовых навыков решения алгоритмических задач в информатике. Виртуальные лаборатории, моделирующие такие машины, позволяют обучающимся сформировать необходимые навыки алгоритмизации [15] задач путем использования виртуального стенда лаборатории, визуализирующего конкретную абстрактную машину. Машина Поста [16] является одной из абстрактных алгоритмических машин, введенных для формализации понятия «алгоритм». Данный тип абстрактных машин удобен для формирования базовых навыков алгоритмизации и оценивания навыков анализа алгоритмов, поскольку использование машины Поста не требует знания сложных языков программирования и подходит для применения обучающимися с любым уровнем знаний. В автоматизированной системе управления процессом электронного обучения AcademicNT была разработана и размещена в системе RLCP-совместимая виртуальная лаборатория, моделирующая работу машины Поста [13].

RLCP-стенд лаборатории включает несколько основных компонент: бесконечную ленту, на которой размещены ячейки для хранения информации; редактор команд машины; область для вывода сопутствующей информации, в том числе номера текущей выполняемой команды и системных сообщений; элементы управления виртуальным стендом. В случае возникновения ошибок или успешного завершения выполнения программы виртуальный стенд выдает соответствующие сообщения. Интерфейс виртуального стенда лаборатории «Машина Поста» представлен на рис. 3.

Для обучающегося при взаимодействии с виртуальным стендом доступны следующие действия:

— установка метки в неотмеченную ячейку;

— снятие метки с отмеченной ячейки;

— перемещение ленты машины вправо и влево;

< I i I I I I I i |>/|>/|>/| I ! i r~j I I I I_i ►

-9 -S -7 -6 -5 -4 -3 -2 -1 01234567Î ▲ 9 10 11

n m"1 Comments

1 2 A

2 ? a II * 1 I

3 > • □ОНИ I

4 t - 5 i I

S > ' 6 I

б [» ' i 7 5 I. I

7 iv ^ ; 8 I

s ; > ▼ 9 I

g ? - 1 10

10 i ▼

Line: 10 Program had been finished *

Insert | Delete ) Clear ] Step | Run ) Stop ]

■ Рис. 3. RLCP-стенд виртуальной лаборатории «Машина Поста»

■ Fig. 3. RLCP-stand of Post machine virtual laboratory

■ Перечень команд машины Поста

■ List of Post machine commands

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

— ввод / редактирование команды пКт в редакторе команд, где п — номер текущей команды, К — операция машины Поста (описание полного списка операций приведено в таблице), т — номер следующей команды;

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

Метод формальной верификации программ

Использование виртуальных лабораторий в образовательном процессе позволяет обучающимся сформировать необходимые в конкретной предметной области практические навыки, а также служат инструментом их оценивания. Однако множество правильных ответов на задания виртуальных лабораторий в подавляющем большинстве случаев является алгоритмически неразрешимым [17], что усложняет процесс разработки соответствующего программного и методического обеспечения. Обучающийся в ходе выполнения задания виртуальной лаборатории описывает определенную систему, имеющую множество входов и выходов. Таким образом, одним из способов верификации правильности результатов выполнения работы является формирование эталонных наборов входных и выходных данных, для которых осуществляется проверка функционирования описанной обучающимся системы. Однако невозможно сформировать множество наборов эталонных данных, поскольку в большинстве случаев данное множество также является неразрешимым, а ограничение оценивания на наиболее характерных наборах данных не гарантирует правильность работы системы на других наборах. Для решения поставленной проблемы может быть применен метод символьного выполнения [18-20] как один из наиболее эффективных методов оценки в указанном случае.

В рамках данной работы был разработан метод формальной верификации программ в сим-

Команда Описание

n ^ m Сдвиг каретки вправо, переход к команде с номером т

n ^ m Сдвиг каретки влево, переход к команде с номером т

n V m Установка метки, переход к команде с номером т

n X m Снятие метки, переход к команде с номером т

n ? m1; m2 Если ячейка не отмечена — переход к команде с номером т1, иначе — переход к команде с номером т2

n ! Команда остановки

вольном виде для виртуальной лаборатории «Машина Поста». Машина Поста представляет собой простейшую алгоритмическую машину и имеет бинарный алфавит. Как было описано выше, виртуальный стенд лаборатории «Машина Поста» имеет бесконечную в обе стороны ленту, а также каретку, указывающую на текущую обозреваемую ячейку ленты. Ячейки ленты могут находиться в двух состояниях — быть пустыми (0) или содержать метку (1), таким образом, общее состояние ленты определяется набором значений (словом из нулей и единиц), содержащихся на ленте в конкретный момент времени. В начальный момент времени только конечное количество ячеек содержит метку, остальные остаются пустыми. Язык, описывающий состояния ленты машины Поста, можно определить регулярным выражением е + 1 + 1(0 + 1)*1, где е — пустая цепочка. Для полного описания состояния машины необходимо ввести состояние каретки, указывающей на определенную ячейку. Таким образом, состояние машины определяется тройкой значений а1Ла2, где а1 — слово, определяющее состояние фрагмента ленты, расположенного слева от каретки; Л — символ, обозначающий положение каретки; а2 — слово, определяющее состояние фрагмента ленты, образованного обозреваемой ячейкой и ячейками, находящимися справа от нее. Стандартная конфигурация машины представляет собой конфигурацию, при которой каретка обозревает крайнюю слева отмеченную ячейку — Ла, где а — слово, определяющее состояние ленты.

В соответствии с обозначенным выше перечнем команд машины Поста, список команд состоит из следующих: i > j, i < j, i V j, i X j, i ? j1 j2, i ! — где i — номер текущей выполняемой команды; j, j1, j2 — номера команд, которым передается управление после выполнения текущей команды. Общее количество программы F обозначим как Правильная команда для машины Поста не должна содержать ссылки на неопределенные в коде команды. В ходе выполнения программы могут произойти следующие события:

1) машина перейдет к невыполнимой команде (команде установки / снятия метки или неопределенной команде) — выполнение программы завершается, остановка считается безрезультатной;

2) достигается команда остановки — выполнение программы завершается, остановка считается результативной;

3) выполнение программы не завершается, машина работает бесконечно.

Обозначим переход между конфигурациями машины как ^К2, где K1 — начальная конфигурация машины; K2 — конечная конфигурация; i — команда, благодаря которой произошел переход. Если конфигурация машины измени-

лась после выполнения программы F, содержащей последовательность команд 5 = i2, ..., in-1), где 1 < ij < , j = 1, 2, ..., п - 1, то обозначим

это как К1 ^ К2. В ходе выполнения программы F

Б

машина перерабатывает слово а1а2 в слово Р1Р2: F(а1а2) = Р1Р2. Рассмотрим несколько примеров программ при условии, что выполнение программы начинается из описанной ранее стандартной конфигурации.

1. Базовые правила вычислений программ машины Поста в символьном виде.

Пусть аеЕ и {е}, а,р е Е*, х,у е К, где Е е {0,1} — двоичный алфавит, е — пустой символ, тогда: 1) а0 =е 9) ааЛр ^ аЛаР

1< 1

2) а1 = а

3) а0 =е

4) а1 =а

5) а0х = 0ха = а

6) ахау = ауах =ах+У

7) ахау = ауах =ах + у

10) аЛОр^аЛаР

IV/

11) аЛ1р ^ аЛОр

I X}

12) аЛ1р ^ е

I V,

13) аЛОр ^ е

I X у

14) аЛр ^ аЛр

* ? ¡1 '¡2

15) аЛр^аЛр

I.!

8) аЛаР^ааЛр

ь >1

Пример 1. Рассмотрим программу, добавляющую к числу, записанному на ленте, единицу:

1 < 2

2 V 3

3 !

В рассматриваемых примерах числа на ленте представляются в унарном коде — число х будет представлено как 11.1 = 1х. В случае размещения на ленте нескольких чисел х1, х2, . , хп состояние ленты будет представлено в виде 1Х10У11Х20Уа...0Уп-11Хп, где ур у2, ... , уп — некоторые натуральные числа. Начальная конфигурация машины имеет вид Л1х. После выполнения первой команды конфигурация машины перейдет к виду Л01х. Поскольку вторая команда производит установку метки в обозреваемую ячейку, то конфигурация машины станет равной Л1х+1, после чего происходит результативная остановка выполнения программы. Таким образом, становится возможным описать результат программы в символьном виде и восстановить функцию, определяемую программой.

2. Правила вычисления циклов машиной Поста в символьном виде.

Пример 2. Рассмотрим пример программы, выполняющей сложение двух чисел, т. е. осуществляющей преобразование слова в -[_х1 +х2 •

1 > 2

2 ? 3 1

3 < 4

4 X 5

5 < 6

6 ? 13 7

7 > 8

8 ? 7 9

9 < 10

10 V 11

11 < 12 12 ? 11 4

13 > 14

14 ? 13 15

15 < 16

16 V 17 17!

В представленной программе происходит смещение левой последовательности меток к правой и тем самым формируется результирующая комбинация. Пусть начальная конфигурация машины Л130316, тогда ход выполнения программы можно представить в виде

Л130316

1Л120316 1Л120316 12Л10316 12Л10316

13Л0316 13Л0316 12Л10316 12Л0416 1Л10416 1Л10416 12Л0416 12Л0416 120Л0316 120Л0316 1202Л0216 1202Л0216 1203Л016 1203Л016 1204Л16 1204Л16 1203Л016 10:1203Л17 11:1202Л017

12: 1202Л017 11: 120Л0217 12: 120Л0217 11: 12Л0317 12: 12Л0317 11: 1Л10317 12: 1Л10317

11: 10Л0218 12: 10Л0218 11: 1Л0318 12: 1Л0318 11: Л10318 12: Л10318 4: Л0418 5: Л0518 6: Л0518 13: Л0418 14: Л0418 13: Л0318 14:Л0318 13: Л0218 14:Л0218 13: Л018 14: Л018 13: Л18 14: Л18 15: Л018 16: Л19 17: Л19

4: 1Л0417 5: Л10417 6: Л10417 7: 1Л0417 8: 1Л0417 7: 10Л0317 8: 10Л0317 7: 102Л0217 8: 102Л0217 7: 103Л017 8: 103Л017 7: 104Л17 8: 104Л17 9: 103Л017 10:103Л18 11: 102Л018 12: 102Л018

В представленном отображении каждая из строк имеет формат 1: а, где I — номер текущей завершенной команды, а — конфигурация машины после выполнения команды. В данной программе для выполнения определенных действий используются циклы, в частности:

1: 1Л120316 1: 12Л10316 1: 13Л0316

2: 1Л120316 2: 12Л10316 2: 13Л0316 В представленном фрагменте повторно выполняются команды 1 и 2, осуществляющие перемещение каретки от начала левой последовательности меток к ее правому концу. Другим примером цикла является повтор команд 11 и 12, осуществляющих перемещение от левого края правой последовательности к правому краю левой, пока в обозреваемой ячейке не будет метки: 11: 1202Л017 11: 12Л0317

12: 1202Л017 12:12Л0317

11: 120Л0217 11: 1Л10317

12: 120Л0217 12: 1Л10317

Таким образом, можно сформулировать основные характеристики циклов:

1) остановка цикла происходит, если в ходе выполнения цикла уменьшается какая-либо повторяющаяся последовательность из нулей и единиц, записанных на ленте;

2) выполнение цикла продолжается до тех пор, пока уменьшающаяся последовательность не будет исчерпана;

3) цикл не завершается, если ни одна из последовательностей не убывает.

Эти правила позволяют вычислять результат циклов в символьном виде, завершающихся за конечное количество шагов.

Большинство задач для машины Поста предусматривают выполнение сложных операторов — циклов. Обозначим некоторый цикл как 5, а также аеЕи {е}, Ь, ее Е, Ь Ф е, а1, ..., ап, Р1, ..., Рп, У1, ..., Ут, ..., 5т £ Х1, ..., Х^ У, 21, ..., 2т е К, где f: К^К — возрастающая функция, / 1 — обратная функция, кх, ..., Ъп, g1, ..., gm: К^^. Если А^ = Акк1 = ... = Аккп = Ак^1 = ... = Akgm = 0, у - т =0, х1 + Н1(/-1(у)) > 0, ..., Хп + Нп(/-1(У)) > 0, 21 +gl(f -1(у)) > 0, ..., 2т +gm(f -1(У)) ^ 0, то в зависимости от направления движения цикла по командам определим следующие соотношения:

1) движение вправо

р„ ...а^1 р1ЛЬус1у15^1 ... ут8]% 1 1 я

^ (1)р„ ...о? (1)р1а/(1) Л

5 1

Л^"/(1)с1у151г1(1)... 1т(1) 1 я

+к^... * /Юл

5 1

ЛЬу-/(^)с1у15-1 + №... 1т+<?т(Ч

- ('""" >р„ ... а? V»» Л

^ * с<•>>... е+8-" >;

2) движение влево

ахп» р„ ... а* р1с1Ь"-1ЛЬ1у15^1 ... ут 8% => 1 1 я

^+К (1)Р„ ... < +Й1 (1)Р1С1Ьу" Х) Л

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

5 1

АЪ1^(1) + й (1)... ут (1) 1 я

Щ... Ъ 1-/№л

5 1

АЪ1^^у18?1 ...ут

1 я

(' " (У))р„ ... а? )р1Л

5 1

лс'„» ^+«■(')... т. с "Ч

В случае если /(£) и а1 = ... =ап = Р1 = ... = = Рп =у1 = ... =уп =51 = ... =5п =е, обозначенные выше соотношения представляются в виде

ЛЬ^с1 ^ а1ЛЬу_1с1 ах+у Лс1;

В то же время условие Akf = АкН1 = ... = Аккп = = Akg1 = ... = Akgm = 0 указывает на то, что функции ^ Л1, ..., Нп, g1, ..., gm могут быть интерполированы полиномами, степень которых не превышает £ - 1.

Пример 3. Вычислим результат выполнения программы, осуществляющей сложение двух чисел, записанных на ленте, при условии, что начальная конфигурация машины равна Л1х0у12:

Л1х0У12 1 2 1 2

11Л1х-10У12 11Л1х-10У12 12Л1х-20У12 12Л1х-20У12 Цикл (1,2): 2: 1хЛ0У12 3: 1х-1Л110У12 4: 1х-1Л0У+112 5: 1х-2Л10У+112 6: 1х-2Л10У+112 7: 1 х-1Л0У+112 8: 1х-1Л0У+112 7: 1 х-101Л0У12 8: 1х-101Л0У12 Цикл (7,8): 8: 1х-10У+1Л12 9: 1х-10УЛ0112

12: 1х-10У-1Л0112+1

11: 1х-10У-2Л0212+1

12: 1х-10У-2Л0212+1

Цикл (11,12):

12: 1х-2Л10У12+1

4: 1х-2Л0У+112+1

5: 1х-3Л110У+112+1

6: 1х-3Л110У+112+1

Цикл (7,8,...,12,4,5,6):

6: Л0У+212+х-1

13: Л0У+112+х-1

14: Л0У+112+х-1

13: Л0У12+х-1

14: Л0У12+х-1

Цикл (13,14):

14: Л12+х-1

15: Л012+х-1

16: Л12+х

17: Л12+х

10: 1х-10УЛ12+1 11: 1х-10У-1Л0112+1

В результате символьных вычислений получаем строку 12+х, что является верным ответом.

Концепция внедрения

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

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

7 < 8

8 ? 9 7

10 < 11 11 ? 12 10

В символьном виде указанные циклы можно описать как

I < I +1 I +1? I + 2, ¿,

где i — номер команды. Таким образом, при установленной начальной конфигурации машины Поста и правил символьного выполнения операций и циклов появляется возможность вычислить итоговую конфигурацию машины. Циклы (7,8) и (10,11) выполняют операцию перемещения каретки влево до пустой ячейки и осуществляют переход к следующей команде. Идентифицировав эти циклы в ходе анализа кода и проанализировав программу, можно получить полную информацию о системе, описанной обучающимся в ходе выполнения задания. Для рассматриваемого примера цикла (7,8)

Iх Л0у_11г

и з

^ Л01Х0У_11

(7,8)

Следовательно, правила для цикла были выполнены и машина осуществила переход в новую конфигурацию.

Заключение

После завершения экспериментального исследования были достигнуты следующие результаты.

1. Классифицированы основные виды виртуальных лабораторий, использующихся в образовательном процессе, определены их достоинства и недостатки.

2. Приведено описание разработанного метода управления удаленной лабораторией RLCP, внедренного и успешно использующегося в автоматизированной системе управления процес-

сом электронного обучения Университета ИТМО AcademicNT.

3. Разработан метод формальной верификации программ для виртуальной лаборатории «Машина Поста», позволяющий осуществлять оценивание присланных на проверку заданий

1. Аврунин О. Г., Крук О. Я., Носова Т. В., Семенец В. В.

Технические аспекты разработки виртуальных лабораторных работ по техническим дисциплинам // Открытое образование. 2008. № 3. С. 11-17.

2. Васильев В. Н., Лисицына Л. С., Лямин А. В. Сетевая технология проведения вступительных испытаний по информатике в режиме on-line // Использование информационно-коммуникационных технологий в процессе оценки качества образования: сб. науч. тр. 2008. С. 55-70.

3. Kay J., Reimann P., Diebold E., Kummerfeld B. MOOCs: So Many Learners, So Much Potential... // IEEE Intelligent Systems. 2013. Vol. 28(3). P. 70-77. doi:10.1109/MIS.2013.66

4. Zang X., Iqbal S., Zhu Y., Riaz M. S., Abbas G., Zhao J. Are MOOCs Advancing as Predicted by IEEE CS 2022 Report? // Intern. Conf. on Proc. of the Systems Informatics, Modelling and Simulation (SIMS). 2016. P. 49-55. doi:10.1109/SIMS.2016.14

5. Stuchlikova L., Kosa A. Massive Open Online Courses — Challenges and Solutions in Engineering Education // IEEE 11th Intern. Conf. on Emerging eLearn-ing Technologies and Applications (ICETA). 2013. P. 359-364. doi:10.1109/ICETA.2013.6674459

6. Djeghloud H., Larakeb M., Bentounsi A. Virtual Labs of Conventional Electric Machines // Intern. Conf. on Interactive Mobile and Computer Aided Learning (IMCL). 2012. P. 52-57. doi:10.1109/IMCL. 2012.6396450

7. Magyar Z., Zakova K. Using SciLab for Building of Virtual Lab // 9th Intern. Conf. on Information Technology Based Higher Education and Training (ITHET). 2010. P. 280-283. doi:10.1109/ITHET. 2010.5480084

8. Hristov G., Zahariev P., Bencheva N., Ivanov I. Designing the Next Generation of Virtual Learning Environments — Virtual Laboratory with Remote Access to Real Telecommunication Devices // Proc. of the 24th EAEEIE Annual Conf. (EAEEIE). 2013. P. 139-144. doi:10.1109/EAEEIE.2013.6576517

9. Moritz D., Willems C., Goderbauer M., Moeller P., Meinel C. Enhancing a Virtual Security Lab with a Private Cloud Framework // IEEE Intern. Conf. on Teaching, Assessment and Learning for Engineering (TALE). 2013. P. 314-320. doi:10.1109/TALE.2013. 6654452

виртуальной лаборатории в символьном виде без использования эталонных наборов входных/выходных данных.

4. Предложена концепция реализации и внедрения метода формальной верификации программ в информационно-образовательные системы.

10. Ахи А. А., Станкевич А. С., Шалыто А. А. Автоматические методы модификации решений для тестирования проверяющих программ // Научно-технический вестник информационных технологий, механики и оптики. 2012. № 1(77). С. 81-85.

11. Ефимчик Е. А. Автоматическое построение заданий для проверки навыков выполнения операций над множествами // Новые информационные технологии в образовании: материалы междунар. науч.-практ. конф. 2013. С. 278-281.

12. Lisitsyna L. S., Efimchik E. A., Izgareva S. A. RLCP-compatible Virtual Laboratories with 3d-mod-els and Demonstration Mode: Development and Application in e-learning // Smart Innovation, Systems and Technologies. 2018. Vol. 75. P. 75-81. doi:https:// doi.org/10.1007/978-3-319-59451-4_8

13. Efimchik E. A., Cherepovskaya E. N., Lyamin A. V. RLCP-Compatible Virtual Laboratories in Computer Science // Smart Innovation, Systems and Technologies. 2016. P. 303-314. doi:https://doi.org/10.1007/ 978-3-319-39690-3_27

14. Efimchik E. A., Chezhin M. S., Lyamin A. V., Ru-sak A. V. Using Automaton Model to Determine the Complexity of Algorithmic Problems for Virtual Laboratories // 9th Intern. Conf. on Application of Information and Communication Technologies (AICT 2015). 2015. P. 541-545. doi:10.1109/ICAICT.2015. 7338619

15. Sandya M. Competence Possessed by Engineering Professionals in Regard to the Prevailing Trends and Worldwide Attitudes Towards Engineering Education // IEEE Intern. Conf. on Engineering Education: Innovative Practices and Future Trends (AICERA). 2012. P. 1-6.

16. Post E. L. Finite Combinatory Processes-Formulation 1 // The Journal of Symbolic Logic. 1936. Vol. 1. N 3. P. 103-105.

17. Вашенков О. Е., Лямин А. В. Методика формирования эталонных наборов входных и выходных данных для анализа результатов выполнения заданий с неразрешимым множеством правильных ответов // Научно-технический вестник информационных технологий, механики и оптики. 2009. № 3 (61). С. 99-105.

18. Arifi S. M., Zahi A., Benabbou R. Semantic Similarity based Evaluation for C Programs through the Use of Symbolic Execution // IEEE Global Engineering Education Conf. (EDUCON). 2016. P. 826-833. doi:10.1109/EDUC0N.2016.7474648

19. Cheatham T. E., Holloway G. H., Townley J. A. Symbolic Evaluation and the Analysis of Programs // IEEE Transactions on Software Engineering. 1979. Vol. SE-5. N 4. P. 402-417. doi:10.1109/TSE.1979. 234207

_/

20. Vidal G. Closed Symbolic Execution for Verifying Program Termination // IEEE 12th Intern. Working Conf. on Source Code Analysis and Manipulation (SCAM). 2012. P. 34-43. doi:10.1109/SCAM.2012.13

UDC 004.023, 004.424 doi:10.15217/issn1684-8853.2018.2.104

Method of Formal Program Verification for Post Machine Virtual Laboratory

Lyamin A. V.a, PhD, Tech., Associate Professor, [email protected]

aSaint-Petersburg National Research University of Information Technologies, Mechanics and Optics, 49, Kronverkskii Pr., 197101, Saint-Petersburg, Russian Federation

Introduction: The symbolic method of formal program verification is an effective way to evaluate students' practical skills automatically, especially for tasks with an unsolvable set of correct answers, which significantly simplifies the development of evaluation software. Purpose: Developing a new method of formal program verification using symbolic evaluation approach for the programs written for Post Machine virtual laboratory. Results: A new method of formal verification of programs written for Post Machine virtual laboratory using symbolic evaluation approach has been developed. The basic principles and examples of programs for Post Machine as well as methods for their symbolic formalization are discussed. Various tasks of running mathematical operations on numbers presented in unary code were considered, i.e. incrementation, addition, multiplication, break point, transfer to a different machine configuration, etc. The considered tasks are sufficient for the students to form basic practical skills in making algorithms. Symbolic representation of students' answers simplifies the development of evaluation tools of the virtual laboratory, making it possible to monitor the formation of students' practical skills automatically. A concept of embedding the presented method of formal program verification into the available online educational platforms is presented. Practical relevance: The developed method of formal verification of programs written for Post Machine is used to evaluate students' practical skills in making algorithms. It can simplify the development of virtual laboratories by reducing the costs of forming test sets used to evaluate the students' answers. Keywords — Information Systems, e-Learning, Virtual Laboratories, Formal Program Verification.

Citation: Lyamin A. V. Method of Formal Program Verification for Post Machine Virtual Laboratory. Informatsionno-upravliaiushchie sistemy [Information and Control Systems], 2018, no. 2, pp. 104-114 (In Russian). doi:10.15217/issn1684-8853.2018.2.104

Reference

1. Avrunin O. G., Kruk O. Ia., Nosova T. V., Semenets V. V. Technical Aspects of Development Virtual Laboratory Works for Technical Disciplines. Otkrytoe obrazovanie [Open Education], 2008, no. 3, pp. 11-17 (In Russian).

2. Vasil'ev V. N., Lisitsyna L. S., Liamin A. V. Network Technology of Passing Entrance Computer Science Tests in Online. Sbornik nauchnykh trudov "Ispol'zovanie informat-sionno-kommunikatsionnykh tekhnologii v protsesse otsenki kachestva obrazovaniia" [Digest of Scientific Works "Use of Information and Communication Technologies in the Process of Assessing the Quality of Education"], 2008, pp. 5570 (In Russian).

3. Kay J., Reimann P., Diebold E., Kummerfeld B. MOOCs: So Many Learners, So Much Potential... . IEEE Intelligent Systems, 2013, vol. 28(3), pp. 70-77. doi:10.1109/MIS.2013.66

4. Zang X., Iqbal S., Zhu Y., Riaz M. S., Abbas G., Zhao J. Are MOOCs Advancing as Predicted by IEEE CS 2022 Report? Intern. Conf. on Proc. of the Systems Informatics, Modelling and Simulation (SIMS), 2016, pp. 49-55. doi:10.1109/ SIMS.2016.14

5. Stuchlikova L., Kosa A. Massive Open Online Courses — Challenges and Solutions in Engineering Education. IEEE 11th Intern. Conf. on Emerging eLearning Technologies and Applications (ICETA), 2013, pp. 359-364. doi:10.1109/ICE-TA.2013.66744 59

6. Djeghloud H., Larakeb M., Bentounsi A. Virtual Labs of Conventional Electric Machines. Intern. Conf. on Interactive Mobile and Computer Aided Learning (IMCL), 2012, pp. 52-57. doi:10.1109/IMCL.2012.6396450

7. Magyar Z., Zakova K. Using SciLab for Building of Virtual Lab. 9th Intern. Conf. on Information Technology Based Higher Education and Training (ITHET), 2010, pp. 280283. doi:10.1109/ITHET.2010.5480084

8. Hristov G., Zahariev P., Bencheva N., Ivanov I. Designing the Next Generation of Virtual Learning Environments — Virtual Laboratory with Remote Access to Real Telecommunication Devices. Proc. of the 24th EAEEIE Annual Conf.

(EAEEIE), 2013, pp. 139-144. doi:10.1109/EAEEIE.2013. 6576517

9. Moritz D., Willems C., Goderbauer M., Moeller P., Meinel C. Enhancing a Virtual Security Lab with a Private Cloud Framework. IEEE Intern. Conf. on Teaching, Assessment and Learning for Engineering (TALE), 2013, pp. 314-320. doi:10.1109/TALE.2013.6654452

10. Ahi A. A., Stankevich A. S., Shalyto A. A. Automatic Solution Modifications for Testing Solution Checkers. Nauch-no-tehnicheskij vestnik informacionnyh tehnologij, mehani-ki i optiki, 2012, no. 1(77), pp. 81-85 (In Russian).

11. Efimchik E. A. Automatic Creation of Tasks for Assessing Skills of Performing Operations on Sets. Materialy mezh-dunarodnoj nauchno-prakticheskoj konferencii "Novye in-formacionnye tehnologii v obrazovanii" [Proc. of the Intern. Scientific and Practical Conf. on the New Educational Information Technologies], 2013, pp. 278-281 (In Russian).

12. Lisitsyna L. S., Efimchik E. A., Izgareva S. A. RLCP-com-patible Virtual Laboratories with 3d-models and Demonstration Mode: Development and Application in e-learning. Smart Innovation, Systems and Technologies, 2018, vol. 75, pp. 75-81. doi:https://doi.org/10.1007/978-3-319-59451-4_8

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

13. Efimchik E. A., Cherepovskaya E. N., Lyamin A. V. RLCP-Compatible Virtual Laboratories in Computer Science. Smart Innovation, Systems and Technologies, 2016, pp. 303-314. doi:https://doi.org/10.1007/978-3-319-39690-3_27

14. Efimchik E. A., Chezhin M. S., Lyamin A. V., Rusak A. V. Using Automaton Model to Determine the Complexity of Algorithmic Problems for Virtual Laboratories. 9th Intern. Conf. on Application of Information and Communication Technologies (AICT 2015), 2015, pp. 541-545. doi:10.1109/ ICAICT.2015.7338619

15. Sandya M. Competence Possessed by Engineering Professionals in Regard to the Prevailing Trends and Worldwide Attitudes Towards Engineering Education. IEEE Intern.

Conf. on Engineering Education: Innovative Practices and Future Trends (AICERA), 2012, pp. 1-6.

16. Post E. L. Finite Combinatory Processes-Formulation 1. The Journal of Symbolic Logic, 1936, vol. 1, no. 3, pp. 103105.

17. Vashenkov O. E., Liamin A. V. Creation Technique of Reference Entrance and Target Data Sets for the Evaluation of Tasks with Unsolvable Set of Right Answers. Nauchno-tekh-nicheskii vestnik informatsionnykh tekhnologii, mekhaniki i optiki, 2009, no. 3 (61), pp. 99-105 (In Russian).

18. Arifi S. M., Zahi A., Benabbou R. Semantic Similarity based Evaluation for C Programs through the Use of Sym-

bolic Execution. IEEE Global Engineering Education Conf. (EDUCON), 2016, pp. 826-833. doi:10.1109/EDUCON. 2016.7474648

19. Cheatham T. E., Holloway G. H., Townley J. A. Symbolic Evaluation and the Analysis of Programs. IEEE Transactions on Software Engineering, 1979, vol. SE-5, no. 4, pp. 402-417. doi:10.1109/TSE.1979.234207

20. Vidal G. Closed Symbolic Execution for Verifying Program Termination. IEEE 12th Intern. Working Conf. on Source Code Analysis and Manipulation (SCAM), 2012, pp. 34-43. doi:10.1109/SCAM.2012.13

Научный журнал «ИНФОРМАЦИОННО-УПРАВЛЯЮЩИЕ СИСТЕМЫ» выходит каждые два месяца.

Стоимость годовой подписки (6 номеров) для подписчиков России — 6000 рублей,

для подписчиков стран СНГ — 6600 рублей, включая НДС 18%, таможенные и почтовые расходы.

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

«Роспечать»: № 15385 — полугодовой индекс,

а также через посредство подписных агентств:

«Северо-Западное агентство „Прессинформ"»

Санкт-Петербург, тел.: (812) 335-97-51, 337-23-05,

эл. почта: [email protected], [email protected],

сайт: http://www.pinform.spb.ru

«МК-Периодика» (РФ + 90 стран)

Москва, тел.: (495) 681-91-37, 681-87-47,

эл. почта: [email protected], сайт: http://www.periodicals.ru «Деловая пресса»

Москва, тел.: (495) 962-11-11, эл. почта: [email protected], сайт: http://delpress.ru/contacts.html «Коммерсант-Курьер»

Казань, тел.: (843) 291-09-99, 291-09-47, эл. почта: [email protected],

сайт: http://www.komcur.ru/contacts/kazan/

«Урал-Пресс» (филиалы в 40 городах РФ)

Сайт: http://www.ural-press.ru

«Идея» (Украина)

Сайт: http://idea.com.ua

«В^» (Узбекистан)

Сайт: http://btl.sk.uz/ru/cat17.html и др.

На электронную версию нашего журнала (все выпуски, годовая подписка, один выпуск, одна статья) вы можете подписаться на сайтах НЭБ: http://elibrary.ru; РУКОНТ: http://www.rucont.ru; ИВИС: http://www.ivis.ru/

Полнотекстовые версии журнала за 2002-2016 гг. в свободном доступе на сайте журнала (http://www.i-us.ru), НЭБ (http://www.elibrary.ru) и Киберленинки (http://cyberleninka.ru/ journal/n/informatsionno-upravlyayuschiesistemy).

i Надоели баннеры? Вы всегда можете отключить рекламу.