Что такое программа рапира

РАПИРА — Расширенный Адаптированный Поплан-Интерпретатор, Редактор, Архив — процедурный язык программирования. Разработан в начале 1980-х годов в СССР в качестве средства перехода от более простых языков (в частности, учебного языка Робик) к языкам высокого уровня. Синтаксис построен на основе русской лексики. Язык использовался в школах для изучения информатики. Преподавание на Рапире велось в «Заочной школе программирования» в журнале «Квант» с начала 1980 года.

Как видно из расшифровки названия языка, язык РАПИРА изначально был реализован как набор макрорасширений на базе языка ПОПЛАН — интерпретатора языка POP-2 (англ.) русск. для БЭСМ-6. Некоторые синтаксические конструкции были перенесены из языка Сетл.

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

Шпага и рапира. Есть ли разница?

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

Взгляд на язык

Идентификаторы могут использовать буквы как латиницы так и кириллицы, цифры и символ подчеркивания. Язык является регистро-независимым.

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

ВОЗВРАТ ИНАЧЕ ПРОЦ ВСЕ КНЦ ФУН ДО ОТ ШАГ ЕСЛИ ПОВТОР
ПРОЦ СТАРТ(); ВЫВОД: «ЗДРАВСТВУЙ, МИР!»; КНЦ;

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

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

Клим Жуков. Рапира и шпага. Спор двух клинков.

«Школьница»

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

Язык Рапира являлся частью системы программ «Школьница», разработанных для поддержки учебного процесса на базе ПЭВМ Агат. В систему «Школьница» входили программы: [1]

  • Интерпретатор языка Робик
  • Интерпретатор языка Рапира
  • Редактор текстов программ
  • Графическая система «Шпага»
  • Набор общеупотребимых математических функций
  • Отладчик программ в машинном коде
  • Набор примеров учебных программ по различным школьным дисциплинам

Литература и публикации

  • Г. А. Звенигородский. Основные операторы учебно-производственного языка Рапира. — Квант, 1980, № 1, с.52-55.
  • Г. А. Звенигородский. Описание и вызов процедур на Рапире. — Квант, 1980, № 2, с.53-55.
  • Г. А. Звенигородский. Функции, графики, локальные имена и тексты на Рапире. — Квант, 1980, № 3, с.48-51.
  • Г. А. Звенигородский. Множества и кортежи на Рапире. — Квант, 1980, № 3, с.51-56.

Источник: www.wikiznanie.ru

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

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

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

▍ Робик

Этот язык со смешным названием придумали в 1975 году основоположник советской школьной информатики Г.А. Звенигородский и академик А.П. Ершов для обучения основам программирования детей в возрасте 8—11 лет. «Робик» использовался в Харьковской «Школе юных программистов», занятия в которой проводил сам Геннадий Анатольевич Звенигородский. В 1977 году разработчик языка перебрался в Новосибирск, где устроился на работу в Вычислительный центр Сибирского отделения АН СССР, после чего уроки для юных программистов продолжились уже в этом городе в формате воскресной школы и летних образовательных лагерей.

Читайте также:
Не могу обновить программу через айтюнс

Позже «Робик» был переработан и включён в состав пакета образовательных программ «Школьница» для ПК «Агат», которыми тогда оснащались многие компьютерные классы в советских учебных заведениях. Предполагалось, что после изучения «Робика» дети смогут перейти на более сложный учебно-производственный язык «РАПИРА». Полноценных изданий по «Робику», к сожалению, не сохранилось (возможно, я просто не смог их найти), зато до нас дошли документы из архива академика Ершова, в которых встречается довольно лаконичное описание этого языка.

В основе синтаксиса «Робика» лежит русский язык, хотя авторы утверждали, что относительно несложно переработать «Робик» для использования других языков народов СССР. Набор базовых конструкций «Робика» был весьма ограничен, однако его возможности значительно расширялись за счёт так называемых «исполнителей» — объектов, выполняющих задаваемые программистом команды. Каждый исполнитель действовал в определённой для него среде, состоящей, в свою очередь, из элементов, которые могут находиться в разных состояниях. Для каждого исполнителя существует свой набор предписаний (команд).

Исполнители обладали собственными блоками памяти, в которые записывалась информация о состоянии элементов среды и результаты действий, выполненных самим исполнителем — например, процедур и подпрограмм. В наборе программ «Школьница» присутствовал стандартный набор исполнителей — для базовых арифметических операций, рисования на экране, управления внешними устройствами.

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

