Футурама, специальная выпивка для роботов
Футурама, специальная выпивка для роботов

В фильме «Скрытые фигуры» есть прекрасная сцена: на дворе 1961-62, афроамериканка из лабораторий НАСА едет в библиотеку для белых и тихонько без разрешения увозит оттуда книжку по Фортрану. На автобусе увозит. Сопровождая это комментарием своему сыну: «А что? Я плачу налоги».

Фортран перестал быть просто языком программирования, это давно культурный феномен. Настолько, что стал иллюстрацией в борьбе чернокожих женщин за свои права (попробуйте, навскидку, придумать ещё хоть одно понятие из ИТ, которое можно было бы положить в эту категорию).

Масштаб явления очень легко недооценить: на современный избалованный взгляд ничего такого волшебного в Фортане нет. Зато если немного разобраться в контексте, становится понятно, что Фортран – просто квантовый скачок, уделавший все альтернативные разработки минимум на 10 лет.

Единорог в женском обувном

История началась настолько необычно, что хоть кино снимай.

В 1944 в военный госпиталь в Атлантик-сити прибыл 20-летний солдат, на практику. Так получилось, что солдат-студент попал работать в нейрохирургию, и кто-то из коллег обратил внимание на странность его черепа. У солдата реально рос рог, слева.

Рог – костный рак – солдату удалили, прикрыли дырку в черепе размером с пол-ладошки накладкой, и отправили на реабилитацию и дальнейшую учёбу-работу в Нью-Йорк. Там у солдата после замены одной накладки на другую внезапно полностью пропал интерес к медицине, зато появился интерес к математике, и он поступил в Колумбийский университет.

IBM building в то время
IBM building в то время

В 1950, уже выпустившись, новоиспечённый математик волею случая прогуливался мимо 590 Мэдисон, IBM building. Как раз в 1950 там в соседнем здании бывшего женского обувного магазина установили что-то типа демонстрационного ВЦ, несколько тогдашних IBM SSEC, видимых с улицы через большую витрину. IBM прощупывала рынок и пиарилась таким вот оригинальным способом.

Математик – его звали Джон Бэкус – заинтересовался и зашёл посмотреть, попросил поговорить с шефом, решил две задачки – и был принят на работу программистом SSEC.

Главной фичей этих в общем очень сложных и неудачных машин была концепция хранимой программы, что в теории позволяло писать машинный код, порождающий другой код. SSEC – первая серийная машина с такой возможностью. Тем не менее, эта фича не очень-то использовалась – просто не было инструментов – и конечно, программисты пытались такой инструмент создать. Тогда из этого получился примитивный очень медленный интерпретатор, прототип Speedcoding.

Через год Бэкуса перевели на только что появившуюся IBM 701, писать софт для расчёта траекторий баллистических ракет. Занятие это он очень не любил и искал способ ускорить кропотливый и нудный процесс программирования циклических FP-вычислений на машине с фикс. точкой. Так Speedcoding получил дальнейшее развитие уже на новой машине, был отлит как спек и выпущен в сообщество.

Спек занятный: Speedcoding внешне выглядит как трёхадресный ассемблер с шириной команды в 72 бита. В отличие от просто ассемблера Speedcoding оперирует сразу FP-числами (команда, кроме опкода, содержит три 10-битных указателя), и к мат. оператору внутри команды может быть пришит безусловный или условный переход по результатам исполнения. Из коробки поддерживаются синусы-косинусы, логарифмы и всё такое.

Это было невероятно круто, но очень медленно. «Духовенство» (priesthood, по словам Бэкуса) идею похоронило.

Духовенство

В 50-х почти любым управленцем, слышавшем про компьютеры хоть что-то, программирование считалось искусством в полном смысле. То-есть очень плохо предсказуемым по срокам процессом, где-то между просто безвредными заклинаниями и откровенно чёрной магией.

Понятно, что люди, практикующие магию, автоматом образуют очень узкую касту по признаку владения уникальным скиллом – в данном случае это было программирование в машинных кодах. И высокое духовенство программистов в машинных кодах тогда в идее высокоуровневых языков Бэкусу отказало, точнее – по его словам – просто не заметило.

