Архитекторы компьютерного мира - Аркадий Частиков
Шрифт:
Интервал:
Закладка:
Я поступил на физтех, но дальше первого курса мне учиться не пришлось. Времена тогда были серьезные, а я мальчишкой жил какое-то время на оккупированной территории. Примерно четверть курса отчислялась по сходным мотивам, в число таких горемык попал и я.
Я был комсоргом курса, чувствовал себя уже неотъемлемой частицей этого нового интересного коллектива. Но делать было нечего. Надо сказать, что люди, которые должны были эту нелегкую процедуру осуществить, старались относиться к отчисляемым студентам с максимальным вниманием, предпринимали активные усилия для того, чтобы направить их на близкие по профилю факультеты. Так в июне 1950 года я подался на механикоматематический факультет МГУ.
Пришел я туда, стал учиться математике. На нас, девятерых ребят, перешедших с физтеха, смотрели с интересом, а народ на факультете подобрался сильный.
Через год, уже на втором курсе, на майские праздники произошла вот какая вещь. Мы уже знали, что у нас в МГУ только что появилась кафедра вычислительной математики, весьма загадочная, потому что никто не знал, что это такое. Известно было только, что ею заведует академик Соболев, человек необычный, который стал академиком чуть ли не в тридцать лет, а сейчас работает в каком-то тайном месте — на самом деле Сергей Львович Соболев служил в той организации, которая потом стала называться Институтом атомной энергии. Кое-кто из ребят постарше уже побывал на новой кафедре, мы же пребывали в полном неведении".
Студенческий приятель Андрея Ершова Евгений Жоголев, который уже записался на новую кафедру, ввел его в курс дела, рассказал, чем занимается новая кафедра, и в частности — об ЭВМ.
Андрей Петрович продолжает свои воспоминания: "…он мне рассказал поразительную вещь. Оказывается, существуют какие-то электронно-вычислительные машины, они очень интересно устроены, и у них есть ртутная память. Я был поражен — что такое ртутная память? Такая стеклянная трубка, наполненная ртутью, а по бокам заткнута пьезокристаллами. Если тебе надо запомнить какое-либо число, то оно изображается как в азбуке Морзе: импульс, нет импульса и т. д., целая цепочка электрических импульсов. Так вот, эти импульсы по проводу приходят в пьезокристалл, он от этих импульсов сотрясается, и получается звуковая волна, которая бежит вдоль ртути по трубке, добегает до следующего пьезокристалла, сотрясает его, в результате получается электрический ток, и это же число в виде импульсов воспроизводится на другом конце трубки, потом по проводу бежит назад, снова на трубку — выходит, что число беспрерывно бегает в этой ртутной памяти. Не знаю почему, но этот рассказ произвел на меня очень сильное впечатление, резко повысив мой интерес к электронно-вычислительным машинам, и я записался на кафедру вычислительной математики.
Год я там занимался чем попало, но в начале четвертого курса у нас на кафедре появился молодой профессор Алексей Андреевич Ляпунов, который до этого преподавал в какой-то военной академии. То, что он нам стал читать, были первые в Советском Союзе основы программирования для электронно-вычислительных машин. Причем первую половину курса он читал довольно реферативно: в сборнике переводов "Новости ракетной техники" была большая переводная статья, ее мы и изучали. Группа европейских ученых, которые побывали в США, познакомилась с американскими вычислительными машинами и некоторые сведения о них опубликовала. Те, кто занимался в то время становлением ракетной техники, по счастью, смотрели на дело очень широко, поэтому они подхватили сведения и по вычислительной технике и включили в этот сборник.
А тем временем у нас в стране развивались события, о которых мы тогда ничего не знали: в Киеве Сергей Алексеевич Лебедев доделывал свою знаменитую первую электронно-вычислительную машину, которая потом стала называться МЭСМ — Малая электронно-счетная машина. И вот получилось так, что между первым и вторым семестрами Алексей Андреевич Ляпунов съездил в Киев в командировку, поработал на этой машине, изучил ее, и у него возникло сразу очень много идей, касающихся того, как надо программировать. Воодушевленный ими, он во втором семестре стал нам все это рассказывать. Это были еще очень непричесанные идеи, но то, что они рождались прямо на глазах, всех очень заразило, и наша группа в полном составе записалась к Алексею Андреевичу в ученики. Этот коллектив в дальнейшем сыграл довольно большую роль в развитии вычислительной техники. А для меня очень важно, что я почувствовал себя приобщенным к новому делу с самого начала, в этот особый период становления.
На том же четвертом году обучения в университете я выполнил свою курсовую работу по методике программирования циклов, погрузился в чтение доступной литературы и уже с того времени не отделял себя от развития этой новой области науки".
В 1953 году, будучи студентом, А. П. Ершов поступил на работу в Институт точной механики и вычислительной техники (ИТМ и ВТ). В 1954 году он закончил МГУ по специальности "Программирование" (это был первый выпуск отечественных программистов).
В 1955 году был создан Вычислительный центр Академии наук СССР, его директором стал академик А. А. Дородницын. Часть сотрудников-математиков, включая Андрея Ершова, была переведена из ИТМ и ВТ в образованный Вычислительный центр.
Еще работая в стенах ИТМ и ВТ, группа А. П. Ершова создала один из первых трансляторов (программирующую программу) — ПП БЭСМ для быстродействующей электронной счетной машины. Входной язык ПП БЭСМ содержал арифметические и логические операторы, несколько напоминающие современные операторы выбора. Наиболее важными атрибутами ПП БЭСМ были операторы цикла и индексные переменные. Текст программы на входном языке ПП БЭСМ не разделялся на схему и спецификацию операторов, а представлял собой бесформатный линейный текст, в котором операторы отделялись точкой с запятой.
В ПП БЭСМ А. П. Ершов выдвинул в качестве общего правила принцип "адресной кодировки" различных объектов, с которыми имеют дело при трансляции. Такая кодировка существенно сокращает время поиска информации и соответствует структуре оперативной памяти с произвольным доступом. В 1957 году А. П. Ершовым, независимо от американских ученых, определена функция расстановки как способ бесперебойного поиска информации по ключу и исследованы ее статистические свойства и применение для алгоритма экономии команд, работающих за линейное время. На основе работ по ПП БЭСМ в 1958 году им была опубликована монография "Программирующая программа для быстродействующей электронной счетной машины", которая является первой в мировой литературе монографией по автоматизации программирования. Она сразу же была издана за рубежом.
В ноябре 1958 года А. П. Ершов принял участие в конференции по механизации процессов мышления, которая состоялась в НФЛ в Тедцингтоне (Англия). Там он встретился с Джоном Бэкусом, Грейс Хоппер и Джоном Маккарти. Встреча с Джоном Маккарти в дальнейшем переросла в дружбу и сотрудничество. (В 1965 году Маккарти впервые посетил Ершова в Новосибирске, а тремя годами позже Маккарти провел там два месяца, прочитав курс лекций студентам университета.)
В 1958 году академик С. Л. Соболев, один из создателей Сибирского отделения АН СССР, привлекает Ершова к работе по организации научного центра. Полностью в СО АН СССР А. П. Ершов переходит в 1960 году. Здесь, в Институте математики СО АН СССР, он формирует коллектив программистов и осуществляет научное руководство работами этого коллектива. Работы коллектива по языкам и методам трансляции заложили фундамент дальнейшего развития этого направления.
Под руководством Андрея Петровича Ершова были созданы такие известные оптимизирующие системы программирования, как АЛЬФА, АЛЬФА-6, БЕТА, которые во многом определили современную методологию оптимизирующей трансляции.
Разработка системы АЛЬФА началась с создания языка — это было характерно для традиций программирующих программ. Данный язык отталкивался от первоначальной версии ALGOL 60 — ALGOL 58. Группа, руководимая Ершовым, вела разработку параллельно с международной группой, создающей ALGOL 60. Во многом работы этих групп оказались совпадающими, поэтому после опубликования описания ALGOL 60 новый, созданный группой Ершова, язык был сформулирован как расширение ALGOL 60. Этот язык, носивший предварительные названия "Входной", "Сибирский", окончательно утвердился под названием АЛЬФА-язык.
Как пишет И. В. Поттосин, "в АЛЬФА-языке впервые введено понятие многомерных значений и определены операции над ними, в том числе операции конструирования. Все это вошло в структуру таких языков, как PL/1, ALGOL 68, ADA. Впервые в языке были введены и такие естественные для современных языков концепции, как разнообразие циклов, задание начальных значений выражениями. Интересными, но не повторенными по существу свойствами языка были перечисления и верхние (временные) индексы. В своих метасредствах язык впервые выходил за пределы контекстно- свободных грамматик.