ВКЛЮЧИТЬ ОБХОДЧИК:МИША;

Эта команда запускала экземпляр исполнителя «ОБХОДЧИК», которому присваивалось уникальное имя «МИША». Соответственно, завершалась программа командой ВЫКЛЮЧИТЬ. Кстати, «ОБХОДЧИК» — это стандартный исполнитель из комплекта программ «Школьница», предназначенный для решения простых математических задач. Среда «ОБХОДЧИКА» представляет собой железнодорожную ветку определённой длины, состоящую из некоторого количества стыков. «ОБХОДЧИК» может двигаться по этой железной дороге вперёд или назад, если путь перед следующим шагом свободен (там есть рельсы), и проверять стыки.

Как работает этот исполнитель, можно понять на примере простой математической задачи. Имеется прямая железнодорожная ветка неизвестной длины, состоящая из некоторого количества стыков. Расстояние между стыками составляет 24 метра. «ОБХОДЧИК» стоит в начале этой железнодорожной ветки. Требуется проверить все стыки, найти неисправные, а затем вернуть «ОБХОДЧИКА» в начало ветки. Программа на языке «Робик» для решения этой задачи выглядит следующим образом:

ВКЛЮЧИТЬ ОБХОДЧИК; ЗАПОМНИТЬ ПРОЦЕДУРУ ПРОВЕРКА_СТЫКА; ЕСЛИ ОБХОДЧИК.СТЫК = “НЕИСПРАВЕН” ТО ОТМЕНИТЬ СТЫК; ВПЕРЕД 24М; ЗАКОНЧИТЬ; ПОКА ОБХОДЧИК.ВПЕРЕДИ = “СВОБОДНО“ ПОВТОРЯТЬ ПРОВЕРКА_СТЫКА; ПОКА ОБХОДЧИК.СЗАДИ = “СВОБОДНО“ ПОВТОРЯТЬ НАЗАД 24М; ВЫКЛЮЧИТЬ ОБХОДЧИК;

Результат выполнения этой программы будет наглядно продемонстрирован на дисплее «Агата»: пользователь увидит и железнодорожную ветку (пунктирную линию), и движущегося по ней «обходчика», и счётчик неисправных стыков. Именно поэтому результат работы этой программы, например, количество выявленных дефектов и пройденное расстояние, не сохраняются в переменные и никуда не выводятся. Эти значения записываются в память внутри самого исполнителя, инициализируются автоматически и обнуляются при выключении экземпляра исполнителя — что значительно упрощает процесс программирования для детей. Им уже не нужно думать об объявлении переменных, об их типах, а вместо этого можно сосредоточиться на решении самой практической задачи.

Как видно из этого примера, «Робик» — довольно простой алгоритмический язык, позволяющий составлять программы из набора команд, которые способен обработать каждый исполнитель. Расширение возможностей языка происходит за счёт добавления новых исполнителей, для каждого из которых можно придумать свой набор команд и, соответственно, свои интересные логические или математические задачи. Причем исполнителей для «Робика» можно писать на самом «Робике». Программы на этом языке могут содержать ветвления по условию и циклы, могут обрабатывать вводимые пользователем значения с клавиатуры компьютера, а результаты работы — выводить на экран, сохранять на магнитном носителе или распечатывать на АЦПУ (алфавитно-цифровом печатающем устройстве, заграничное слово «принтер» в те времена еще не вошло в обиход).

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

▍РАПИРА

«Расширенный адаптированный поплан-интерпретатор, редактор, архив», или, сокращенно, РАПИРА — еще один язык для обучения школьников основам программирования. Он был предназначен для перехода от простого «Робика» к более сложным языкам высокого уровня, базировался на синтаксисе Поплан и Сетл, и тоже использовал для записи команд кириллицу (хотя существовала и английская версия языка).

Созданием РАПИРА в 1978-1979 годах занимались выпускники Новосибирского государственного университета под руководством автора «Робика» Геннадия Звенигородского. Изначально разработка велась на БЭСМ-6, но позже язык был адаптирован для ПК «Агат» и вошел в состав пакета образовательных программ «Школьница» — вместе с редактором кода. Чуть позже появились версии РАПИРА для Yamaha MSX/MSX2 и ЕС ЭВМ на базе советских клонов процессоров с архитектурой x86 — специально под стандартные КУВТ (комплексы учебной вычислительной техники), которыми оборудовались советские классы информатики.