По итогам нескольких очень холодных презентаций идеи по комьюнити в конце весны 1954 Бэкус пошел питчить идею Фортрана (он, правда, тогда ещё так не назывался) своему начальству. Но – после некоторых предварительных наработок – уже как компилятор.

Контекст

К началу 50-х сразу несколько коллективов инженеров пришли к выводу, что разумно записывать последовательность вычислений не в кодах процессора, а в вызовах подпрограмм, и иметь интерпретатор, исполняющий эти вызовы. Идея – прекрасный пример конвергентной эволюции: Бэкуса к ней привела лень (в каждом втором интервью он про это говорит), Мокли – проработка идей Тьюринга (Лос-Аламос 1976, не помню кто), Цузе по этому поводу тоже что-то говорил в 1976 там же.

Идея для начала 50-х была рискованной: сообществом программистов подход считался в основном тупиковым, и небезосновательно. Реализации как Speedcoding для IBM 701, так и Short Code для ENIAC (Мокли) были интерпретаторами, и кратно (а то и на порядки) проигрывали по скорости программам, написанным вручную в кодах процессора.

С учётом того, что объём RAM измерялся тысячами слов, и например Speedcoding занимал 300 36-битных слов из 1024, идея запросто могла показаться нежизнеспособной.

Удивительно, что примерно к началу 1954 в MIT уже был компилятор, транслирующий мат. формулы в более-менее человеческой записи в машинный код для Whirlwind I. Про этот компилятор Лэнинга-Цирлера вообще мало упоминаний, у него даже собственного имени нет, но Бэкус его видел, и много раз признавал, что эта работа оказала на синтаксис Фортрана определённое влияние. Из работы видно, что влияние было довольно существенным.

Чисто синтаксически, тем не менее, работа Лэнинга-Цирлера была очень ограниченной, как и многие предыдущие: имплицитное умножение (это когда ab значит a×b, то-есть только однобуквенные переменные разрешены), типографские индексы для возведения в степень и единственная команда ветвления CR – это ну очень неудобно. Но главная проблема компилятора Лэнинга-Цирлера была в том, что он был написан для компьютера, существующего в единственном экземпляре.

IBM 701 при этом расходился как горячие пирожки (аж 19 машин за два года), на подходе был IBM 704, который поддерживал FP аппаратно, и его надо было на чём-то программировать. В общем, в начале 1954 Бэкусу дали карт-бланш на команду под проект, машинное время, помещение со столами типа нынешних опенспейсов – и полгода времени.

Проект

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

Ну и надо было придумать плоский (без над/подстрочников и спецсимволов) синтаксис, который позволяет эффективно организовывать циклы, ветвление расчётов и взятие/запись значений по индексу.

Также существенным драйвером проекта была экономика: к тому моменту уже было видно, что к каждому компьютеру прикладывается «духовенство», обходящееся примерно так же дорого, как и сам компьютер (сотни тысяч в месяц). Удешевление программирования и отладки считалось чуть не главной официальной целью.

К маю 1954 команда из 4 человек занимала помещение на 19 этаже в боковом крыле IBM building. В цокольном этаже стоял IBM 701, на нём покупатели в очереди на машину могли тестировать свои программы. Ночное время было отдано команде. Первый код на Фортране заработал в режиме интерпретации 20 сентября 1954.

10 ноября 1954 появился драфт спецификации: Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN. Основные фичи этого драфта:

  • двухсимвольные имена переменных, начинающиеся на i…n – целые 15 бит со знаком, остальные – FP

  • 1…3-мерные массивы

  • подстрочные индексы записываются как A(3*I+N,M) или A(N(I,J), M(K,L)), скобки выражений внутри индексов запрещены

  • функции синтаксически отличаются от переменных тем, что имеют имя от 3 символов длиной

  • номера строк называются «номер формулы»

  • синтаксис циклов DO и ветвлений IF – в зачаточном состоянии

  • уже есть go to и ввод-вывод

  • никакой обработки ошибок, с замечанием, что профессионал, мол и так поймёт, что сломалось

  • есть явный синтаксис для указания компилятору на часто используемый код, для оптимизации.

В целом это мало похоже на знакомый Фортран, в частности, операторных скобок ещё не придумали, и поэтому цикл выглядел, например, так: DO 10, 15, 25 I=4, 20, 2. Это значит «исполняй формулы с 10-й по 15-ю, начни с i=4, шаг 2, закончи на i=20 и потом перейди к формуле 25».

Fortan I

Полностью работающий компилятор очень близкий к первой спецификации появился в конце 1956, Programmer’s Reference Manual к нему прекрасно написан и свёрстан, и там всего 50 страниц с широченными полями.

Основные синтаксические отличия – 6-символьные переменные, ещё более ужасный чем в драфте синтаксис для IF, зато улучшенный для DO, и богатый ввод-вывод разных сортов. Операторных скобок всё ещё не было.

Тем не менее под капотом Fortran I был совершенно удивительный для тех времён шестистадийный оптимизирующий компилятор. Сам Бэкус о нём вспоминал так:

Это было волнующее время. Когда мы начали анализировать фрагменты машинного кода, порождённого компилятором, мы были поражены изменениями в порядке вычислений и оптимизации индексных операций. Мы бы никогда не сделали таких оптимизаций вручную.

К апрелю 1957 компилятор перешел в стадию готовности к распространению, и было принято передать его всем примерно 30 пользователям IBM 704. Один комплект распространения состоял из ~2000 перфокарт, 5 кило Фортрана.

Первые пользователи были в восторге, оно сразу работало, а если не работало – сообщения об ошибках были на человечьем языке: Computers&Automation №11 1971, p17.

К концу 1957 было продано ~30 машин IBM 704, и более половины из них использовали Фортран минимум в половине задач.

Fortran II

Вторая версия вышла через год после первой. Она содержала исправления ошибок – и две новых супер-фичи: подпрограммы и функции. То-есть функциональные выражения-однострочники типа DIST(X,Y)=SQRT(X**2+Y**2) были и в Фортране I, но многострочные функции появились только в версии II. Правда, без рекурсии на ближайшие 2–3 года.

На заднем плане – книжка Митчелл. https://comic.browserling.com/49
На заднем плане – книжка Митчелл. https://comic.browserling.com/49

Примечательно, что дополнительный код компилятора для новых фич практически в одиночку реализовала Grace E. Mitchell, по совместительству автор прекрасной книги Programmer’s Primer for Fortran, расширенного руководства к языку. Бэкус с удивлением вспоминал, что она сдала весь код раньше графика, чего раньше там не случалось, и всё сразу заработало.

Увы, в Фортран II операторные скобки и нормальный IF так и не появились. Тем не менее, к началу 1959 более половины машинного кода для 66 установленных IBM 704 было сгенерировано компилятором Фортрана.

Fortran IV и 66

Разработка следующей версии началась в 1961, по запросам пользователей. Предполагалось убрать машинно-зависимые фичи, добавить логический тип данных и булевы выражения в IF, и выпускать компиляторы сразу под несколько видов несовместимых на уровне машинного кода компьютеров IBM.

В том-же 1961 появилось две первых реализации Фортрана под не-IBM машины: UNIVAC и Rand. Фортран набирал популярность с такой скоростью, что к 1962, когда Fortran IV наконец вышел для IBM 7090, существовало уже 8 компиляторов под разные не-IBM платформы. Ещё через год их было уже 40.

В 1962 был создан комитет по стандартизации Фортрана при ASA, само по себе беспрецедентное событие – языки программирования никто до этого не стандартизировал, и было вообще непонятно, как это делать. Тем не менее в 1966 Fortran IV стал национальным стандартом Fortran 66. Занятно, что строкового типа данных в стандарте ещё нет, но зато есть Hollerith type, специальный грязный хак для уталкивания букв в числовые константы.

Нормальный IF (с ELSE) также не завезли, но в условии IF уже можно писать логические выражения.

К концу 60-х Фортран был абсолютно везде, и даже – о ужас – в 1968 был назван разработчиками Бейсика устаревшим языком! А в 1971, когда примерно 90% мат. расчётов считали Фортраном, Rober F. Rosin объявил, что Фортран и вовсе мёртв. Так всегда бывает с продуктами, доминирующими на каком-то рынке: кто-нибудь непременно считает их мёртвыми просто потому что они ему не нравятся.

Fortran style

https://onionesquereality.wordpress.com/2014/01/29/the-evolution-of-programming-languages/

Нелюбовь академического сообщества к Фортрану, в общем, была оправдана. Операторные скобки так и не появились – так что никакого структурного программирования, рекурсия была нечастой опцией, а Hollerith constants вместо текста и вовсе были просто уродливыми.

Стандарт Fortran 77, опубликованный в 1978, прикрыл самые страшные огрехи – появились строки, ELSE и всякое такое. Но в общем уже было понятно, что из ниши высокопроизводительной математики Фортран не выберется. Но и никуда не исчезнет, потому что в том же 1978 Фортран 77 с некоторыми дополнениями был стандартизирован министерством обороны.

Примечательно, что зло от GO TO в высокоуровневых языках уже было в целом хорошо осознанно комьюнити, и в качестве шутки предлагалось вовсе запретить букву O в Фортране, ну чтобы не путали с 0 и чтобы GO TO даже написать было нельзя.

Характерный стиль написания софта на Фортране породил в 70…80-х сразу несколько мемов, самый известный из которых – «Настоящий программист может писать Фортран-программы на любом языке».

В СССР

К 1978 Фортран в СССР укоренился настолько, что в доме моих родителей появилась книжка Карпова про Фортран. Какими судьбами она там оказалась, я выяснить не смог – программированием никто не интересовался.

Эта книжка случайно попала мне в руки лет через 9–10 практически нетронутой – некоторые страницы были не разрезаны. Английский нам преподавали со 2 класса, всё было понятно – только вот применить это было совершенно негде. Зато когда мне через 2 года попался Бейсик и Агат-8 в компьютерном кружке при Дворце пионеров, первая программа написалась за 10 минут.

В культуре

Главное наследие Фортрана – подход к разработке компиляторов: хороший компилятор должен выдавать быстрый код. По этому показателю Фортран уделывал все конкурирующие разработки минимум до конца 60-х, на Фортран равнялись все.

Второе главное наследие: подход к разработке софта. Техники программирования на Фортране (вернее, неудобства) сыграли огромную роль в популяризации идеи «структурного программирования» и отказе от GOTO.

Конечно, при таком распространении в инженерной среде 60…70-х, Фортран неизбежно стал просачиваться «в народ», в массовую культуру. Музыка, компьютерное искусство, мультипликация, даже настольная игра была.

В 1978 MIT выпустил и вовсе книжку-раскраску по Фортрану, выдержала 6 переизданий. В СССР была выпущена аж полноценная серия образовательных комиксов для младших школьников, сразу единой книгой почти на 200 страниц, «Энциклопедия профессора Фортрана» – жаль поздно, в 1991.

Ещё, согласно Forebears на Земле живёт несколько десятков людей по фамилии Фортран.

Вы даже можете увековечить Фортран в мебели, тканью для диванных подушек под названим Fortran in Woodland. На ней при некотором воображении можно разглядеть узор из заглавных F.

И вообще, Фортран – это астероид, открытый в 1985. Он с нами очень надолго.

Ну и самое главное: именно благодаря Фортрану мы точно знаем, что GOD is REAL.

Комментарии (53)


  1. vilgeforce
    05.06.2023 20:21
    -7

    "давно культурный феномен" - но, похоже, феномен крайне малоизвестный...


    1. DustCn
      05.06.2023 20:21
      +10

      Нормально известный по крайней мере в Cloud/HPC.


      1. vilgeforce
        05.06.2023 20:21
        +4

        Я знаю что такое фортран, сферы его применения, и т.д. Как культурный феномен - по нулям, даже про Cobol как-то больше баек и шуток


        1. qw1
          05.06.2023 20:21
          +8

          "Энциклопедия профессора Фортрана"
          Найдите такое про Кобол ))


          1. ermouth Автор
            05.06.2023 20:21
            +1

            Ну как, 12 колоний Кобола же в BSG. Там, правда, не тот Кобол )


  1. forthuse
    05.06.2023 20:21
    +7

    Поиск русского назвния Фортран языка на Github показывает немного результатов, в отличии от Fortran слова на Github

    Fortran находится на 47-месте в рейтинге решённых задач на площадке rosettacode.org (на пару строчек выше чем Форт (Forth)

    По текущему индексу TIOBE Fortran находится на 15-ом месте

    P.S. Фортран язык был первым языком на радиотехнических специальностях вузов СССР и преподавался с первого семестра (на ЕС СМ в диалоговом терминале), Поддержки исполняемых массивов из стандарта Fortran77 в нём не нашлось. В синтаксисе Фортран можно было переходить по одному из трёх ветвлений (>0 0 <0)


    1. ermouth Автор
      05.06.2023 20:21
      +1

      В синтаксисе Фортран можно было переходить по одному из трёх ветвлений (>0 0 <0)

      Удивительнее всего, что в первоначальном драфте из 1954 IF был куда нормальнее, то есть были знаки =, > и >=, ну и две ветки (номера строк), по которым переходить. Эта конструкция, как и GO TO, были заимствованы из работы одного из коллег Цузе.

      Но такой синтаксис требовал добавления нового знака >, с этим были проблемы, и IF получился из трёх веток в зависимости от знака выражения в скобках.


      1. kekoz
        05.06.2023 20:21

        Вообще-то логический IF (к упомянутому арифметическому) появился в FORTRAN IV (который и стал стандартом 66) и без всех этих знаков.

        .NE., .EQ., .LT., .LE., .GT., .GE.
        .NOT., .AND., .OR.


        1. ermouth Автор
          05.06.2023 20:21

          Так у меня ж написано, прямо в главке о Фортран IV:

          Нормальный IF (с ELSE) также не завезли, но в условии IF уже можно писать логические выражения.


          1. kekoz
            05.06.2023 20:21

            Пока вникал в комментарий и строчил свой — уже успел забыть :)


        1. omxela
          05.06.2023 20:21

          .NE., .EQ., .LT., .LE., .GT., .GE.

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


          1. kekoz
            05.06.2023 20:21
            +1

            А я, пока писал тот комментарий, поймал себя на мысли, что тоже использовал бы такую форму, если бы мне сегодня пришлось писать на Фортране. Но я с ним расстался более 30 лет назад, и, признаться, ни разу не пожалел.


    1. economist75
      05.06.2023 20:21
      +1

      Библиотека Numpy (Python, Pandas) с 50 млн. загрузок в месяц (это много) - использует в т.ч. Fortran. Быстрая матричная арифметика, востребованность API, огромное комьюнити - то что нужно для вечной жизни технологии и языка.


    1. oleg_rico
      05.06.2023 20:21
      +1

      В восьмидесятых во всех технических вузах союза фортран преподавали.

      Именно на нём я в своё время написал программу для расчёта эпюр и вся моя группа была у меня безмерно благодарна:)


      1. mepMuHamop
        05.06.2023 20:21
        +1

        а я эпюры писал на БЗ 34

        хотя наверно фортране было бы п3????


        1. Writer4
          05.06.2023 20:21
          +1

          О, Б3-34! У меня до сих пор лежит работающий. Иногда включаю его поностальгировать.


        1. oleg_rico
          05.06.2023 20:21

          На бз не распечатаешь матрицу. А тут каждый подставил значиния своего курсовика, распечалал листочек и пошел сдавать зачет:)


  1. victor_1212
    05.06.2023 20:21

    > В 1950, уже выпустившись, новоиспечённый математик волею случая прогуливался мимо 590 Мэдисон, IBM building ... – его звали Джон Бэкус – заинтересовался и зашёл посмотреть, попросил поговорить с шефом, решил две задачки – и был принят на работу программистом SSEC.

    > Через год Бэкуса перевели на только что появившуюся IBM 701, писать софт для расчёта траекторий баллистических ракет. Занятие это он очень не любил и искал способ ускорить

    получается Бэкуса перевели на "только что появившуюся 701" примерно в 1951, хотя IBM начала поставлять 701 в 1953 году,

    заметим "писать софт для расчёта траекторий баллистических ракет" Джон Бэкус не только не любил, но просто этим не занимался, контора где он работал (IBM Watson Scientific Computing Laboratory) в то время занималась расчетом эфемерид Луны типа на 20-30 лет вперед для астрономии, навигации и пр.,

    >IBM 701 при этом расходился как горячие пирожки (аж 19 машин за два года),

    их всего 19 было сделано, убогая машина с памятью на катодных трубках, для примера 704 с памятью на сердечниках было продано примерно 136


    1. ermouth Автор
      05.06.2023 20:21
      +4

       "только что появившуюся 701" примерно в 1951, хотя IBM начала поставлять 701 в 1953 году

      Правительство разрешило любые компьютеры продавать на гражданку только в 1951, проект существовал и до этого, но был засекречен и не предназначался на продажу, не был продуктом. Анонсировали уже готовый к производству 701 в 1952. Поставлять начали в 1953, под предзаказы.

      не только не любил, но просто этим не занимался

      Even though he was a programmer—a newly minted title even he didn’t understand at the time—Backus said he “didn’t like writing programs, and so, when I was working on the IBM 701 (an early computer), writing programs for computing missile trajectories, I started work on a programming system to make it easier to write programs.” It would be called “Speedcoding.”

      https://www.ibm.com/ibm/history/ibm100/us/en/icons/fortran/

      занималась расчетом эфемерид Луны

      Эфемериды Луны он считал на SSEC, это было его первое задание в фирме, он сам про это рассказывал в позднем интервью.


      1. victor_1212
        05.06.2023 20:21

        > проект существовал и до этого, но был засекречен и не предназначался на продажу, не был продуктом.

        историю 701 знаю неплохо, "the defense calculator", первая поставка в Los Alamos 1953, leasing порядка $15k в месяц, продукт конечно, такой же как более серьезная машина Q7, вопрос был к выражению "как горячие пирожки", это вероятно больше к другим моделям подходит

        >он сам про это рассказывал в позднем интервью.

        здесь Вы правы, Watson Lab с 1953 года стала многим другим заниматься

        ps

        стандартное определение -

        "A product is any item or service you sell to serve a customer's need or want"


  1. andreishe
    05.06.2023 20:21
    +3

    В СССР была выпущена аж полноценная серия образовательных комиксов для младших школьников, сразу единой книгой почти на 200 страниц, «Энциклопедия профессора Фортрана» – жаль поздно, в 1991.

    Вот только к языку она не имела никакого отношения.


    1. ermouth Автор
      05.06.2023 20:21
      +2

      Вот только к языку она не имела никакого отношения.

      Как и астероид, и синти-поп группа, и робот-мизантроп из будущего. В том и поинт.


  1. shaggyone
    05.06.2023 20:21
    +2

    Фортран это и правда культурное явление.

    Помню в конце 90-х нам в вузе преподавали Фортран 77, причём один семестр лабораторные мы делали на древнючих терминалах подключенных к машине с каким то не менее древним юниксом.

    Язык в то время уже странный, строки шириной на 80 символов -- количество знаков в перфокарте, первые 8 символов -- метка строки для переходов. Довелось делать интерфейс для программы написанной. В readme.txt было прекрасное, на мой взгляд, замечание, что алгоритм написанный автором на другие языки программирования не переносится. Я предполагаю, что автору очень понравилось, что в Фортран можно все вычисления делать без явных циклов, просто используя массивы в выражениях (сейчас это скорее норма, да и тогда были языки, где можно так делать, но возможности были не сильно не на слуху).

    На 3-м курсе делал лабораторные по численным методам, опять же на Фортране, использовал уже Фортран 90, который по синтаксису напоминал поздние Бэйсики. Блоки, отступы для читабельности и т.п. Делал отображение графиков, смеха ради, само отображение делал на Делфи, скомпилировал dll'ку и подцепил к Visual Fortran'у.


    1. FlashHaos
      05.06.2023 20:21

      В 2010 году нам в вузе преподавали все тот же Фортран 77. Видимо, пока не уйдет последний старец, Фортран будет здесь.


    1. vadimk91
      05.06.2023 20:21

      Удивительно, что Фортран столько времени ещё преподают. Я учился в вузе в конце 80х - начале 90х и знал только одного истинного фаната Фортрана, при каждой встрече в институте он мне доказывал, что Фортран намного лучше, чем Бэйсик, которому и учили на занятиях (я правда не возражал). На кафедре ИВТ (где я тогда подрабатывал) в почёте был Паскаль, в том числе и за возможность включать вставки ассемблерного кода, это было эффективно для работы с периферийным железом.


      1. DvoiNic
        05.06.2023 20:21

        для инженерных расчетов его, в принципе, хватает. Правда, стиль программирования он калечит знатно.


      1. forthuse
        05.06.2023 20:21

        Del


    1. mepMuHamop
      05.06.2023 20:21

      странно ????

      в 85 нам преподавали фортран

      а уже в 89 только паскаль и запрещали сдавать фортраном????


  1. IvanSTV
    05.06.2023 20:21

    в пошлом году у дочки в школе подслушал разговор учителя с завучем относительно планируемого открытия кружка по Фортрану заради олимпиад (физматшкола). Прям захлестнуло ностальгией - первая книжка по программированию, которую прочитал, была "Мак-Кракен Д., Дорн У. Численные методы и программирование на Фортране"


    1. kekoz
      05.06.2023 20:21
      +2

      Привет тебе от них, стоят у меня на полке :)


      1. Vytian
        05.06.2023 20:21

        В конце 80 вытащил из кучи макулатуры в пункте приема. Числа по ней учил, жаль, уже на информатике в школе забили Бейсиком Паскалем, а в универе уже Борланд Сями.


        1. IvanSTV
          05.06.2023 20:21

          Охреневшие у вас люди в конце 80-х макулатуру сдавали. В конце 80-х отец был единственным из своего отдела, кто эту книгу смог купить в личное пользование. Остальные в библиотеку ЦАГИ на нее в очередь писались. Или в читальный зал - пройди пешком 2 остановочки от самой дальней проходной, и сиди, выписывай команды и конструкции. А я, как белый человек, мог писать прям за компом, держа книгу на коленях.


  1. vvbob
    05.06.2023 20:21
    +6

    К 1978 Фортран в СССР укоренился настолько, что в доме моих родителей появилась книжка Карпова про Фортран. Какими судьбами она там оказалась, я выснить не смог – программированием никто не интересовался.

    Элементарно - в СССР многие книги были дефицитом, и бывало так, что купить редкую книжку можно было только с каким-то "довеском" в виде плохо продаваемой другой книги. У меня так появилось много довольно странных для нашей семьи книг, которые мне тем не менее нравились больше тех дефицитных, ради которых они и были куплены. Так, например, у меня в руках оказались шикарные книги про астрономию, энергетику, устройство ДВС, книжка про написание собственного компилятора и еще много похожего (мама очень много книг покупала :))


    1. funca
      05.06.2023 20:21

      с каким-то "довеском" в виде плохо продаваемой другой книги.

      Может это был способ вытащить граждан из своих информационных пузырей?)



      1. vvbob
        05.06.2023 20:21
        +2

        Скорее выполнение каких-то там KPI, надо было продавать, а книги брать не хотят, вот и продавали в нагрузку.


    1. sim2q
      05.06.2023 20:21

      О, это же речь про продуктовые заказы!
      Когда вместе с дефицитом, например - чай со слоником, растворимый кофе и тд шло что-то не очень популярное, крупы, макароны(?) (извините - забыл уже:)


      1. vvbob
        05.06.2023 20:21

        Ну, что-то подобное и с книгами было, по крайней мере там где я жил, мне так довольно много любопытной литературы досталось, кстати частично и программированием я занялся из-за одной из таких книжек. Не помню уже название - там подробно описывалось как работать с программируемыми калькуляторами и "бытовыми компьютерами" - Бейсик и куча простых программ на нем. Я не имея компьютера, тогда массу программок написал в тетрадке, потом когда дорвался до настоящего компа, долго их набивал и отлаживал, очень меня это дело увлекло тогда.


    1. DvoiNic
      05.06.2023 20:21

      "книжка про написание собственного компилятора" — это какая? название не вспомните?


      1. vvbob
        05.06.2023 20:21

        Ох, не помню уже, у родителей лежит дома, но они от меня за 1000 км и сами не найдут. Книжка отличная, правда довольно академичная, там автор вводит свой ЯП для описания алгоритмов и там не только компиляторы, вспомнилось. Сначала описывается написание простого однопроходного ассемблера, потом многопроходного, потом уже компилятор для чего-то вроде Паскаля, и в конце простая ОС. Но книга старая, поэтому ОСь там что-то вроде старой DOS или чего-то такого.. Мне книга нравилась, правда из-за довольно абстрактного изложения и малого моего опыта в программировании я тогда ничего из описанного не повторил.

        Если не забуду, в следующий раз когда буду у родителей посмотрю название.


        1. DvoiNic
          05.06.2023 20:21

          ок, буду признателен. Просто примерно в те же годы интересовался темой, но как-то с литературой было туго, две книжки — одна ФиСовская (автор — Хантер), другая МИРовская, и отсиненые статьи на английском, которые заказывали не помню уже как. Ахо и Ульман формально тоже были изданы еще году в 1984, но ни в одной библиотеке в городе их почему-то не было


          1. vvbob
            05.06.2023 20:21

            спасибо @forthuse получилось найти по обложке
            https://coollib.net/b/538492-leland-l-bek-vvedenie-v-sistemnoe-programmirovanie/read


            1. DvoiNic
              05.06.2023 20:21

              ага, спасибо, это как раз упомянутая мной выше МИРовская. Покупал "по открыткам" (в сентябре-октябре по каталогам издательств заполняли почтовые карточки, по ним книжный магазин делал заказ в издательство, и когда/если книги поступали — приходила эта открытка.)


        1. forthuse
          05.06.2023 20:21
          +1

          Если запомнилась обложка книги, то можно её поискать через поиск книг по изображению на Google
          Фортран книга (если она была с содержимым на Фортран языке)


          1. vvbob
            05.06.2023 20:21
            +1

  1. klimkinMD
    05.06.2023 20:21

    "Настоящие программисты не используют Паскаль", -- не прекращает радовать!


  1. saipr
    05.06.2023 20:21
    +5

    В 1986 году мне посчастливилось выпустить в издательстве "Финансы и статистика" (Москва) книгу "Комплексирование программ в ОС ЕС":
    image


    Четыре главы в этой книге были посвящены комплексированию модулей, написанных на Фортране, с модулями, написанными на Ассемблере и ПЛ/1. Мне гравилось программировать на Фортране.


    1. kekoz
      05.06.2023 20:21

      А мне не нравилось, но пришлось много :)


      В РАФОС/ОСРВ (RT11/RSX11M) ABI был настолько логичен и строен, что вряд ли бы кому-то пришло в голову писать об этом целую книгу — пары страниц было достаточно.


      1. saipr
        05.06.2023 20:21

        пары страниц было достаточно.

        Кстати, для описания языка Си Эндрю Таненбауму потребовалось всего с десяток страниц.


    1. ermouth Автор
      05.06.2023 20:21
      +1

      Крутецкая книжка, спасибо!


      1. saipr
        05.06.2023 20:21

        Старался! Когда она вышла, то моя попытка прикупить несколько экземпляров на подарки, не увенчалась успехом — раскупили всё чуть ли не в первый день. Спасибо за оценку.


  1. shuhray
    05.06.2023 20:21

    В первой половине 80-х учил Фортран, Алгол и Пи-эль 1. Однако, диплом писал уже на функциональном языке ГАРФ, придуманном в ВИНИТИ Ильёй Ханаановичем Шмаиным. Вот какой-то документ по ГАРФ (в формате doc), но не уверен, можно ли по нему что-то понять.

    https://www.mediafire.com/file/h303jm3czojl17x/GARF-1_ed%2526comm_VB_Jan06.DOC/file


  1. mr-garrick
    05.06.2023 20:21
    -1

    Я не понял какая связь всего текста с обозначенными в лиде чернокожими женщинами. Как говорится: "тема ... не раскрыта". Поясните, пожалуйста.