История разработки компилятора Фортран-Дубна

История разработки компилятора Фортран-Дубна

Этот текст родился из моей переписки с Владиславом Павловичем Шириковым, главным научным сотрудником научно-технического отдела программного и информационного обеспечения Лаборатории информационных технологий ОИЯИ, одним из основных разработчиков компилятора с языка программирования Фортран в Объединённом институте ядерных исследований (ОИЯИ, г. Дубна). (Краткая история появления Фортрана дана во врезке). В СССР Фортран начал широко распространяться с 1967-х годов, следовательно, можно говорить о 55-летии этого замечательного языка. Примерно четверть века Фортран был одним из самых распространённых ЯВУ (языков высокого уровня) в мире. Наличие компилятора с него на машине было обязательным. В этой статье речь идёт не о самом языке – эта тема достаточно детально описана, а о том, как первые версии компиляторов с Фортрана появились на отечественных ЭВМ.

Владислав Шириков: У Фортрана на Западе (точнее в Европе) вообще-то была не такая уж лёгкая судьба, по крайней мере, у научников: он ведь родился в недрах корпорации IBM в 1957 году, был обруган в публикации профессора Хиггинса “Что должен каждый знать об Алголе” (Eugene Higgins.What everybody must know about Algol), который был создан годом позже. В ЦЕРНе Фортран появился примерно в 1960-м на машине IBM-709, но был не востребован из-за того, что 32-разрядные машины IBM для сложных расчётов не годились (они использовались на съёме данных с аппаратуры, как мультиплексоры), и только с 1965 г. Фортран расцвёл с появлением в ЦЕРНе и других центрах физических исследований машин серии CDC-6000 с имевшимся на них транслятором Фортрана (сразу началась реализация библиотеки CERN LIBRARY и т. п.). В СССР к нему тоже сначала интереса не было. В общем, «гадкий утёнок» до девятилетнего возраста.

Интересно вот что: Алгол, как я помню, родился на год позже Фортрана, и про него упоминали на наших курсах по программированию в МГУ (я кончил мехмат МГУ в 1959 г., сразу поступил в аспирантуру с М.Р. Шурой-Бурой в качестве руководителя, он дал мне написать какой-то блочок к компилятору с Алгола, но я по семейным обстоятельствам после сдачи кандидатских экзаменов удрал в Дубну, куда была распределена моя жена), а про Фортран никто из преподававших тогда не упоминал, его считали, как и Хиггинс, примитивным (в упоминавшейся публикации было сказано: вот пусть попробует кто-либо написать на Фортране столь же компактную программу, как на Алголе). То, что на Фортране получается программа более удобная для отладки, в отличие от блочной алгольной, теоретиков программирования не волновало, как и то, что у научников на Западе успел сложиться богатый набор фортрановских библиотек: имей транслятор с Фортрана и открытое сотрудничество с западными центрами – и вопрос с софтом для прикладников во многом решён.

Мы же в Дубне одновременно с началом работ по созданию транслятора с Фортрана сделали проект “Мониторной системы Дубна” для БЭСМ-6, составленный в сотрудничестве с ВЦ МГУ и утверждённый в 1967 году комиссией под руководством Святослава Сергеевича Лаврова как элемент в составе требований к операционной системе БЭСМ-6 (откуда использовались и её встроенные элементарные функции), и в нём предусматривался выбор стандарта комплектующего пользовательскую программу загрузчика (единый язык представления объектных подпрограмм хоть ассемблером, хоть другими трансляторами) плюс наличие библиотек типа CERN LIBRARY, где был набор подпрограмм общего назначения плюс программ, специализированных для физиков. Поэтому позже и Институт прикладной математики (ИПМ АН) воспользовался этим стандартом для своего компилятора FOREX (о нём будет сказано ниже). Наш транслятор прямо (по желанию) выводил результат трансляции в виде загрузочного кода или в виде автокода.

