Файл: История развития программирования в России (Исторические этапы развития языков программирования).pdf
Добавлен: 30.06.2023
Просмотров: 61
Скачиваний: 4
СОДЕРЖАНИЕ
1. Теоретические аспекты развития программирования
1.1. Исторические этапы развития языков программирования
1.2. Русские программисты, внесшие вклад в историю программирования
2. Развитие новосибирской школы программирования
2.1. Начальный этап формирования школы программирования в России
2.2. Развитие новосибирской школы программирования на рубеже XX – XXI века
По данным исследований ABBYY, количество пользователей продуктов компании составляет около 30 млн. чел. более чем в 130 странах. Десятки тысяч организаций по всему миру обрабатывают с помощью ее технологий и программ свыше 1,6 млрд. страниц документов и форм ежегодно.
Бакунов Григорий Николаевич (род. 19 апреля 1972 года). С 2001 г. руководил отделом разработки в SWSoft. В настоящее время является заместителем руководителя департамента разработки компании Яндекс. Ранее работал по рабочим контрактам в Бельгии, Израиле и США.
Внес вклад в разработку ряда программ с открытым исходным кодом, в том числе ASPLinux.
Евгений Валентинович Касперский (4 октября 1965 г., Новороссийск) – российский программист, специалист по информационной безопасности, один из основателей, ведущий разработчик и крупнейший акционер ЗАО «Лаборатория Касперского» – международной компании, занимающейся разработкой решений для обеспечения IT-безопасности, имеющей более 30 региональных офисов и ведущей продажи в 200 странах. Лауреат Государственной Премии в области науки и технологий за 2008 год. В прессе характеризуется как «гроза компьютерной преступности»
Сергей Михайлович Брин родился 21 августа 1973 г., в Москве, СССР. Разработчик и сооснователь поисковой системы Google. легенда компьютерного бизнеса, сооснователь и президент по технологии компании Google Inc., миллиардер, ныне один из самых богатых людей Америки. Брин – русский, впервые названный газетой «Financial Times» «человеком года» не как актер, политик или олигарх, а как математик, прославившийся на весь мир творением собственного ума – поисковой системой Google.
2. Развитие новосибирской школы программирования
2.1. Начальный этап формирования школы программирования в России
Один из первых советских программистов Игорь Васильевич Поттосин родился 21 февраля 1933 г. в селе Кинель-Черкассы Самарской (тогда Куйбышевской) области. Несомненно, его жизненный путь во многом был предопределен семьей и общей атмосферой студенческого Томска. Отец, Василий Васильевич (1905–1993), происходил из семьи служащих, окончил техникум, работал учителем, после окончания Московского педагогического института и аспирантуры был направлен в Томск, в НИИ математики и механики при ТГУ (1934). В 1940 г. был избран деканом спецфакультета, в 1941 г. защитил кандидатскую диссертацию. В годы войны был на фронте, воевал в рядах политсостава. В 1947 г. он вернулся в Томск на родной факультет. С 1960 по 1965 г. работал заместителем декана и деканом физико-технического факультета, затем преподавал на кафедре гидродинамики ФТФ, на пенсию ушел почти в 80 лет. Председатель совета ветеранов ТГУ. Член КПСС с 1941 г., делегат XIX съезда КПСС, награжден орденами и медалями. Мать, Елизавета Павловна Поттосина, работала научным сотрудником в Томском институте вакцин и сывороток.
В школе Игорь Поттосин учился отлично, окончил школу с золотой медалью. В1950 г. поступил на специальное отделение механико-математического (затем физического) факультета Томского государственного университета, где готовили кадры для Министерства обороны СССР. Учился в университете на «отлично» и окончил его по специальности «баллистика». В 1955 г. с характеристикой, в которой была отмечена склонность к исследовательской работе, Поттосин распределен в Москву, инженером в в/ч 01168.
Это был годом ранее созданный ЦНИИ-27 — ВЦ-1 Министерства обороны СССР — первый советский вычислительный центр, предназначенный для решения особо важных задач оборонного характера на основе использования вычислительной техники. Его создателем и первым руководителем являлся подполковник Анатолий Иванович Китов (в дальнейшем заместитель начальника по научной части). Центр размещался в Москве, сначала в здании Артиллерийской академии имени Дзержинского, а затем в доме № 5 в Первом Хорошевском проезде. В то время ВЦ-1 МО СССР включал три научных подразделения: отдел эксплуатации вычислительной машины «Стрела» (была установлена в 1956 г., на ней делались расчеты орбит всех запускаемых в СССР искусственных спутников Земли и решались другие задачи); отдел эксплуатации ЭВМ «Интеграл» и отдел программирования.
В отделе программирования ВЦ-1 И.В. Поттосин рос как профессионал под руководством таких выдающихся ученых, как Л.А. Люстерник, А.А. Ляпунов, Н.А. Криницкий, Н.П. Бусленко и др. Обучение новых сотрудников, инженеров и программистов, было организовано А.И. Китовым. Сам он читал курс «Программирование для ЭВМ», Л.А. Люстерник читал курс вариационного исчисления, теорию функций комплексного переменного — Н.А. Криницкий, некоторые вопросы теории множеств — А.А. Ляпунов [1]. Одновременно шла работа над созданием программ для ЭВМ. Первые публикации И.В. Поттосина появились в сборнике трудов Министерства обороны под редакцией А.И. Китова. Его работы начального периода связаны с автоматизацией программирования, он ищет способы экономии машинного времени при решении систем дифференциальных уравнений, зависящих от параметров. Вместе с Н.А. Криницким, Н.А. Бухтияровым, Л.В. Войтишек и другими он участвовал в создании программирующей программы для машины «Стрела» [2; 3].
Интерес к проблеме автоматизации программирования привел И.В. Поттосина и его друга со школьной скамьи Г.И. Кожухина1 на семинар к А.П. Ершову в Вычислительный центр АН СССР. Случилось это, видимо, не без влияния А.А. Ляпунова. В 1957 г., когда было принято решение об организации Сибирского отделения Академии наук СССР, А.П. Ершов с благословения академика С.Л. Соболева занялся формированием коллектива отдела программирования Института математики с Вычислительным центром СО АН. Друзья, узнав об организации научного центра в родной Сибири, захотели там работать, обратились к С.Л. Соболеву. Отношение с просьбой о переводе И.В. Поттосина в Институт математики СО АН датировано 24 апреля 1958 г. Оно было составлено на имя начальника войсковой части 01168 генерал-майора Березина в канцелярии комплекса физико-математических институтов СО АН. Развитие науки в Сибири было объявлено государственным приоритетом. Руководители всех ведомств, в том числе и Министерства обороны, обязаны были направлять своих сотрудников в распоряжение СО АН по первому требованию. Таким образом, 9 июня 1958 г. И.В. Поттосин стал младшим научным сотрудником Института математики с Вычислительным центром Сибирского отделения АН СССР, который базировался еще в Москве. Он приступил к работе в отделе программирования под руководством Андрея Петровича Ершова.
Со временем А. П. Ершов, Г.И. Кожухин и И.В. Поттосин составили интеллектуальное ядро отдела программирования ВЦ СО АН.
К концу 1958 г. было решено, что Игорь Васильевич переедет в Новосибирск, и с 1 ноября до приезда А.П. Ершова будет исполнять обязанности заведующего Отделом программирования Института математики с Вычислительным центром СО АН. Дата, когда Поттосин приступил к своим обязанностям, стала считаться днем рождения Отдела. В апреле 1959 г. Игорь Васильевич был назначен заведующим группой подготовки задач, затем, в мае 1960 г., когда утверждалась структура отдела программирования, заместитель директора ИМ СО АН Ю.Г. Косарев предложил Поттосину возглавить лабораторию стандартных подпрограмм. В его активе уже была разработка принципов организации библиотеки стандартных программ (совместно с Г.И. Кожухиным и Н.М. Нагорным). В течение первых трех лет Игорь Васильевич обучал сотрудников ИМ СО АН работе на ЭВМ, занимался разработкой СП. Поскольку в первой половине 1960 г. шла активная подготовка к пуску М-20, поступившей на вооружение ВЦ СО АН, Игорь Васильевич руководил программированием производственных задач, чтобы обеспечить загрузку машины2. Он запрограммировал ряд задач для институтов СО АН, в частности сделал расчет сопла для парогазотурбинной установки, детища академика С. А. Христиановича, директора ИТПМ. В 1961 именно за подготовку программного хозяйства ИМ СО АН И.В. Поттосин был награжден Почетной грамотой ЦК ВЛКСМ.
Поначалу И.В. Поттосин не участвовал в разработке Альфа-транслятора, много сил отдавая разработке стандартных программ. Однако А.П. Ершов считал, что Игорь Васильевич должен больше внимания уделять проекту, который становился главным в работе Отдела. Так, во втором квартале 1960 г. в индивидуальном плане Поттосина появился пункт — овладение Сибирским языком (этот язык, разработанный Ершовым и коллегами и названный Альфа, стал входным языком Альфа-транслятора). После переезда в Новосибирск в начале 1961 г. Ершов настоял на том, чтобы Поттосин подключился к проекту. В 1961–1965 гг. Игорь Васильевич стал одним из ведущих разработчиков Альфа-транслятора. Он выполнял сложную координирующую работу как заведующий группой, создал ряд оригинальных алгоритмов трансляции. Альфа-транслятор оказался очень удачным проектом, он широко использовался для решения научных задач, в дальнейшем И.В. Поттосин руководил модификацией Альфа-транслятора для БЭСМ-6 (Альгибр, Альфа-6).
В 1964 г. отдел программирования практически в полном составе перешел в только что созданный Вычислительный центр СО АН. К концу 1965 г. в Отдел входили лаборатория теории программирования (заведующий А.П. Ершов), лаборатория автоматического построения вычислительных алгоритмов под руководством В.Л. Каткова и лаборатория систем программирования, возглавляемая И.В. Поттосиным3. В это время здесь разрабатывался транслятор для ЭВМ Минск-2, Альфа-отладчик. Из-за несовершенства ЭВМ и лимита на ее использование часто приходилось жертвовать свободным временем, чтобы попасть на машину. Сотрудник лаборатории системного программирования ИСИ СО РАН А. Ф. Рар рассказывал: «Стоит вспомнить, как проходило наше взаимодействие с машиной. Она была на ВЦ в единственном экземпляре, часто зависала, время для работы на ней распределялось квотами по 5-10 минут; из-за нехватки времени мы иногда приходили к машине в надежде, что очередной пользователь недоиспользует свою квоту и можно будет урвать пару минуток. В общем весело было, но из-за всего этого порой приходилось приходить на работу ранним утром, а возвращаться домой поздним вечером. И вот однажды моя дочь, тогда второклассница, встретила меня запомнившимися мне словами: “ДАЖЕ ПРИ ЦАРИЗМЕ КАПИТАЛИСТЫ заставляли рабочих работать только 12 часов!”» [4].
Во время работы над Альфа-транслятором выстроились отношения в отделе программирования: авторитет руководителя установился и поддерживался сознательно. Игорь Васильевич писал по этому поводу: «Вспоминаю наш разговор с Геной Кожу-хиным во время начала работы в проекте АИСТ. Сошлись мы с ним на том, что если в тактических и технических решениях “мы и сами не дураки”, то в стратегических решениях надо больше верить интуиции Андрея Петровича, чем собственному мнению, даже если его точка зрения противоречит нашей» [5]. Это признание — свидетельство глубокой порядочности отношений, которые культивировались в ОП его ведущими сотрудниками.
Практически вслед за Альфой в 1965 г. была инициирована разработка нового языка программирования для работы с символьной информацией, обусловленная собственными нуждами системных программистов. В соответствии с ритуалом того времени, завершение проекта было приурочено «к дате», вошло в планы СО АН к 50-летию Октября (Великой Октябрьской социалистической революции): «Создать транслятор с языка СИГМА». Вне планов отдела в рамках этой тематики И. В. Поттосин, М. М. Бежанова и Б. А. Загацкий создавали язык Эпсилон, близкой к машинному языку семантики и удобного синтаксиса (название E \|>iA´ov (греч.: E простое) подчеркивало простоту языка). Противоречие с генеральным направлением, в которое вошли разработчики, было снято, когда были получены основные контуры языка. К группе создателей Эпсилон присоединился А. Ф. Рар, было проявлено завидное упорство при отстаивании своего детища. И. В. Поттосин вспоминал: «К 1968 году система “вышла на простор”. Она использовалась и в ВЦ СО АН СССР, и в других организациях. Особую роль она играла как основной инструмент создания системы коллективного пользования АИСТ-0: все программное обеспечение размером в несколько сотен тысяч команд — и операционные системы, и трансляторы, и информационные системы, и системы компьютерной алгебры, и игровые программы (кроме ядра ОС, который работал на Минске-22 и был написан в мнемонике Минска) - было написано на Эпсилон»4. А. П. Ершов, который поначалу не одобрил увлечения своих сотрудников Эпсилоном, впоследствии включил его в текущий отчет и даже просил руководство премировать разработчиков.
В 1969 г. И. В. Поттосин подготовил диссертацию на соискание ученой степени кандидата физико-математических наук. Она была посвящена некоторым приемам и методам оптимизации, а именно экономии выражений и оптимизации при программировании циклов и индексных выражений, реализованных в системе Альфа [6]. Научным руководителем диссертации стал д-р физ.-мат. наук А.П. Ершов, оппонентами — чл.-корр. АН СССР С.С. Лавров и канд. физ.-мат. наук Н.А. Криницкий. Игорь Васильевич так сформулировал проблемную область своего исследования: «Появление языков с богатыми изобразительными средствами, достаточно далеких от языков вычислительных машин, таких как Алгол 60, поставило перед автоматическим программированием ряд новых проблем, заключающихся в разработке более сложных и менее тривиальных алгоритмов трансляции таких языков» [6. С. 3–4]. Излагая методику программирования операторов цикла, И.В. Поттосин отметил преемственность приемов, использованных в ранних системах автоматизации программирования, предложенных С.С. Камыниным, Э.З. Любимским, М.Р. Шура-Бурой, А.П. Ершовым и др. Наибольшее влияние на автора оказали работы В.М. Курочкина, Г.Д. Фролова, предложения А. П. Ершова по усовершенствованию ПП для БЭСМ.
Следующим большим проектом отдела программирования стало создание первой в Советском Союзе системы разделения времени АИСТ. И.В. Поттосин руководил разработкой программного обеспечения первого этапа проекта АИСТ-0. Была разработана архитектура системы, описаны функции диспетчера и организация потока задач, которые должны были проходить через систему, сформулирована проблема установления очередности и предложено ее решение. И.В. Поттосин руководил также блоком оптимизации алгоритмов. Создание диспетчера для АИСТА-0 велось в тесном содружестве с Г.И. Кожухиным и М.И. Нечепуренко. На Первой Всесоюзной конференции по программированию ВКП-1 в Киеве в ноябре 1968 г. присутствовало 23 делегата от ВЦ СО АН. И.В. Поттосин сделал пленарный доклад «Операционные системы» [7], посвященный обобщению подходов и требований к структурным компонентам операционных систем и их взаимодействию, организации информации от абонентов и организации потока задач. Этот анализ «молодой ученый из СО АН СССР», как его назвали в Решении по итогам конференции, сделал, опираясь на собственный опыт участника проекта АИСТ-0 с учетом подходов, принятых в международной практике. Второй доклад, представленный на секции «Теория и общие вопросы программирования» [8], был посвящен языку Эпсилон. В дальнейшем в рамках структурного подхода к построению сложных инструментальных систем ученики и коллеги И.В. Поттосина под его руководством реализовали систему поддержки пакетов прикладных программ СОФИСТ и универсальную систему аналитических выкладок АУМ.
2.2. Развитие новосибирской школы программирования на рубеже XX – XXI века
В 1990-е гг. фундаментальные исследования И.В. Поттосина вылились в разработку принципов построения окружения программирования. Они сочетали широкий набор инструментов конструирования программ с участием глубоких семантических преобразований и поддержкой структурной разработки. Эти принципы решали проблемы интеграции разнообразных инструментов в развитых окружениях программирования, автоматизированного преобразования программ для достижения качества. Его идеология дисциплинированного программирования содержала подходы, позволяющие повышать надежность создаваемого ПО.