Наталія Дубова
У 1962 році в СРСР розроблений перший транслятор для мови високого рівня
Тільки в кінці 50-х у користувачів радянських ЕОМ з'явилася можливість вводити в свої машини символьну інформацію. На початкових етапах все програмування було чисельним, оскільки пристрої введення могли працювати тільки з числовими даними. Мабуть, тому системне програмування для перших вітчизняних машин розвивалося в напрямку створення трансляторів, а не автокодом і стандартних підпрограм. В середині 50-х з'явилися так звані програмують програми для БЕСМ і «Стріли» - перший досвід автоматизації програмування в Радянському Союзі. Перші школи програмування СРСР складалися там, де йшла найбільш інтенсивна експлуатація цих «робочих конячок» раннього періоду вітчизняної техніки, - в ІТМіВТ і в Інституті прикладної математики під керівництвом академіка Келдиша (тут, до речі, в 1954 році була створена система розрахунку термоядерного вибуху). Завдяки накопиченому досвіду цим колективам вдалося до 1962 року домогтися нових успіхів - саме тут розробляються вітчизняні транслятори з щойно з'явився мови високого рівня Алгол.
Перша версія Алгола була випущена в 1958-м. Однак визнання і популярність здобув вдосконалений варіант мови, Алгол-60, названий так тому, що робота міжнародного колективу розробників над його специфікацією завершилася в 1960 році. Ніклаус Вірт назвав Алгол-60 «першою мовою, який був ясно визначено: його синтаксис заданий за допомогою суворого формалізму». В цьому ж році стартували проекти реалізації трансляторів для Алгола-60 в СРСР: у ІТМіВТ і в ІПМ.
До цього часу основна обчислювальна навантаження в цих організаціях з БЕСМ і «Стріли» перейшла на останню лампову машину Лебедєва, М-20. Машина випускалася серійно і завоювала популярність у програмістів не так навіть через свого швидкодії, скільки завдяки витонченості і зручності. Ідейним співавтором Лебедєва при розробці М-20 був математик і програміст Михайло Романович Шура-Бура, який створив для цієї ЕОМ так звану інтерпретує систему ІС-2, яка автоматизувала звернення до бібліотечних підпрограм і використовувалася усіма появою в подальшому трансляторами з Алгола для цієї машини. Під керівництвом Шура-Бури колектив програмістів ІПМ почав розробку свого транслятора.
Але перший транслятор з мови Алгол для М-20 був завершений в тих же стінах, де була розроблена сама машина, в ІТМіВТ, хоча за часом цей проект був запущений трохи пізніше проекту ІПМ. Його автор, Святослав Сергійович Лавров, прагнув зробити систему трансляції якнайшвидше і якомога ефективніше. Тому транслятор за версією ІТМіВТ під назвою ТА-1 був фактично транслятором з підмножини мови, без рекурсії процедур і з рядом інших обмежень.
В ІПМ на початку 60-х працював блискучий колектив програмістів - майже весь перший випуск спеціальності «Програмування» кафедри обчислювальної математики мехмату МДУ, учні Олексія Андрійовича Ляпунова. Едуард Зіновійович Любимський, який разом з Шура-Бурою керував розробкою транслятора з Алгол, згадує, що, познайомившись з мовою, фахівці інституту спочатку замахнулися на систему автоматизації програмування вищого рівня, ніж Алгол-60. Алгол по віддаленості від машинного рівня був аналогічний операторної схемою програми Ляпунова. Однак Шура-Бура наполіг на тому, щоб вирішувати більш «приземлене» і нагальну задачу.
В ІПМ теж мали певний ТА 1 - перша, не цілком вдала версія транслятора. Остаточний варіант, ТА2, був завершений дещо пізніше розробки ІТМіВТ, навесні 1963 року народження, і вже в травні демонструвався на міжнародній конференції з програмування в Києві. Це була практично повна реалізація мови, і під час показів у Києві на М-20 транслятор впорався з придуманою одним з учасників надзвичайно важкій рекурсією. Любимський розповів також, що незабаром після завершення розробки авторам ТА2 потрапив в руки західнонімецький журнал з тестової програмою для трансляторів з Алгола-60. Журнал пропонував перевірити зрілість транслятора, на яку категорію він потягне: man or boy. В ІПМ прогнали програму і переконалися у високому рівні своєї розробки.
Перша версія мови, Алгол-58, дуже зацікавила Андрія Петровича Єршова. Після закінчення мехмату (той же випуск Ляпунова) він працював в ІТМіВТ і був автором програмує програми для БЕСМ. Однак на початку 60-х Єршов - вже в Новосибірську, де формувався новий науковий центр, Сибірське відділення АН СРСР. Єршова запросив сюди академік Соболєв, про роль якого в розвитку обчислювальної математики і становленні радянського програмування ми вже не раз згадували. Тепер Соболєв очолив Інститут математики СО; організацією відділу програмування в інституті зайнявся Єршов.
Поступово в Сибіру склалася нова потужна програмістська школа. Одним з перших її яскравих результатів стала розробка мови Альфа, з'явився підсумком роботи Єршова і його колег над Алголом-58. Єршов розвинув можливості цієї мови, зокрема додав матричні операції, і отриманий в кінцевому підсумку мова виявилася багато в чому схожий з Алголом-60. Фактично, завершений в 1961 році мову Альфа - це «розширене підмножина» Алгола-60, без рекурсій, але з визначенням багатовимірних значень і операціями над ними, можливістю ініціювання змінних і деякими іншими нововведеннями.
|