Несколько слов про Мониторную систему. А как же без неё? Программа пользователя могла комплектоваться из подпрограмм и процедур, либо представляемых в пакете вводимой на счёт задачи на разных языках (Фортран, Алгол, автокод МАДЛЕН), либо уже оттранслированных ранее (и хранящихся во временной или постоянной библиотеке в формате стандартного загрузчика); ей могли потребоваться данные с магнитных лент и т. д. Кто-то в системе обслуживания каждой вводимой задачи должен вызывать тот или иной транслятор, сбрасывать в библиотеку временного хранения (на барабане или диске машины) результаты от трансляторов («стандартные массивы», СМ, как мы их называли), сшивать из них готовую объектную программу (по директиве EXECUTE в пакете задачи), предоставлять возможность фортранным операторам READ чтение с нужной магнитной ленты или устройства ввода перфокарт. Мониторная система – это автоматическая нашлёпка к задаче пользователя: пользователь до ввода задачи заранее вставляет управляющие директивы на нужные операции, и когда задача начинает решаться – в её поле грузится резидент мониторной системы, и тот производит на этапах выполнения действия, соответствующие пользовательским директивам. В значительной степени это похоже на то, как оформляется и сейчас задача, запускаемая в Грид-структуре: пользователь снабжает задачу файлом jdf (job description file, файл описания задания) и ПО промежуточного слоя (middleware), Грид – выполняет его требования (если будут нужны данные из файлов таких-то, значит нужно их подкачать на тот процессорный элемент (PE), который будет выделен брокером).

Мониторные нашлепки в поле каждой запускавшейся на БЭСМ-6 задачи состояли из резидента монитора и вызываемых им по мере необходимости подразделов: раздела ввода пакета, интерпретатора директив (управляющих карт внутри пакета, как мы их называли), вызова трансляторов в поле памяти задачи, записи СМ во временную библиотеку, перфорации СМ, записи в личную библиотеку или считывания из неё, печати каталога библиотеки, редактирования по директиве EDIT, загрузчика, ...

Игорь Николаевич Силин

Игорь Николаевич Силин

При определяющем вкладе И.Н. Силина была реализована сначала версия операционной системы ДД71 (Дубненский Диспетчер 1971 года), потом ДД73. (Я там делал только один блок завершения задачи). Начали с перевода диспетчера Д-68 (ИТМиВТ) с машинного языка на язык собственного ассемблера МАДЛЕН (не руками, а написанной специально программой «антиассемблер»), а далее реализовывали при сохранении общей схемы Д-68:

  1. Новый принцип заказа и распределения ресурсов машины (магнитофонов, оперативной памяти, времени); заложили алгоритм подкачки, реализующий динамическое распределение и перераспределение памяти для задач, что дало возможность решать в мультипрограммном режиме до трёх (потом увеличили до 7) задач, каждая из которых претендует практически на всю оперативную память;

  2. Предоставили возможности оператору управлять прохождением задач со специального пульта;

  3. Заложили опознавание магнитных лент по именам и защиту лент одной задачи от других, а также контроль обменов с барабанами;

  4. Обеспечили работу с нестандартными внешними устройствами (читающим c перфокарт машины CDC-608 и CDC-магнитофонами, графопостроителем CALCOMP);

  5. Автоматизировали пакетную обработку задач;

  6. Обеспечивали работу по резервному направлению внешними устройствами (так называемому 7-му направлению УВУ) для связи БЭСМ-6 с удаленными машинами измерительных центов и лабораторий ОИЯИ, в том числе выносными «фортранными» станциями ввода задач на БЭСМ-6, которые были запрограммированы нами на малых и средних машинах.

Ну, это главное. А ИПМ-овцы взяли себе за основу ДИСПАК (изделие В.Ф. Тюрина с Урала), развивали его. Вот так на рынке операционных систем (диспетчеров) и оказалось два конкурента: наши DD71/73 (помню, мы с Силиным вдвоем ездили устанавливать в Ташкенте то ли в университете, то ли физическом институте, уже забыл; за свободное время в поезде писался препринт по ДД: писал я, поскольку Силин на писания был ленив, а делал ОС в основном он «со товарищи», я только один кусочек) и ДИСПАК. Всё-таки по статистике внедрения, особенно в московских организациях и связанных с ИПМ, ДИСПАК наши версии превзошёл.

Что касается мониторной системы “Дубна”, то первое сообщение по ней в Трудах конференции ВКП-2 в Новосибирске в 1970 году шло от таких авторов: Н.Н. Говорун, В.Ю. Веретенов, А.И. Волков, Н.С. Заикин, И.Н. Силин, Р.Н. Федорова, В.П. Шириков, и их нужно считать основным составом разработчиков, но в последующем были и другие участники.