Читайте также:
Программа для настройки турбобуста

Между «Робиком» и РАПИРА было много общего — например, язык являлся регистронезависимым, допускалось произвольное расположение директив в строке. Переменные не требовалось объявлять заранее и указывать их тип: каждая переменная считалась объявленной в момент ее первого использования, а тип автоматически присваивался в зависимости от ее текущего значения. Уже инициализированной переменной можно присваивать значения типов, отличающихся от первоначально присвоенного. РАПИРА поддерживала высокоуровневые типы данных — кортежи и множества, — и на этом языке уже можно было писать полноценные программы, не зависящие от возможностей принятых в «Робике» исполнителей. Вот, например, как на РАПИРА выглядит классический «hello, world» в виде программной процедуры:

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

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

Язык РАПИРА допускал ветвления, проверки условий и циклы, причем в языке существовало четыре разновидности циклов с разными условиями выхода из них. В качестве оператора присваивания использовалось сочетание символов «->», причем слева от него записывалось присваиваемое значение, а справа — имя переменной, которой это значение присваивалось. Например, код, который сравнивает значения переменных «А» и «В», присваивает большей переменной значение 1, а затем выводит на экран значение меньшей переменной, в РАПИРА выглядит так:

ЕСЛИ А > В ТО 1 -> А; ВЫВОД: В; ИНАЧЕ 1 -> В; ВЫВОД: А; ВСЕ;

Благодаря простоте синтаксиса язык РАПИРА быстро завоевал определённую популярность в Советском Союзе. Его использовали авторы рубрики «Заочная школа программирования», регулярно публиковавшейся в журнале «Квант» начиная с 1980 года.

Вообще, образовательный проект, в рамках которого разрабатывался пакет программ «Школьница», был глобальным — он охватывал не только весь СССР вместе с союзными республиками, но и страны СЭВ. Создатели проекта планировали внедрить единый стандарт изучения информатики и программирования для детей разного возраста и разных народов — именно поэтому существовала версия РАПИРА на основе латиницы, велись работы по созданию версий языка с синтаксисом на эстонском и грузинском языках. В школах, оборудованных КУВТ на основе ПК «Агат», РАПИРА успешно использовалась для обучения старшеклассников вплоть до конца 80-х, а кое-где — до начала 90-х, когда классы информатики стали оснащать более современными IBM-совместимыми компьютерами.

▍Язык РАЯ (учебный алгоритмический язык)

Ходят легенды, будто Русский Алгоритмический Язык (язык РАЯ) стал своего рода симметричным ответом на буржуазный язык программирования Ада, названный так в честь Ады Лавлейс, хотя политика и теология тут совершенно ни при чем. Гораздо чаще его называли «школьным алгоритмическим языком» или «учебным алгоритмическим языком» — под этим наименованием он и вошел в официальную документацию, просто аббревиатура «РАЯ» звучала чуть благозвучнее.

Учебный алгоритмический язык — это абстрактный язык для изучения программных алгоритмов в рамках школьной программы, в отличие от «Робика» и РАПИРА, не привязанный к какой-либо конкретной аппаратной архитектуре или модели компьютера. Этот язык был придуман и внедрен в конце 70-х годов соавтором «Робика» академиком А.П.

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

Учебный алгоритмический язык также использовал для записи команд кириллицу, а синтаксис А.П. Ершов частично позаимствовал из Алгола. До середины 80-х язык применялся в основном для обучения детей в рамках внешкольных программ образования, но после всех бюрократических согласований и утверждений в 1985 году был принят в качестве основного языка в школьном учебнике «Основы информатики и вычислительной техники». Таковым он и оставался в течение последующих лет вплоть до конца существования СССР: последний школьный учебник на основе этого языка был выпущен в 1990 году общим тиражом 7 млн. экземпляров.

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

Читайте также:
Можно ли подавать документы на две программы

алг Сумма квадратов (арг цел n, рез цел S) дано | n > 0 надо | S = 1*1 + 2*2 + 3*3 + … + n*n нач цел i | ввод n; S:=0 | нц для i от 1 до n | | S := S + i * i | кц | вывод «S plaintext»>| выбор параметр | | при знач значение 1 | | | действия 1 | | при знач значение 2 | | | действия 2 | | иначе | | | действия по умолчанию | кон

