Рапира (язык программирования)

Перейти к навигацииПерейти к поиску
Рапира
Класс языкаязык программирования
Появился в1982

Рапира (акроним от расширенный адаптированный поплан-интерпретатор, редактор, архив[1]) — учебно-производственный[2] процедурный язык программирования, разработанный в 1978—1979 годах[3] в СССР в качестве средства перехода от более простых языков (в частности, учебного языка Робик) к языкам высокого уровня, а также как производственный язык программирования. Синтаксис построен на основе русской лексики. Язык использовался в школах для изучения информатики; преподавание на Рапире велось в «Заочной школе программирования» в журнале «Квант» с начала 1980 года.

Язык построен на основе объединения возможностей языков Сетл и Поплан[4]. Изначально был сделан как набор макрорасширений на основе языка Поплан — интерпретатора языка POP-2[англ.] для БЭСМ-6.

Был реализован для БЭСМ-6, а затем для первой советской ПЭВМ «Агат» в начале 1980-х годов силами нескольких студентов и выпускников Новосибирского государственного университета под руководством Геннадия Звенигородского при участии школьников, в том числе на Всесоюзных летних школах юных программистов (ВЛШЮП, 1982). По своим возможностям язык не уступал другим известным на то время учебным языкам.

Существовали также реализации языка для КУВТ УКНЦ и Ямаха КУВТ, а также для ЕС ЭВМ (1982; руководитель разработки на Алголе-68 — профессор Терехов).

Синтаксис

Имена должны начинаться с буквы, и могут включать буквы кириллицы и латиницы, цифры и знак подчёркивания. Язык является регистро-независимым. Длина имени может быть произвольной, но учитываются только первые шесть знаков, остальные знаки пренебрегаются.[2]

Ключевые (зарезервированные) слова:

ВОЗВРАТ   ИНАЧЕ     ПРОЦ
ВСЕ       КНЦ       ФУН
ДО        ОТ        ШАГ
ЕСЛИ      ПОВТОР

Пример программы «Здравствуй, мир!»:

ПРОЦ СТАРТ();
    ВЫВОД: "ЗДРАВСТВУЙ, МИР!";
КНЦ;

В первоначальной версии языка оператор присваивания обозначался сочетанием знаков ->, и порядок операндов в нём был противоположен привычному для большинства языков: слева записывалось вычисляемое выражение, а справа — имя переменной, которой присваивался результат вычисления. Такая форма оператора присваивания была сочтена более логичной, поскольку она лучше соответствует семантике операции: сначала вычисляется выражение, и лишь затем результат записывается в переменную. Однако впоследствии присваивание заменили на «классическое» :=, заимствованное из Алгола и принятое во многих ЯВУ, в том числе и в РАЯ, и вычисляемое справа налево — сначала вычисляется выражение, записанное справа от знака присваивания, а затем оно присваивается переменной, имя которой записано слева от этого знака.

Язык Рапира унаследовал многие особенности языков Поплан и Сетл[4]. Так, например, в языке Рапира используются необъявляемые бестиповые переменные (переменная считается объявленной при первом использовании, тип переменной определяется типом присвоенного выражения, инициализированной переменной можно присваивать значения типов, отличающихся от первоначально присвоенного), поддерживаются высокоуровневые составные типы данных — кортежи и множества (последние являются частным случаем кортежа).

Кортеж в Рапире, фактически — гетерогенный динамический массив, для него на уровне языка поддерживаются операции объединения, взятия по индексу, сравнения, получения размера и извлечения части.

Школьница

Фрагмент программы на РАПИРА на ПЭВМ «Агат»

Язык являлся частью пакета программ «Школьница», разработанного в соответствии с Генеральным соглашением стран-членов СЭВ о сотрудничестве по развитию и широкому использованию в народном хозяйстве микропроцессорной техники[5]. Пакет «Школьница» был создан для обеспечения кабинетов информатики общеобразовательных школ современной системой математического обеспечения, позволяющей полностью использовать возможности вычислительной техники для совершенствования учебного процесса по различным школьным предметам и для обучения основам программирования. Пакет создавался для использования на ПЭВМ Агат и программно-совместимых с ней ЭВМ (например, ИМКО). Наряду с интерпретатором Рапиры в системе были интерпретатор языка «Робик», редактор текстов программ, графическая система «Шпага», набор общеупотребимых математических функций, отладчик программ в машинном коде а также набор примеров учебных программ по различным школьным дисциплинам[6].

Примечания

  1. Математический энциклопедический словарь / Гл. ред. Ю.В. Прохоров. — М.: Советская энциклопедия, 1988. — С. 838.
  2. 1 2 Журнал "Квант". kvant.mccme.ru. Дата обращения: 24 января 2024. Архивировано 15 марта 2024 года.
  3. Пакет прикладных программ автоматизации школьного учебного процесса (Школьница). Рапира. Описание языка С. 4. Академия Наук СССР. Ордена Ленина Сибирское отделение. Вычислительный центр (1985). Дата обращения: 24 июля 2021. Архивировано 24 июля 2021 года.
  4. 1 2 Ершов А.П., Звенигородский Г.А., Первин Ю.А. Школьная информатика (концепция, состояние, перспективы). — Н.: ВЦ СО РАН, 1979. — С. 36. Архивировано 24 июля 2021 года.
  5. Техническое задание на разработку пакета прикладных программ для типовых учебных кабинетов (Школьница). (1983). Дата обращения: 24 июля 2021. Архивировано 24 июля 2021 года.
  6. Звенигородский Г.А., Цикоза В.А. Система "Школьница". Инструкция пользователя (1985). Дата обращения: 24 июля 2021. Архивировано 24 июля 2021 года.

Литература

  • Алгоритмический язык. Язык программирования рапира: методич. указ. Ч. 2 / Фрейвалд Р. В., Тайминя Д. Я., Аузиньш А. И. и др. Рига : ВЦ ЛатГУ им. П. Стучки, 1986.
  • Звенигородский Г. А. Основные операторы учебно-производственного языка Рапира. — Квант, 1980, № 1, с. 52—55.
  • Звенигородский Г. А. Описание и вызов процедур на Рапире. — Квант, 1980, № 2, с. 53—55.
  • Звенигородский Г. А. Функции, графики, локальные имена и тексты на Рапире. — Квант, 1980, № 3, с. 48—51.
  • Звенигородский Г. А. Множества и кортежи на Рапире. — Квант, 1980, № 3, с. 51—56.
  • Язык программирования Рапира / Бараз Л. С., Боровиков Е. В., Глаголева Н. Г. и др. (Препринт / АН СССР. Сиб. отд-е. ВЦ, № 767). Новосибирск : ВЦ СО АН СССР, 1987. На англ. яз.: The Rapira programming language / Baraz L. S., Borovikov E. V., Glagoleva N. G. et al (Preprint / Siberian div. of the USSR Acad. of sciences, Inst. of informatics systems, № 4). Novosibirsk : Inst. of informatics systems, 1990.

Ссылки