Можно считать, что всё нами делавшееся (и по транслятору, и по мониторной системе) первой и основной целью имело внедрение библиотек программ типа CERN Library, в свою очередь явившейся коллекцией западных наработок для физиков, в основном работавших в области физики высоких энергий с её ускорителями элементарных частиц (там и программы общего назначения, и специализированные) и пополнение библиотеки наработками ОИЯИ и, возможно, других организациях (скажем, пакетами для обработки спектрометрической информации, характерной для физики низких и промежуточных энергий: например, нейтронной физики, которой в ЦЕРНе не было и нет). При работе по формированию библиотеки у нас и её постановке на БЭСМ-6, когда мониторная система уже позволяла это делать, дело происходило так: в 1969 году был сформирован мой (как начальника) отдел развития и эксплуатации математического обеспечения базовых ЭВМ ОИЯИ (не все ранее упоминавшиеся люди туда вошли. Скажем, не вошёл Игорь Николаевич Силин как ключевая системная фигура, и прикомандированные сотрудники типа Веретенова и Волкова, потому что ставить его в положение моего подчиненного было бы просто некрасиво и неестественно: мы продолжали активно взаимодействовать, но неформально). В этом отделе был сформирован и сектор библиотек программ с указанной выше целью, его начальницей стала Раиса Николаевна Федорова, и туда вошли новые люди из разных подразделений нашей Лаборатории Вычислительной Техники и Автоматизации (ЛВТА), образованной в рамках структуры ОИЯИ в 1966 г. (кроме того, в отделе собрались люди, занявшиеся работами по системному обеспечению разнотипных машин и их средств связи, вариантов реализации локальной сети ОИЯИ и каналов внешней связи). Что касается сектора Федоровой, которая взаимодействовала с сектором Л.С. Нефедьевой по спектрометрическим библиотекам (непосредственно подчинённым Говоруну, а Нефедьева в свою очередь по этой части взаимодействовала с МГУ), то просто хочу отметить Федорову как основную в деле решения той главной прикладной задачи, ради которой создавалась мониторная система: Государственную премию Совмина СССР мы вместе с ней получали, и библиотека на Фортране через неё распространялась в сотни отечественных организаций и другие страны-участники ОИЯИ. Сектор Федоровой работал не только ради БЭСМ-6, а потом и для пришедшей в ОИЯИ большой машины CDC, а потом машин серии ЕС ЭВМ. А уж если уходить в подключение фортранных станций (кстати, в ЦЕРНе подобные вещи они делали на своей технике раньше нас), формирование многомашинного комплекса и сетей ОИЯИ, то тут масса разных людей и из технических отделов ЛВТА (троечку молодых я заставил перевести в свой программистский отдел), и кто-то привлекался мною из других лабораторий.

Фортран

Началом внедрения Фортрана в СССР можно действительно считать, видимо,1967 год в том смысле, что в этом году мы начали основную работу по написанию транслятора по крайней мере в Дубне, хотя идея-то (что этим надо заниматься) могла родиться и годом раньше. Судя по рукописи, в 1968 году эксплуатационный вариант компилятора для машин “Минск” уже был работающим (в Серпухове, точнее в поселке Протвино рядом, где расположен Институт физики высоких энергий, ИФВЭ.), у нас для БЭСМ-6 тоже, но с некоторым запаздыванием по сравнению с ними. Кто первым сказал “Мяу” в смысле самой идеи внедрения Фортрана – это безусловно физики: Николай Николаевич Говорун у нас в ОИЯИ, как международной межправительственной организации, и Скиф Николаевич Соколов в ИФВЭ. История старая, сейчас трудно установить, кто из них первее. Скорее всего, независимо. Во внешнем мире считали в основном, что Говорун, он был значительно более известен. Раиса Дмитриевна Говорун до сих пор считает, что Фортраном СССР был обязан Н.Н. Говоруну. Ну, на БЭСМе-то, конечно, точно, а вот на серии малых машин “Минск” – Соколов.

