Главная страница

Программы

Скачать SPS для списков

Скачать SPS для деревьев

Об авторе

SPS - Small Pascal System (version 2.0)

Система для обучения программированию

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

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

Эксплуатация SPS2, реализующего подмножество Pascal'я, показала, что синтаксически- ориентированный редактор, контролирующий написание текста программы с точки зрения структурного подхода и синтаксической правильности, позволяет пропускать большее количество программ. По мнению пользователей, в 2-3 раза, что несомненно важно для процесса обучения, т.к. количество машинного времени, приходящееся на студента (ученика) всегда оставляет желать лучшего.

Small Pascal System был разработан для курса "Динамические структуры данных", читаемого на кафедре 22 и посвященного линейным спискам и деревьям. Основная идея SPS2 - визуализировать, показать некоторые наиболее сложные в обучении конструкции: указатель, динамически распределяемая память. SPS2 позволяет уяснить семантику и физический смысл, стоящий за этими понятиями программирования, и получить навыки работы с ними. Трехлетний опыт использования SPS2 в обучении показал эффективность и целесообразность такого подхода.

SPS2 является интерпретатором, что позволяет следить за работой программы в режиме пошагового выполнения с возможностью отката, контролируя одновременно состояние памяти. Все эти особенности будут способствовать эффективности обучения. Интерфейс также получит большую гибкость, давая возможность манипулировать размером и расположением окон системы на экране.

Итак, делается попытка связать текст программы и описанные в ней объекты с некоторыми графическими образами. В SPS2 такого рода объектами являются списки и деревья.

Система SPS2 включает следующие составные части, интегрированные в общую среду:

  1. Компилятор.
  2. Интерпретатор.
  3. Исполнительная система.
  4. Визуализатор.

Назначение Визуализатора как части SPS2 - сделать ход выполнения программы наглядным. Предлагается осуществить эту задачу через показ изменения состояния используемой Pascal-программой памяти. Собственно, программа, в её понимании на начальном этапе обучения, - это инструкция, описывающая действия над входными данными, целью которой является получение определенных выходных результатов. Тогда программа - последовательность действий над памятью. И для того, чтобы продемонстрировать как работает программа, надо показывать как она на каждом своем шаге воздействует на состояние (значения) описанных в ней объектов памяти (переменных). Сделать это можно поставив в соответствие каждой описанной в программе переменной некий образ, который реагирует на все действия программы над этой переменной: инициализацию, присвоение нового значения, создание/уничтожение (для динамической структуры), изменение видимости (локальность переменной). Следует этому подходу, мы видим в каждый момент выполнения программы то, как вырабатывается результат - выходные данные.

Реализация описанного подхода визуализации на практике включает 2 этапа:

  1. ?одобрать набор образов для объектов памяти: констант, переменных, которые бы иллюстрировали тип, статичность/динамичность, видимость, инициализированность;
  2. ?оздать программные средства визуализации и осуществить их сопряжение с соответствующим транслятором для того, чтобы связать каждое воздействие программы на память с визуализацией этого воздействия.

Что касается подбора образов для визуализации, то здесь возможны самые разнообразные решения в зависимости от поставленных методических задач обучения:

  • отображение значения в численном или символьном виде;
  • всплывающие/исчезающие окна для динамически распределяемой памяти;
  • 'семафоры' для типа boolean;
  • пустые или заполненные 'ящики' - ячейки для отображения инициализации переменных.

Очевидно, что возможности в сфере подбора образов практически неограничены.

Во втором аспекте реализации - сопряжении программных средств визуализации с транслятором Pascal-программы интересны следующие моменты.

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

  • описание переменной, константы - для визуализации вновь описанного объекта;
  • оператор присвоения - для визуализации изменения значения;
  • вызов процедуры, функции - для визуализации изменения переменных;

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

Таким образом, принимаемое решение зависит от целей, которые призвана осуществить разрабатываемая система.

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

Кроме того, внутренняя форма представления программы придает всей Исполнительной системе некоторую устойчивость, т.к. подмножество Pascal'я, охватываемое транслятором может постоянно изменяться, тогда как Интерпретатор внутреннего кода остается неизменным.

В результате данной работы была получена обучающая система SPS2 (Small Pascal System). Эта программа может быть использована для обучения студентов младших семестров по курсам "Программирование" и "Структуры данных" читаемых на 22 кафедре.

Разработанная Исполнительная система поддерживает подмножество Pascal'я, включающее типы данных integer, char, boolean, синтаксические конструкции блока begin-end, условного оператора if-then-else, операторы цикла while, repeat.

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

Разработан интерфейс системы SPS2 - это удобная многооконная среда со встроенным текстовым редактором.

Данная работа представлялась на конференции "Научная студенческая осень-94" и была отмечена премией.

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

Чачин А. В., аспирант МИФИ, кафедра 22
aqtau@narod.ru


Rambler's Top100 Service The List of Russian Web Servers WebList.Ru freeSOFT SERVER

Перейти на главную страницу http://www.ropnet.ru/anri/

В начало страницы SPS