Сайт посвящен ПЭВМ АГАТ: Передовица » Макулатура » Микропроцессорные средства и системы » 1984, N1

1984, N1

Программная система «Школьница» и ее реализация на персональных ЭВМ

Звенигородский Г.А., Глаголева Н.Г., Земцов П.А., Налимов Е.В., Цикоза В.А.

Одна из важнейших сфер внедрения вычислительной техники – образование, в том числе – общеобразовательная школа. Обучая работе с ЭВМ, школа будет готовить учащихся к эффективному использованию возможностей современной техники в общественном производстве, науке, здравоохранении, культуре и образовании. Кроме того, благодаря ЭВМ можно широко применять моделирующие программы, тренажеры, развивающие игры, а это повышает качество преподавания многих предметов школьного курса.

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

Пакеты прикладных программ и системы программирования, предназначенные для учащихся различного возраста и квалификации, сегодня одна из наиболее развитых компонент программного обеспечения ПЭВМ.

В Вычислительном центре СО АН СССР при участии Новосибирского университета разработана программная система «Школьница» для оснащения персональных ЭВМ, в частности эта система реализована в составе системного программного обеспечения персональной ЭВМ «Агат».

Структура системы «Школьница»

«Школьница» – интегрированная программная среда учебно-производственного назначения. Ее общая структура представлена на рисунке в виде трехслойной диаграммы. Она объединяет в себе свойства интегрированной многоязыковой системы программирования с управляемой структурой, комплекта пакетов прикладных программ учебного назначения, инструментальной системы для реализации таких пакетов и диалоговой архивно-сервисной системы. Система позволяет:

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

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

Учебно-производственный язык Рапира

Основной входной язык системы «Школьница» – учебно-производственный язык Рапира. Он предназначен для обучения основным способам и приемам решения задач на ЭВМ учащихся, уже знакомых с важнейшими понятиями и конструкциями программирования на примере языка начального обучения. Рапира может быть использована для решения разнообразных прикладных задач. Вместе с тем Рапира – основной инструментальный язык системы «Школьница»: на этом языке записывается большинство прикладных программ и учебных пакетов, образующих наполнение системы.

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

Лексические единицы языка (лексемы) – имена, служебные слова, числа, тексты, специальные символы и комментарии. Длина большинства лексем, в том числе имен, текстов и целых чисел в языке не ограничивается. Форма их записи в общем традиционна. Имена и служебные слова синтаксически не отличаются друг от друга и распознаются контекстно. Между любыми лексемами, но не внутри них, может быть вставлено произвольное число пробелов, переводов строк и комментариев. В качестве базового естественного языка для Рапиры выбран русский.

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

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

Над числами в Рапире выполняются обычные арифметические операции (включая возведение в степень) и операции сравнения. Для текстов предусмотрено определение количества символов в них и работа с отдельными участками текстов.

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

Множество рассматривается как неупорядоченная совокупность попарно различных элементов, кортеж – как упорядоченная последовательность индексируемых элементов, запись – как составное значение с именованными полями.

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

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

В Рапире предусмотрены следующие предписания:

  • присваивание, обозначаемое стрелкой вправо (–>);
  • ВВОД и ВЫВОД;
  • циклы (четыре разновидности – ПОКА, ПОВТОР, ДЛЯ-ИЗ и ДЛЯ-ОТ-ДО-ШАГ);
  • ветвления (три разновидности ЕСЛИ);
  • ВЫБОР и ВЫБОР ИЗ;
  • вызов процедуры;
  • ВКЛЮЧИТЬ и ВЫКЛЮЧИТЬ (для управления потоками ввода-вывода, отладочными режимами и модулями);
  • ВЫХОД (для выхода из процедур);
  • СТОП и ПУСК;
  • КОНТРОЛЬ (установка контрольных точек в отладочном режиме);
  • управление файлами.

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

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

Модули – удобное средство для описания учебных пакетов прикладных программ. Модулем в Рапире называется совокупность одновременно загружаемых процедур, функций и файлов с общим полем нелокальных имен. Часть имен, используемых в модуле, может быть скрыта от пользователя (инкапсуляция данных). Условия видимости элементов модуля определяются при его описании. Для описания модулей есть специальный режим.

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

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

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

Графическая система Шпага и язык начального обучения Робик

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

Особое место в системе занимает язык Робик, предназначенный для обучения младших школьников (8–12 лет) основным понятиям и навыкам программирования.