Этот язык, пожалуй, уникален тем, что был изначально разработан для «программирования в тетрадке». Однако в 1985 году группа студентов, аспирантов и преподавателей мехмата МГУ разработала редактор-компилятор «Е-практикум» («Е» — в честь А.П. Ершова), позволявший набирать и компилировать программы на РАЯ. Это вдохнуло в учебный алгоритмический язык вторую жизнь — теперь его можно было назвать полноценным языком программирования.

▍Вместо заключения

Казалось бы, советские технологии образования и учебные языки программирования давно ушли в прошлое: их сменил Бейсик, который в последние годы потеснили Scratch и Python — именно их изучением чаще всего занимаются школьники на уроках информатики. Но в начале 90-х Научно-исследовательский институт системных исследований РАН представил собственную разработку: язык и систему программирования для поддержки начальных курсов информатики «КуМир» (Комплект Учебных Миров). Примечательно, что «КуМир» основывается на учебном алгоритмическом языке А.П. Ершова — том самом РАЯ — и включает ряд идей, воплощенных ранее в проекте «Е-практикум». Вторую версию «КуМир» разработчики выпустили в 2018 году, причем версии редактора этого языка, распространяемого под лицензией GNU GPL 2.0, есть как для Windows так и для Linux.

«КуМир» был рекомендован Министерством образования РФ в качестве основного учебного материала по курсу «Основы информатики и вычислительной техники», и в настоящее время активно развивается. Так идеи, заложенные академиком А.П. Ершовым и его коллегами еще в начале 80-х, находят свое применение уже в XXI веке.

RUVDS | Community в telegram и уютный чат

  • история it
  • программирование
  • ссср
  • ruvds_статьи
  • языки программирования
  • алгоритмы
  • алгоритмические языки

Источник: habr.com

На каком языке кодили советские школьники 80-х: история языка Рапира

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

Возможно, из уроков информатики вы помните BASIC, Pascal или даже Algol, но вряд ли кто-то припомнит советский язык Рапира. Вместе с другим языком Робик он входил в пакет программ «Школьница» — главный «учебник» программирования в советских школах середины 1980-х.

Геннадий Звенигородский, создатель Рапиры. Источник фото: «Википедия»

Один из главных создателей языка — Геннадий Звенигородский — был отцом советской учебной информатики. Родился в Харькове, там же увлёкся кодом, а в 25 лет оказался в Новосибирске, где начал работать в вычислительном центре.

Шёл 1977-й. К этому моменту уже несколько лет существовал разработанный Звенигородским язык Робик для обучения основам программирования школьников начальных классов. Назрела потребность создать новый язык, который стал бы переходным — от базы к языкам более высокого уровня.

В период с 1978 по 1979 год появилась Рапира. Она работала на базе языков SETL и Поплан и изначально запускалась на советском суперкомпьютере БЭСМ-6.

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

Суперкомпьютер БЭСМ-6. Источник фото: «Википедия»

В начале 1980-х Рапиру перенесли на ПК «Агат». Так началась популяризация языка в школах — персональный компьютер «Агат» производился серийно, не занимал целую комнату и стоил относительно недорого.

Советский ПК «Агат» выпускался аж до 1993 года. Источник фото: «Википедия»

Рапира вместе с языком Рубик вошла в пакет программ «Школьница» — это были основные «учебники» по коду в советских школах в середине 1980-х. Геннадий Звенигородский исходил из своего практического опыта и считал, что школьники должны самостоятельно разрабатывать ПО для обучения, обмениваться опытом и тем самым расти как программисты. Он же приложил руку к созданию летних школ юных программистов, которые появились в новосибирском Академгородке в 1976 году и действуют до сих пор.

К сожалению, Рапира не стала популярной и вскоре исчезла. В 1984 году умер Звенигородский — буквально за несколько недель до защиты диссертации, посвящённой достижениям в преподавании школьной информатики. А потом школы постепенно начали переходить на BASIC и другие заграничные языки.

Проблема в популяризации Рапиры, как и Рефала и Эль-76 , оказалась в ограниченных ресурсах по распространению: СССР свою технику практически не экспортировал, её едва хватало для внутреннего потребления.

Чтобы не пропустить другие материалы о программировании, об истории IT и искусственном интеллекте, подпишитесь на канал. Ставьте лайки, чтобы видеть больше таких статей у себя в ленте. Если вы хотите, чтобы мы написали о каком-то факте или технологии, предложите свою тему в комментариях к этой или другим статьям.

#люди_и_код #язык_программирования #it #история_it #программирование

Источник: dzen.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru