Файл: История развития программирования в России (Институт прикладной математики РАН).pdf
Добавлен: 30.03.2023
Просмотров: 61
Скачиваний: 2
ВВЕДЕНИЕ
Актуальность исследования. Исследования по языкам программирования и трансляции всегда составляли неотъемлемую часть всех исследований по программированию практически с самого начала возникновения этой дисциплины. Они остаются и сейчас заметной частью общих исследований, хотя появление новых областей и интересов несколько потеснили их. Было бы естественно бросить взгляд на состояние отечественных работ в этом направлении.
Традиционно в России существовало значительное число групп, активно занимавшихся исследованиями и разработками в области трансляции. Эти группы функционировали в академических институтах (Институт прикладной математики АН СССР, Вычислительный центр АН СССР, Вычислительный центр СО АН СССР, Институт точной механики и вычислительной техники АН СССР и др.), в вузах (Московский, Ленинградский, Ростовский университеты и др.), а также в ряде промышленных исследовательских институтов. Необходимость создания широкого спектра трансляторов для разнообразной отечественной техники (а подавляющее большинство используемых средств вычислительной техники было отечественным) стимулировало как фундаментальные исследования, так и экспериментальные разработки в этой области. Несколько влияла и определенная закрытость советского общества, которая сказывалась и в ограниченности научных связей, и в затрудненности развитой кооперации с зарубежными исследованиями, и естественном и широком врастании в международный научный поток. В результате приходилось в большей мере рассчитывать только на собственные силы, дублировать исследования, искать собственные пути, не всегда оправданные. Отсюда и другой эффект --- из-за ориентации на внутреннего читателя большинство научных публикаций выходило на русском языке, и многие интересные результаты оставались не известными международному сообществу.
В последние годы число групп и интенсивность работ заметно уменьшились. Отчасти это естественный процесс - наличие на международном рынке большого числа приемлемых трансляторов для используемой вычислительной техники (а зарубежная техника, может быть, не в лучших ее вариантах, доступна отечественному пользователю и доминирует на отечественном рынке) снизило интерес потребителя к новым разработкам по системам программирования и сместило его к различным прикладным и проблемно-ориентированным системам. Сказались также кризис отечественной промышленности в области вычислительной техники и серьезное сокращение государственного финансирования исследований (а других источников финансирования науки в стране пока, по существу, нет).
Врастание российских исследований по трансляции в мировой процесс также идет непросто. Политические ограничения в значительной мере заменились финансовыми. Поддержание необходимых постоянных контактов, требует пусть небольших, но зачастую непосильных затрат. Сказываются и определенные последствия былой замкнутости. Даже внутрироссийские связи и контакты заметно ухудшились из-за финансовых проблем.
Объектом исследования являются технологии программирования.
Предметом исследования выступают научный и учебный материал, характеризующий историю развития программирования в России.
Для написания данной работы была поставлена цель: на основе анализа учебных пособий и научных трудов по выбранной теме, а также практических материалов подробно рассмотреть историю развития программирования в России.
Для достижения поставленной цели необходимо решить следующие задачи:
- рассмотреть вклад в историю программирования Института прикладной математики РАН ;
- рассмотреть вклад в историю программирования Отдела систем программного обеспечения Вычислительного центра РАН;
- рассмотреть вклад в историю программирования Института проблем кибернетики РАН;
- рассмотреть вклад в историю программирования вычислительного центр СО РАН;
- рассмотреть вклад в историю программирования Института точной механики и вычислительной техники РАН;
- рассмотреть вклад в историю программирования Лаборатории системного программирования Института математики и механики Санкт-Петербургского университета.
Методологические основы исследования составляют фундаментальные концепции и парадигмы, а также общенаучные: метод индукции и дедукции, метод сравнений и аналогий, метод системного анализа, метод обобщений, метод исторического подхода, сравнительно-правовой и формально-юридический методы.
Структура работы состоит из введения, шести глав, заключения и списка использованной литературы.
1. Институт прикладной математики РАН
Одним из ведущих российских центров по работам и исследованиям в области языков и трансляции является Институт прикладной математики РАН, где был создан один из первых советских трансляторов. Существенная часть широко использовавшихся советских трансляторов - для Алгола 60, Фортрана - также разработана в этом институте. Ряд научных групп института внесли большой вклад в становление советских исследований в области языков и трансляции.
Работа этого коллектива, руководимого И. Б. Задыхайло и В. А. Крюковым, связана с созданием системного программного обеспечения для специальных ЭВМ и больших проектов, в частности, в области космоса, атомной промышленности и нефтегазоразведки. Коллективом разработаны распределенные операционные системы для специальных применений, бортовая операционная система для космического корабля «Буран» и т.п. Работы по трансляции были подчинены указанным направлениям - создан транслятор для Симулы 67, транслятор для расширения Фортрана применительно к параллельным и векторным вычислениям с векторизатором и пр.
Коллектив включает около 60 исследователей и программистов, в проектах участвуют студенты Московского университета.
В данное время в коллективе существует проект, объединяющий три направления:
- разработка операционных систем для мультипроцессорных ЭВМ с распределенной памятью;
- разработка трансляторов для ряда языков и окружения программирования для них, предназначенных для использования в мультипроцессорных ЭВМ;
- создание окружения для проектирования систем реального времени.
Работы по трансляции ведутся в контексте всего проекта. Наиболее существенная их часть включена в работы по окружению для разработки переносимых параллельных программ - системе RAMPA, предназначенной для MIMD-компьютеров с распределенной памятью.
Система RAMPA [2] должна интегрировать три различных подхода к языкам программирования для распределенных и параллельных систем, а именно:
- языки параллельного программирования для распределенных систем, основанные на коммуникации с посылкой сообщений;
- расширения последовательных языков, связанные с разделением вычислений между процессорами в виде специальных комментариев;
- декларативные языки спецификаций.
Для первых двух целей разработано два расширения Fortran 77 - Fortran GNS и Fortran DMV соответственно.
Fortran GNS использует существовавшую ранее идею абстрактной GENESIS-машины, в которой задача распадается на множество подзадач, динамически создающихся на процессорах распределенной системы. Коммуникации между ними осуществляются с помощью посылки и приема сообщений разного типа. Подзадачи имеют только локальные данные, общие данные погружаются в общую файловую систему. Абстрактная GENESIS-машина реализована как совокупность процедур (для нескольких архитектур), поэтому есть возможность задать прямо в Fortran 77-программе распределенные вычисления. Программа на Fortran GNS (дополнительно к Fortran 77) содержит описание конфигурации и операции сообщения (трех типов). Первая версия транслятора с Fortran GNS реализована на IBM PC.
Fortran DVM (Distributed Virtual Memory) основан на паралллелизации путем отображения данных на распределенную память и на управлении доступом к виртуальной памяти. Ряд средств языка аналогичен средствам Fortran D и HPF (High Performance Fortran). Кроме того, язык содержит средства для балансировки загрузки процессоров (можно определять группы процессоров и учитывать их специфику) и средства для оптимизации межпроцессорной коммуникации (определение оптимальных путей, буферизации и пр.).
Применительно к вычислительным задачам математической физики и аналогичным проблемам (особенно к сеточным методам) разработан декларативный язык спецификаций Норма, в котором задача описывается совокупностью вычислительных формул и условий на индексы, т.е. в привычной для проблемного специалиста форме. Сам вычислительный алгоритм синтезируется автоматически по этому описанию, причем в процессе синтеза может быть оптимально приспособлен к конкретной архитектуре. Ранее была создана экспериментальная версия транслятора с языка Норма в последовательный Fortran 77 и векторно-параллельный Fortran VP. Сейчас ведется разработка транслятора для MIMD-машин с распределенной памятью.
Для системы RAMPA разрабатываются также отладочные и мониторные средства, в частности, с моделированием многопроцессорных архитектур на инструментальной ЭВМ.
В рамках общего проекта ведутся также работы по созданию транслятора с расширенного Фортрана (Extended Fortran) для российского суперкомпьютера ES-1191 (4 скалярных, вeкторный и управляющий процессоры) и трансляторы для Модула-2 и Си на транспьютероподобные RISC-процессоры.
Интересной особенностью значительного числа разработок, ведущихся в этом коллективе, является то, что в качестве инструмента создания транслятора используется язык Рефал.
Рефал - давний язык (к сожалению, пока слабо распространенный), предложенный В. Ф. Турчиным, - предназначен для обработки символьной информации, его концептуальной логической моделью являются нормальные алгорифмы Маркова. Рефал-программа есть совокупность фраз, каждая из которых содержит образец (типовое выражение, используемое для наложения на объектное выражение) и «правила преобразования», тем самым представляет собой своеобразное правило переписывания термов. Семантика языка фиксирует стратегию преобразования.
В институте существует небольшой коллектив (около 5 исследователей) под руководством С. А. Романенко, который занят проблемами, связанными с Рефалом. В группе разработан транслятор для Рефала, показавший свои неплохие качества для реализации трансляторов и других подобных систем. Как принято для ряда декларативных языков, транслятор переводит Рефал-программу в код абстрактной Рефал-машины с соответствующей организацией памяти (в виде двусвязных списков). Реализация Рефал носит полупромышленный характер. В группе ведутся также работы по преобразованию Рефал-программ, в частности, создан смешанный вычислитель для Рефала.
В этом же институте существует небольшая группа (руководитель В. М. Михелев), которая занята исследованием метасредств построения языковых процессоров (т. е. любых процессоров, входная информация для которых определяется грамматическими правилами), основанных на методах объектно-ориентированного программирования. Создан язык Маркиз и метапроцессор для него. Входной язык Маркиз является объектно-ориентированным языком, на котором описание языкового процессора базируется на представлении синтаксических классов входного языка процессора классами объектов с определенными на них операциями. Определение операций осуществляется так, что возможно задание многопроходных языковых процессоров. Сейчас ведутся эксперименты с системой.
2. Отдел систем программного обеспечения Вычислительного центра РАН
Отдел систем программного обеспечения Вычислительного центра РАН (теперешний руководитель - В. А. Серебряков) тоже один из старейших российских коллективов, занимающихся проблемами трансляции. Здесь разрабатывались одни из первых в СССР трансляторов, в дальнейшем был создан ряд трансляторов для отечественных ЭВМ - от М-20 до БЭСМ-6. Диапазон языков тоже весьма велик - Алгол 60, ПЛ/1, Паскаль и т.д.
Некоторые из созданных трансляторов остались экспериментальными разработками, часть же широко использовалась в СССР.
Сейчас в отделе около 15 сотрудников. Кроме них в работах участвуют аспиранты и студенты Московского университета и Московского физико-технического института.
Определяющими для последних работ этой группы являются исследования и разработки по применению атрибутных грамматик к построению трансляторов и создание языков и систем программирования для высокопараллельных многопроцессорных архитектур.
Исследования по атрибутным грамматикам имели своей целью создание эффективной атрибутной техники, позволяющей строить для современных универсальных языков трансляторы промышленного качества. Были разработаны эффективные алгоритмы атрибутных вычислений, предложена практически удобная модель атрибутных грамматик, продуманы механизмы построения многопроходных трансляторов, исследованы способы атрибутного определения хороших генераторов кода. Все эти исследования были положены в основу системы построения трансляторов (СПТ) Super [3].