По операционным возможностям Робик близок к внутреннему концентру Рапиры. Основные предписания в нем следующие: присваивание, ввод, вывод, ветвление (ЕСЛИ-ТО-ИНАЧЕ), циклы (две разновидности), вызов процедуры, ВКЛЮЧИТЬ и ВЫКЛЮЧИТЬ и некоторые отладочные конструкции. Для описания функций и процедур используется тот же текстовой редактор, что и в Рапире. Лексика этих языков практически совпадает. Однако, в отличие от Рапиры, большинство предписаний Робика имеет несколько синтаксических форм: от развернутых, полностью описывающих семантику предписания, до кратких, близких к рапировским.

Такой «сжимаемый» синтаксис позволяет использовать непроизвольное запоминание для усвоения семантики основных конструкций. Например, простейшее присваивание можно написать в полной форме –

ЗНАЧЕНИЕ „Лев" ПОМЕСТИТЬ В БЛОК ПАМЯТИ с ИМЕНЕМ Зверь;

в более короткой –

ЗНАЧЕНИЕ „Лев" ПРИСВОИТЬ ИМЕНИ Зверь;

и в совсем короткой – „Лев" ПРИСВОИТЬ Зверь;

На Рапире это предписание будет выглядеть так:

„Лев" –> Зверь;

Аппарат исполнителей в языке Робик

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

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

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

Средства управления операционной обстановкой

Как уже указывалось, одна из важнейших задач системы «Школьница» в учебном процессе – формирование специфической операционной обстановки для каждого учащегося. Операционная обстановка – это набор возможных действий вместе со средствами их выполнения [1]. При работе с системой «Школьница» обстановка включает в себя определенные технические возможности (работа с диском, экраном, динамиком, печатающим устройством и т. п.), множество доступных операций, предписаний, стандартных модулей, файлов, функций и процедур, комплект подключенных учебных пакетов прикладных программ и исполнителей, а также библиотеку программ, составленных пользователем для себя. Операционная обстановка для каждого урока определяется преподавателем исходя из текущей учебной задачи. Например, иногда бывает целесообразно закрыть учащемуся доступ к некоторым информационным файлам или языковым конструкциям, чтобы проверить его знания или сформировать определенные навыки. Для формирования операционной обстановки предусмотрен еще один самостоятельный язык, входящий в состав языкового ядра системы.

Пакеты программ библиотеки

Внешний слой – наполнение системы «Школьница» – образован программными модулями и исполнителями, описанными с использованием входных языков системы. Большая часть слоя – программы, составленные преподавателями и методистами для учащихся и самими школьниками для себя. Это позволяет определять «Школьницу» в целом как программную среду.

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

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

  • моделирующие – управляемые программные модели объектов и процессов;
  • операционные, предоставляющие пользователю набор дополнительных возможностей и тем самым расширяющие операционную обстановку;
  • информационные – базы данных по тематике школьных предметов со специализированными языками запросов;
  • тренажеры для отработки определенных навыков во взаимодействии с ЭВМ;
  • контрольно-обучающие – курсы программированного обучения, составленные с учетом возможностей ПЭВМ, или программы для проверки знаний и навыков учащихся.

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

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

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

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

Реализация системы «Школьница»

Для реализации системы «Школьница» на ПЭВМ разработан универсальный синтаксически-управляемый интерпретатор с использованием промежуточной системы команд виртуальной Рапира-машины.

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

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

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

Работой системы управляет главный монитор.

Опыт применения системы «Школьница»

В настоящее время система «Школьница», как уже упоминалось, реализована на отечественной персональной ЭВМ «Агат» в исполнении, включающем ОЗУ емкостью 96 Кбайт, ДЗУ на гибком магнитном диске емкостью 128 Кбайт и растровый телевизионный монитор с информационной емкостью 32x32 символа, 128x128 цветных точек растра или 256x256 черно-белых точек. Сокращенная версия системы с лексикой на основе английского языка реализована на ЭВМ «Apple» с ОЗУ емкостью 48 Кбайт. В дальнейшем предполагается перенести систему на другие типы малых ЭВМ и модифицировать ее для локальных сетей персональных ЭВМ [3].

Система эксплуатируется в ВЦ СО АН СССР, в вычислительном кабинете средней школы №166 г. Новосибирска, на предприятиях и в других организациях. Как показали первые месяцы опытной эксплуатации, систему можно эффективно использовать в работе со школьниками любого возраста (эксперименты проводились в четвертых, седьмых и девятых классах) и со студентами вузов и техникумов. Система «Школьница» повышает качество обучения различным дисциплинам. Ее можно применять в составе автоматизированных рабочих мест специалистов различного профиля для решения прикладных задач в диалоговом режиме. В этом случае перед работой с системой не требуется специальной подготовки.

Исходные теоретические положения, реализованные в системе «Школьница», были разработаны в группе школьной информатики ВЦ СО АН СССР под руководством членкорреспондента АН СССР А. П. Ершова [4–6]. Результаты педагогических исследований и экспериментов группы, а также резюме основных положений представлены в работах [7, 8].