Начинали мы разработку компилятора в 1967 году с писания его в машинных кодах БЭСМ-6, а потом с появлением в 1968 году в Дубне машины БЭСМ-6 переписали на автокод под ассемблер Е.А. Жоголева (из ВЦ МГУ), но он был синтаксически-управляемый (это когда входной информацией к нему является задание синтаксиса языка, и он транслирует, пользуясь этим знанием: хочешь задай ему синтаксис автокода, хочешь более универсального языка (т. е. он многоязыковый). У математиков-системщиков из Сибири, например, такой подход был модным: они у Андрея Петровича Ершова (классика системного программирования в СССР) старались делать очень универсальные вещи (правда, получалось тяжело для техники в смысле эффективности), поэтому переводил он за секунду одну команду, пришлось нам написать свой “автокод MADLEN”.

Нужно сразу сказать, что профессионалов системного типа в команде не было, времени тоже, поэтому за основу взяли схему транслятора с Фортрана-63 для машины CDC-1604A (Н.Н. Говорун умудрился добыть эту схему в ЦЕРНе), а уж потом модифицировали.

По поводу типов выбранного стандарта языка могу сказать сразу: как писали авторы руководства по CERN Fortran, “it is very similar to FORTRAN IV, but includes also some features which are peculiar to the FORTRAN compilers of the Control Data Corporation” (он очень похож на FORTRAN IV, но включает в себя также некоторые особенности, характерные для компиляторов FORTRAN корпорации Control Data). Фирменный базовый CDC-транслятор был написан в 1964 году, его при модификации пытались сделать под американский стандарт ANSI FORTRAN IV (который посчитали в значительной степени подмножеством CERN FORTRAN с расхождениями в формате оператора DATA), но всё равно разница осталась (например, в формате операторов FORTRAN, ENTRY, READ с перфокарт и WRITE на перфокарты). Мы в Дубне в свою очередь сделали свои дополнения в синтаксис CERN FORTRAN (добавили, скажем, оптимизацию выполнения циклов, ввели понятие нестандартных индексов в переменных из массивов, позволяя применять в качестве индексов произвольные арифметические выражения).

Схема транслятора с Фортрана-63 для машины CDC-1604A представляла собой:

  1. Блок схема: основные функциональные блоки транслятора, их связка в процессе работы (диаграмма со стрелочками, т. е. не как у Ляпунова в операторных схемах, но похоже.)

  2. Исходные тексты для всех блоков на автокоде малой CDC (тексты, которые не сохранились, так что о формате не помню. Естественно, что всё перепрограммировалось с учётом особенностей БЭСМ-6: наличия «магазина» – стека адресов и команд, и т .д.

В команде разработчиков, кроме русских, оказались немцы, корейцы, венгры, поэтому было сделано по крайней мере два компилятора дополнительных к основному транслятора (например, ФОРТРАН ГДР).

По честному надо сразу сказать, что мы были первыми по внедрению Фортрана в России, странах-участницах ОИЯИ и даже в Индии (куда БЭСМ-6 продавалась заводом, поэтому мне срочно пришлось все выдаваемые транслятором диагностики переводить в нём на английский язык); мы были первыми сначала по отношению к БЭСМ-6 и потом БЭСМ-4. Практически одновременно в Серпухове (в ИФВЭ) действовала команда Скифа Николаевича Соколова, они закрыли рынок Фортрана для семейства машин серии “Минск 2/22”.

Ну, а потом и в ИПМ у Михаила Романовича Шуры-Буры возбудились, появился транслятор FOREX, разработанный для БЭСМ-6 в рамках операционной системы ИПМ (ДИСПАК), и я даже в 1980 году оказался оппонентом при защите диссертации у основного автора этого компилятора Виктора Штаркмана.

В нашей команде были контакты и с людьми из Курчатовского института.

Начинала работу над компилятором троица (в пристрелочном плане даже ещё в 1966 году): Н.Н. Говорун, И.Н. Силин и я. Никто из нас не был специалистом в этой области: Говорун и Силин – физики по образованию, но писали в ОИЯИ и прикладные программы (скажем, у Силина родилась знаменитая в ОИЯИ программа Fumily для минимизации функционалов сначала для М-20, по-моему); я защитил в 1965 году кандидатскую в области краевых задач для диффуров. На самом деле у нас была группа системных программистов, контактировавших с ИПМ в части систем типа ИС-2, но когда Говорун объявил мобилизацию для компилятора Фортрана – эта группа отказалась принимать участие в такой авантюре, и Говорун начал с нас, подыскивая молодых и разных со стороны или внутри ОИЯИ. Мы с Силиным взяли себе по куску транслятора (используя упоминавшиеся схемы с малой CDC), сделали вчерне, потом я сказал Силину – ну что, можем попробовать написать остальное? Но тут он разумно сказал, что зашьёмся, отлаживать же надо, а даже ещё машины в Дубне не было, пришла в 1968 году, да и не в одном трансляторе дело. Появились новые люди, подраспределили остальные куски. Сколько новых было привлечено – это я ещё посмотрю, но сразу должен сказать: Силин был ключевой фигурой и в реализации транслятора, и в реализации мониторной системы (если не считать внедрение библиотек): универсальный стандарт языка загрузки программ от разных трансляторов, плюс переделка самой штатной операционной системы. Вдобавок я, сделав свой кусок в машинных кодах, вынужден был в октябре 1967 года убыть в ЦЕРН на полгода для освоения и посильного развития операционной системы машин CDC 6000 (в составе системной группы ЦЕРН): БЭСМ БЭСМом, но мы планировали приобрести себе и CDC-6400/6500, кому-то надо было стать специалистом по ней вплоть до подготовки руководства операторам, знания особенностей работы системы в критических ситуациях, возможностей её соединения с терминалами и другими машинами (кое-что пришлось делать там для системы и самому по заявкам немецкого руководителя группы).

Когда весной 1968 года я вернулся в Дубну, люди здесь частично уже отлаживались на машине в Москве (чёрная координирующая работа над транслятором выпала на Силина), а я переписал свои куски на автокод, да и машина прибыла, дальше мы с Силиным включились вместе, работали по ночам вместе со всей командой. Да, я потом был руководителем изготовления оптимизирующего варианта транслятора с Фортрана для БЭСМ-6 (прикомандированный кореец был исполнителем) и мониторной системы с транслятором для БЭСМ-4, стал с 1969 года начальником отдела развития математического обеспечения для базовых ЭВМ ОИЯИ и их средств связи с другими машинами, делались даже препроцессоры к существовавшим на СDC-6500 и ЕС-1060 трансляторам, но без Силина всю эту кухню по транслятору на БЭСМ-6 и вокруг него так быстро было бы не сделать. Я говорю об этом ещё и потому, что в ряде обзорных изданий либо говорится, что Говорун и Шириков сделали транслятор, либо Силин и Шириков, либо ещё как, в результате роль Силина принижается. Кстати, его прикладные и системные работы (в том числе по тому, что он сделал для БЭСМ-6, особенно по изготовлению Дубненского варианта ОС) вошли в состав его докторской диссертации, а моя доля, и особенно построение многомашинного комплекса ОИЯИ, – в мою. Он после БЭСМовской эпопеи попытался с парой программистов и местных инженеров сделать копию всего на микроБЭСМе (“Микроб”, как они её назвали), даже опытный экземпляр демонстрировался, но потрачено было много времени, да и промышленность подвела, и народ, где нужна была миниатюризация и совместимость старых программ, успел перебраться на ЕC или спецпроцессор в составе «Эльбруса». Увы, в 2006 г. профессор, доктор физико-математических наук Игорь Николаевич Силин ушёл в мир иной.

В публикациях по базовому транслятору с Фортрана на БЭСМ-6 и его усовершенствованным вариантам (кроме упомянутой троицы Говорун-Силин-Шириков) фигурировали с разной степенью вклада (вплоть до отладки написанного мною во время моего отсутствия): Дьюла Лёч (Венгрия), Г.Л. Мазный, Р.В. Полякова, Г.Л. Семашко, А.А. Хошенко, Зигфрид Бродзински (ГДР), Эрика Ловаш (Венгрия), Петер Гизе и Пирошка Гизе (немец и его венгерская жена), Р. Гирр (ГДР), О Ен Ир (КНДР), В.А. Загинайко, Н.С. Заикин, В.Ю. Веретенов (вот вклад последних трёх не помню, скорее всего в сочетание с оболочкой «Мониторная система Дубна». Я перечислил поимённо основных участников реализации транслятора с Фортрана на основе списков в сохранившихся публикациях и собственной памяти, и это можно считать обоснованным и достоверным.

Распространение знаний по языку ФОРТРАН по России оформлялось в основном тремя публикациями:

  1. В.П. Шириков. Язык ФОРТРАН и программирование на нём (в сборнике «ЭВМ в экспериментальной физике», 1968 ).

  2. Язык ФОРТРАН (под ред. В.П. Ширикова). Препринт ОИЯИ (1968 г.) и Издательство ВЦ МГУ (Москва, 1970 г.)

  3. Язык ФОРТРАН (подготовлен под редакцией В.П. Ширикова, г. Дубна). Методическое пособие для слушателей факультета «Программирование на БЭСМ-6», 149 страниц, опубликовано Общественным институтом математики и вычислительной техники ИММ и организацией общества «Знание» УНЦ АН СССР, Свердловск, 1975 г.

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

Кстати, очень много исторически интересного – в материалах заседаний Комиссии по системному математическому обеспечению ККВТ АН СССР, работавшей под председательством А.П. Ершова (архивы есть в Новосибирске, они народ аккуратный). Все системные авторитеты были в её составе, и я от Дубны. В мае 1984 года заседание проходило в Дубне, копия стенограммы у меня сохранилась (только эта), отчитывался за директора Говорун, и вот пара вопросов-ответов:

Шура-Бура: “Какова Ваша точка зрения на взаимосвязь ФОРТРАНа и ассемблера в части быстродействия?” 

Говорун: “Значительная часть нашей продукции – это разработка новых алгоритмов, здесь используется ФОРТРАН; когда речь идёт о рутинной работе – обработке данных экспериментов – здесь применяется автокод для улучшения использования мощностей” (ну, тут он малость загнул: регистрация и первичная обработка – да, но не окончательная.)

Ершов: “ У Вас есть опыт переноса фортрановских программ с одного транслятора на другой. Этот перенос головной боли не вызывает?”

Говорун: “У дирекции не вызывает, а у тех, кто этим занимается, вызывает. Но тот, кто пишет, тот старается писать с учётом переноса.”

Одно забавное замечание: оппонентами на защите моей докторской в 1974 г. были, в частности, А.П. Ершов и М.Р. Шура-Бура от ИПМ как головной организации (от которого я сбежал в университете, но он был человек дотошный: мы к этому моменту сформировали и несколько так называемых выносных фортранных станций, чтобы свои фортран-ориентированные задачи люди качали на БЭСМ-6 и СDС из разных удаленных подразделений, так он приезжал и всё пролазил, и моё дезертирство простил, да и потом тепло встречались на заседаниях редколлегии журнала «Программирование»).

К большому сожалению, 11 сентября 2015 года Владислава Павловича Ширикова не стало. Эти строки дань памяти этому замечательному человеку.

Как рождался Фортран

Наиболее интересный документ по истории Фортрана, это, конечно же, статья самого его автора Джона Бэкуса, опубликованная в 1978 г. в журнале ACM SIGPLAN Notices. Он пишет о том, что до 1954 г. практически все программы были на машинном языке или на ассемблерах. Программистам приходилось тратить много усилий на преодоление недостатков самих ЭВМ: отсутствие индексных регистров, арифметики с плавающей запятой, недостаточно большим набором машинных команд, в котором, например, могла быть команда AND, но при этом не было команды OR. Однако из этой статьи видно, что к указанному году на разных машинах предпринимаются попытки создания высокоуровневых языковых средств, однако эти системы имели очень высокий коэффициент замедления исполнения программы (от 5 до 10), что по тогдашним меркам стоило очень дорого. Интересно замечание Бэкуса о стоимости программирования в те времена: “Стоимость программистов, связанных с вычислительным центром, была эквивалентна стоимости компьютера”. В указанную стоимость входила зарплата и накладные расходы. При том, что ЭВМ в то время стоили сотни тысяч долларов, это утверждение похоже на правду. Следует также учесть, что от 25 до 50% машинного времени уходило на отладку программ. По мере того, как компьютеры становились дешевле, ситуация ухудшалась, пишет Бэкус. Этот экономический фактор послужил причиной тому, что в декабре 1953 г. Бэкус написал письмо своему шефу Кутберту Харду (Cuthbert Hurd) с предложением проекта создания языка ФОРТРАН. Экономическая необходимость в системах типа ФОРТРАН была настолько очевидной для руководства Бэкуса, что “его последовательное начальство Hurd, Charles DeCarlo и John McPherson обеспечивали всё возрастающие потребности [группы разработчиков] последующие пять лет даже без вопросов к ним по проекту или требований доказывать эти необходимости в формальном бюджете”.

Э. Пройдаков. “Язык Фортран во всех его ипостасях” (из неопубликованного).

Об авторе: Директор Виртуального Компьютерного Музея
Помещена в музей с разрешения автора 10 декабря 2023