Исследование социальной истории отечетсвенной информатики: Сибирская школа программирования
Новосибирская школа программирования. Перекличка времен.

Исследование социальной истории отечетсвенной информатики: Сибирская школа программирования

Сибирская школа программирования имеет широкую мировую известность. В данной работе рассматриваются работы, связанные с проектом АИСТ-0 и ранние работы по символьным и аналитическим преобразованиям.

ПРЕДИСЛОВИЕ

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

1. ВВЕДЕНИЕ

«Любовь к отеческим гробам»
А.С.Пушкин

Сибирская школа программирования имеет широкую мировую известность. В данной работе рассматриваются работы по символьным и аналитическим преобразованиям, проводимые в СО АН СССР с 1965 по 1975 годах, и работы, связанные с проектом АИСТ-0. В 1966 г. выдающийся ученый Андрей Петрович Ершов в рамках отдела программирования и конструкторского бюро системного программирования начал работы по созданию автоматических информационных станций АИСТ. Первой частью этого проекта была разработка системы разделения времени АИСТ-0. Такие свойства системы, как разделение в процессах комплекса управления и обработки, иерархичность строения программного обеспечения, выделения ядра операционной системы, естественное сочетание режимов взаимодействия, обеспечили должную эффективность системы АИСТ-0.

2. Проект АИСТ-0

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

В состав системных программ АИСТ-0 входила и системная программа аналитических преобразований АНАЛИТИК.

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

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

Необходимость в вычислительных задачах часто выполнять аналитическое дифференцирование привело к созданию препроцессоров, которые выполняют перевод с расширенного языка программирования, допускающего дополнительную операцию дифференцирования на язык описания вычислительных алгоритмов. Одним из таких дифпроцессоров был ДИФПРОЦЕССОР, предназначенный для работы вместе с системой АЛЬФА. ДИФФПРОЦЕССОР, помимо дифференцирования и подстановки, давал возможность выполнять приведение подобных, сокращение дробей и снятие лишних скобок в операциях одного порядка старшинства.

Система АНАЛИТИК разрабатывалась как системная программа для системы коллективного пользования АИСТ-0. Она предназначалась только для выполнения аналитических преобразований в режиме диалога. Основными объектами как входного, так и выходного языка являлись формулы и функции. Набор операторов языка позволял выполнять такие действия, как подстановку выражения вместо переменной, замену подвыражения на выражение (в том числе и функциональную замену), упрощение и аналитическое дифференцирование. Упрощение включало в себя приведение подобных, сокращение дроби, вынесение за скобки общего множителя и выполнение некоторых других действий. Кроме того, операторы языка позволяли создавать и использовать индивидуальный архив.

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

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

В системе АНАЛИТИК преобразования проводились над выражениями, представленными схемами Канторовича. Схемы были определены и рассмотрены Л.В. Канторовичем в 1957г. [4] и в последующем достаточно широко использовались многими исследователями. Можно отметить три витка использования схем для систем компьютерной алгебры. Первый виток охватил использование схем еще на ламповых ЭВМ. Вторым витком явилось широкое использование схем для проведения аналитических вычислений на ЭВМ среднего поколения. И наконец, на третьем витке схемы продолжают использоваться при построении СКА на современным ЭВМ.

Для ряда задач из теории дифференциальных уравнений были разработаны специальные процессоры КИНО и ПАССИВ. Процессор КИНО выполнял построение определяющих уравнений по заданной системе дифференциальных уравнений, а процессор ПАССИВ приводил уравнения к пассивной форме, т.е. проверял условия совместности.

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

ЗАКЛЮЧЕНИЕ

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

Работа поддержана грантом РГНФ 00-03-00277.

Литература

  1. Ершов А.П., Вишневский Ю.Л., Кожухин Г.И., Макаров Г.П. Экспериментальная система коллективного пользования АИСТ-0 // Тр. 2-й Всесоюз. конф. по программированию: Заседание Н. — Новосибирск: ВЦ СОАН СССР, 1970. — с .3–14.
  2. Бежанова М.М., Катков В.Л., Поттосин И.В. Работы по аналитическим преобразованиям в ВЦ СОАН СССР // Вычислительная математика и вычислительная техника. Вып. 3. — Харьков, 1972. — с .18–20.
  3. Калинина Н.А. Системная программа АНАЛИТИК. Работы по аналитическим преобразованиям в ВЦ СОАН СССР // Там же. — с .33–37.
  4. Канторович Л.В. Об одной математической символике, удобной для проведения вычислений на машине // Докл. АН СССР. — 1957. — т . 113. — № 4.

Следующая статья сборника

Из сборника "Новосибирская школа программирования. Перекличка времен". Новосибирск, 2004 г.
Перепечатываются с разрешения редакции.