Первые версии языков Робик и Рапира и графической системы «Шпага», входящих в систему «Школьница», появились в 1975–1978 гг. [13, 14]. При выборе схемы диалога и способов работы со сложными структурами данных в Рапире использовались элементы современных языков высокого уровня, таких как Сетл [9] и Поп-2 [10]. Аппарат исполнителей, принятый в Робике, по своим операционным возможностям близок к базовым конструкциям языков Лого [11] и Smalltak [12].

В реализации на различных ЭВМ базовой части системы «Школьница» и ее наполнения принимали активное участие школьники – учащиеся и выпускники новосибирской и Всесоюзных Летних школ юных программистов. Так, первые реализации языков Робик и Рапира и системы «Шпага» на ЭВМ БЭСМ-6 были осуществлены с участием О. В. Хорошевской, А. К. Салиховой, Н. А. Соколовой, в реализации базовой части системы на ЭВМ «Apple» и «Агат» вместе с авторами участвовали Л. Р. Рабинович и Е. Л. Васенева, серия учебных пакетов прикладных программ для этой системы разработана В. Ю. Волковой, А. Д. Петровым, Д. А. Баклановым, С. В. Гавриленко.

Существует пробная реализация языка Рапира на ЕС ЭВМ, выполненная в Ленинградском университете [15].

ЛИТЕРАТУРА

1. Эфрос Л. Б. Концептуальный анализ программных систем: Препринт №75. – Новосибирск, 1977. – 22 с.

2. Кнут Д. Искусство программирования для ЭВМ. Основные алгоритмы. – М.: Мир, 1976, т.1. – 736 с.

3. Иоффе А. Ф. Персональные информационнообучающие и вычислительные устройства «Агат». Состояние и перспективы развития. – В кн.: Диалог-82 микро: Тез. докл. Всесоюз. науч.-техн. конф. Пущино. ВЦ АН СССР,1982, с. 12-14.

4. Ершов А. П., Звенигородский Г. А., Первин Ю. А. Школьная информатика (концепции, состояние, перспективы): Препринт № 152. – Новосибирск, 1979. – 51 с.

5. Ershov A. P. Programing, the second literacy. – In: Computers in education. North-Holland Publ. Corp. – IFIP, 1981, p. 1-7; см. также: Ершов А. П. Программирование – вторая грамотность. – ЭКО, 1982, №2, с. 143-156.

6. Звенигородский Г. А. Некоторые вопросы методологии учебного программирования. – В кн.: Второй чехословацко-советекий семинар молодых ученых по математической информатике. – Братислава, 1982, с. 44-50.

7. Ершов А.П., Звенигородский Г.А., Литерат С.И., Первин Ю.А. Работа со школьниками в области информатики. Опыт Сибирского отделения АН СССР. – Математика в школе, 1981, № 1, с. 47-50.

8. Ershov A.P., Pervin Y.A., Yunerman N.A., Zvenigorodski G.A. Computers in school: formulating a national program. – Alberta printout, 1983, v. 4, № 2, p. 34-37.

9. Левин Д. Я. Язык сверхвысокого уровня СЕТЛ и его реализация (для ЭВМ БЭСМ-6). – Новосибирск: Наука, 1983. – 160 с.

10. Баяковский Ю.М., Вьюкова Н.И., Галатенко В.А., Ходулев А.Б. Программирование на языке ПОПЛАН. – М.: ИПМ АН СССР, 1976. – 76 с.

11. Paper S. Mindstorms (children, computers, and powerful ideas) – Brighton: The Harvester Press Ltd, 1980. – 230 p.

12. Goldberg A., Robson D. SmalltalK-80. The language and its implementation. – Addison-Wesley Publ. Corp., 1983. – 718 p.

13. Звенигородский Г.А. Система математического обеспечения, ориентированная на школьный учебный процесс. – УСИМ, 1980, № 5, с. 76-82.

14. Звенигородский Г. А. Язык начального обучения Робик в учебной системе программирования. – В кн.: Программное обеспечение задач информатики. – Новосибирск, 1982, с. 72-85.

15. Звенигородский Г.А., Салихова А.К., Цикоза В.А. Машинная графика в математическом обеспечении учебного процесса. – В кн.: Прикладные методы информатики. – Новосибирск, 1980, с. 121-133.

16. Звягина Н.И., Терехов А.Н. Реализация диалогового учебного языка Рапира на ЕС ЭВМ. – В кн.: Системное и теоретическое программирование: Тез. докл. IV Всесоюз. симп. (31 мая – 2 июня 1983 г.), – Кишинев: Штиинца, 1983, с. 168-169.

Статья поступила 13 декабря 1983 г.

УДК 681.322.1

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *