Продолжаем наш ретроспективный цикл о тех советских разработках, которые стали историей и за которые, как принято говорить — “не стыдно”. В предыдущих постах цикла мы уже затрагивали разработку языков программирования в СССР и в этом посте хотели остановиться на ней подробнее. Несмотря на достаточно скромные достижения в этой области, разработчики языков и трансляторов знали моменты триумфа, а фундаментальный вклад советских ученых в развитие программирования ощутим и сегодня. Под катом немного о языках и трансляторах, разработанных в Стране Советов в 50-е — 60-е годы, а также об их создателях.

Сгенерировано Midjourney
Сгенерировано Midjourney

50-е — на заре новой эпохи

Уже к 50-м, как мы писали в первом посте цикла, стало очевидно отставание СССР от США, как в создании вычислительной техники, так и в распространенности её применения. Это не могло устроить ни амбициозных советских ученых, ни беспокойных руководителей советского государства, одержимых идеей “догнать и перегнать”. Геополитическое противостояние сыграло на руку пионерам советского компьютеростроения и программирования. Именно тогда советская наука, а затем и весь мир начал узнавать фамилии Ляпунова, Глушкова, Лебедева, Ющенко, Камынина.  

Алексей Ляпунов и “программирующая программа”

Известно, что, до появления привычных нам текстовых языков, программирование было крайне непростым процессом, для которого использовались только машинные коды. Ситуация изменилась коренным образом после осознания того, что программу следует понимать как последовательность этапов обработки данных, что открывало возможности для формализации кодирования в виде команд. Одним из первых, кто предложил подобное понимание, был Алексей Ляпунов. Его, наряду с Конрадом Цузе и Джоном Мокли причисляют к авторам операторного метода построения языка программирования и концепции языков высокого уровня.

Алексей Ляпунов и советские военные
Алексей Ляпунов и советские военные

Под руководством Ляпунова на механико-математическом факультете МГУ был создан один из первых трансляторов в мире, который в 50-х назвали “программирующая программа”, она же ПП-1. Успешные испытания ПП-1 датируют 1954-м годом. После чего другой пионер советской информатики А. Китов приглашает Ляпунова продолжить работы в свежесозданном Вычислительном центре № 1 Министерства обороны СССР (ВЦ № 1 МО СССР). Вероятнее всего, для предстоящих работ с ЭВМ “Стрела”, которая в 1956-м году будет установлена в центре.

Уже в 1955-м под руководством Ляпунова в СССР появляется ПП-2, следующая версия транслятора с загрузчиком, отладчиком и библиотекой стандартных процедур. Насколько мне известно, ПП-2 на момент появления был единственным транслятором в мире, обладающим такими возможностями.

Ющенко, Королюк и адресный язык программирования

Параллельно под руководством Лебедева, а затем Глушкова в АН УССР Екатериной Ющенко и Владимиром Королюком создаётся язык прогрраммирования высокого уровня — APL — адресный язык программирования (не следует путать с A Programming Language, разработанным в 1960-х годах Кеннетом Э. Айверсоном). 

Екатерина Ющенко и Владимир Королюк
Екатерина Ющенко и Владимир Королюк

Первая версия языка появляется уже в 1955 году, основная часть работ завершается в 1958-м. Особенностью языка стало использование указателей, в основу которых легли математические принципы, описанные математиком Колмогоровым. PL/I (Programming Language One), Гарольда Лоусона, созданный для IBM, где будут повторно ”впервые” использованы указатели (опубликован в 1965-м, стандартизирован в 1976-м). Для адресного языка, который создавался, в первую очередь, для работы с ЭВМ “Киев”, также будут созданы трансляторы. 

Трансляторы Ершова — первый труд по автоматизации программирования

В это же время для БЭСМ (Большой электронной счетной машины) создает свой транслятор ещё один легендарный основоположник советского программирования, ученик Ляпунова, Андрей Ершов.

Андрей Ершов (слева в очках) в Аудитории
Андрей Ершов (слева в очках) в Аудитории

Он независимо от коллег за рубежом применяет в ПП БЭСМ принцип «адресной кодировки» для объектов в трансляции. Принцип адресации значительно сокращает поиск данных. В 1957-м Ершов использует в качестве способа непрерывного поиска данных по ключу функцию расстановки. Исследует статистические свойства функции и применяет её для сокращения количества команд.

В 1958 году печатается труд Ершова «Программирующая программа для быстродействующей электронной счетной машины», ставший первой в мире публикацией по автоматизации программирования. Крайне редкий случай — книга издается и за железным занавесом. Советский тираж монографии в 4K копий раскупают за 4 недели. 

60-е — неравная конкуренция и время Рефала

Активное развитие разработки собственных языков программирования в СССР внезапно почти завершается в 1960-х. Всё дело в том, что, несмотря на преимущественно закрытый характер работы советских программистов, они всё-таки обмениваются знаниями и опытом с зарубежными коллегами. Языки, трансляторы, методологии также не способны быть абсолютно закрыты комьюнити разработчиков. В результате активного обмена знаниями и опытом, в СССР начинают применять западные ЯП. И в первую очередь, Фортран. 

Автор Fortran Джон Бэкус и первая страница Fortran Manual
Автор Fortran Джон Бэкус и первая страница Fortran Manual

Отчасти, переход на Fortran обусловлено повсеместным распространением перфокарт. Как известно, структура Fortran-программ была адаптирована для ввода данных с перфокарт, что достигалось некоторыми удобными для такого ввода данных свойствами. Например, расположение меток с 1-й по 5-ю колонку, с 7-й по 72-ю располагался сам текст программы или комментария. Кроме Fortran использовался Algol, а позже даже COBOL для применения в народном хозяйстве, торговле и статистике.

Турчин и Рефал

Но не все советские программисты бросили создание собственных, аутентичных языков программирования. Так в 1960-е, на фоне мейнстримного увлечения фортраном, выдающийся советский, а впоследствии американский физик и кибернетик Валентин Турчин, создает Рефал — «рекурсивных функций алгоритмический» — один из первых в мире функциональных языков программирования. Язык был ориентирован на проведение символьных вычислений, в частности, обработку строк, перевод на различные искусственные и естественные языки, применение для создания многослойных нейронных сетей и других систем искусственного интеллекта. Согласно Вики, “Соединяет в себе математическую простоту с практической направленностью на написание больших и сложных программ.”

Валентин Турчин
Валентин Турчин

Рефал стал одним из самых оригинальных и единственным из советских ЯП, получивших широкое распространение. Так “рефал-функция” представляла собой набор предложений, состоящих из образца и шаблона. На вход функции подается некое выражение, а вычисление представляет собой последовательное сопоставление выражения с образцами, взятым из первого, второго и последующих предложений. Когда сопоставление удаётся, основываясь на шаблоне из того же предложения, формируется результат функции, представляющий собой новое рефал-выражение. В классическом рефале, когда сопоставление не происходит, фиксируется ошибка, а программа аварийно закрывается. В современных версиях языка эту особенность удалось заменить на постоянное порождение неуспеха функции. 

В случае с Рефалом, семантика языка, возможно впервые в мире, описывается в терминах виртуальной машины, которые Валентин Турчин называл «рефал-машина» или «рефал-автомат». Такая машина имеет некое поле фиксации, в которое может попадать произвольное рефал-выражение, не содержащее рефал-переменных.

Язык Турчина был прорывом, особенно для уже импортозависимого в отношении ЯП СССР. Но неудобного ученого это не спасло. Критическое отношение физика и сатирического писателя (соавтор и редактор бестселлеров “Физики шутят” и “Физики продолжают шутить”) к советской действительности, отраженное в его публичных высказываниях поставило крест на его работе в СССР. Турчин постепенно стал восприниматься советским государством, если не как открытый враг, то как неудобный диссидент. В связи с чем он был вынужден покинуть Советский Союз и продолжил развитие созданной им работы в США. После опалы и эмиграции Турчина в среде советских ученых был популярен анекдот: 

“— Слышали, вышла новая книга Турчина?

— Какая?

— “Физик дошутился”

Так для СССР оборвалась история одного из самых перспективных ЯП того времени.

В качестве заключения

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

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


  1. Gekus
    28.07.2023 16:17
    +1

    даже Kobol для применения в промышленности
    ??? Cobol (common business-oriented language), не?


    1. smirnov_dm Автор
      28.07.2023 16:17

      Имелись ввиду промышленные предприятия, но не промышленные процессы. Кроме того использовали в торговле. Перефразирую, чтобы было понятнее. Спасибо.


      1. sepuka
        28.07.2023 16:17
        +4

        Не Kobol, а COBOL


        1. smirnov_dm Автор
          28.07.2023 16:17

          Спасибо, поправили.


    1. crypto_hubrum
      28.07.2023 16:17
      +3

      На промышленных предприятиях существует, например, бухгалтерия? Не?


      1. GenGen
        28.07.2023 16:17

        Для бухгалтерии был наш язык программирования "ЯМБ" (Язык Машин Бухгалтерских). Столкнулся с ним в 80-е, нужно было писать для бухгалтерии софт. Та еще головоломка, но по своему прикольный ЯП.


  1. gatoazul
    28.07.2023 16:17
    +9

    А где примеры программ на этих языках, по которым их можно оценить?


    1. smirnov_dm Автор
      28.07.2023 16:17
      +4

      Транслятор Ляпунова использовался для создания программ в т.ч. на ЭВМ "Стрела". Этот компьютер работал в ЦУП, обеспечивал советскую космическую программу в 60-х.


    1. smirnov_dm Автор
      28.07.2023 16:17
      +5

      На адресном ЯП реализовали всё ПО для ЭВМ "Киев", в т.ч. системы АСУ ТП, на нём же Михаил Шлезингер писал первые советские нейросети, которые согласно воспоминаниям ещё в 60-х научились распознавать геометрические фигуры. Предположительно первая в мире СУБД реляционного типа "Автодиректор" также была написана на адресном ЯП. Конструкции адресного ЯП сейчас используются в C++.


      1. PereslavlFoto
        28.07.2023 16:17
        +3

        Но что же стало с программами на этих языках, где же примеры таких программ?


        1. smirnov_dm Автор
          28.07.2023 16:17
          +1

          На гитхабе, полагаю, их нет) Хотя на рефале, может, и есть...


    1. smirnov_dm Автор
      28.07.2023 16:17
      +1

      Рефал хорошо работает с обработкой данных, при создании систем ИИ, пользовался ограниченной популярностью в США в 80-х. Турчин много издавался там, одна из самых известных статей в США: V.Turchin, The concept of supercompiler, ACM Transactions on Programming Languages and Systems, vol. 8, pp.292-325 (1986). 


  1. vassiliy_kiryanov
    28.07.2023 16:17
    +3

    Жаль, не упомянули очень красивую "Рапиру".

    И вспомнить ДССП (советский Forth) для троичных Сетуней тоже стоило-бы.


    1. smirnov_dm Автор
      28.07.2023 16:17
      +1

      Это первая часть, будет ещё вторая.)


    1. SFelix
      28.07.2023 16:17

      ДССП под PDP-11 вроде делался?


      1. vassiliy_kiryanov
        28.07.2023 16:17
        +1

        Я говорил о той ДССП, которая делалась для ЭВМ с двухстековой архитектурой. Вот для этих: https://habr.com/ru/articles/318468/ для них Forth-архитектура была "родной".

        Если же поглядеть на публикацию https://computer-museum.ru/histsoft/dssp_sorucom_2011.htm

        то там сказано, что ДССП переносилась, в том числе и на ЭВМ Электроника НЦ80, которые были архитектурно совместимы с pdp-11.



  1. BobovorTheCommentBeast
    28.07.2023 16:17
    +2

    Оч не хватает примеров кода.


    1. smirnov_dm Автор
      28.07.2023 16:17
      +1

      Больше всего по Рефалу, вот пример из Вики написанный на Рефал-5 (поздний диалект): на входе строка данных, в виде десятичного представления натурального числа N, после вычисления число Фибоначчи с номером N:

      $ENTRY Go
      {
           = <Prout <Symb <FN <Numb <Card>>>>;
      }
      FN
      {
      /* Вызов вспомогательной функции, реализующей остаточно-рекурсивный цикл. */
      s.Number = <DoFN s.Number 0 1>;
      }
      /*
      Функция реализует остаточно-рекурсивный цикл.
      Инвариант цикла <DoFN s.Counter s.Current s.Next>
      s.Counter -- число оставшихся итераций.
      s.Current -- число Фибоначчи, соответствующее текущей итерации.
      s.Next -- значение числа Фибоначчи на следующией итерации.
      */
      DoFN
      {
      0 s.Current s.Next = s.Current;
      s.Counter s.Current s.Next =
      <DoFN <Sub s.Counter 1> s.Next <Add s.Current s.Next>>;
      }

      Синтаксис вполне можно понять


  1. catatcern
    28.07.2023 16:17
    +1

    А еще был русский Алгол - "Альфа" назывался в Ак.Городке Н-ска


  1. avost
    28.07.2023 16:17
    +21

    Особенностью языка стало использование указателей, в основу которых легли математические принципы, описанные математиком Колмогоровым

    А можно это как-то пояснить? Какие математические принципы Колмогорова легли в основу указателей? Ведь указатель - естественный (и единственный) способ доступа к памяти в низкоуровневом программировании. Почему для переноса идеи в язык высокого уровня потребовался аж целый Колмогоров? Или тут имеется в виду что-то иное? Хорошо было бы увидеть публикацию, проливающую свет на это.

    Рефал — «рекурсивных функций алгоритмический» — один из первых в мире функциональных языков программирования.

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

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

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

    Так для СССР оборвалась история одного из самых перспективных ЯП того времени.

    Удивляют вот эти "догоним и перегоним" и "ссср родина слонов" заявления. Ну, какой он перспективный? Так-то он прожил долгую жизнь и известен многим в виде языка конфигов сендмейла. И те, кто застал этот, простите, кошмар хорошо помнят, что основной способ совладать с конфигом сегдмейла было использование кодогенерации с помощью макропроцессора m4. Не знаю никого, кто бы скучал по "программированию" конфигов сендмейла :)

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


    1. smirnov_dm Автор
      28.07.2023 16:17

      Спасибо за коммент. Про экспертные системы, согласен, но коннекционисты, даже на АПЛ работали за неимением чего-либо более перспективного. Шлезингер и Ивахнерко 4-х слойную нейросеть ещё 1964-м реализовали, если верить источникам имевшим отношение к АН УССР. Про Колмогорова немного позже отвечу.


      1. avost
        28.07.2023 16:17
        +4

        Шлезингер и Ивахнерко 4-х слойную нейросеть ещё 1964-м реализовали,

        Вот это, конечно, интересно. Книга Розенблатта переведена в 65-ом (но вышла, да в 62). И четырёхслойность перцептрона - это немного лукавство. Первый и последний слои использовались фактически как ввод-вывод, первый - для нормализации входных данных, последний - чисто пороговый, чтобы на выходе были только 0 и 1, а не вещественные числа. Поэтому трёхслойный перцептрон тогда не считался даже многослойным :). Вот в "четырёхслойном" было по сути два рабочих слоя. Интересно, как её обучали - бэк пропагейшн, кажется, впервые реализовали в районе 70-го.


        1. smirnov_dm Автор
          28.07.2023 16:17

          Насколько я помню, Ивахненко, или кто-то ещё из советских коннекционистов, к началу 70-х, уже работал уже с восемью слоями. Уточню отпишусь, был источник по этому поводу.


    1. smirnov_dm Автор
      28.07.2023 16:17
      +6

      Об эффективности плановой экономики тут ни слова нет, цикл не о том, что СССР был впереди планеты, но о значимом вкладе конкретных советских ученых, которые не благодаря, а скорее вопреки... Про параною и огороженость полностью согласен, но в 60-х были и периоды короткого просветления. Известны случаи прямой коммуникации с западными коллегами и, что ещё удивительней, о переводах советской литературы на Западе и наоборот. Изоляция всегда вредит, но не смотря на изоляцию эти люди добивались значительных вещей, причем не только академических, но и практических (жаль, что слабо масштабируемых).


      1. dmitrye1
        28.07.2023 16:17
        +3

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


    1. QtRoS
      28.07.2023 16:17
      +1

      Присоединяюсь к первому вопросу джентльмена - тоже кажется, что рядом с указателями никакой продвинутой математики нет, только базовая арифметика


      1. smirnov_dm Автор
        28.07.2023 16:17

        Подробно ответил ниже. Если коротко, то речь не о продвинутой математике, а об авторстве конкретной идеи, использовать указатель, как переменную:
        https://www.mathnet.ru/links/e5ca0fff8cc88945c77386cd95e741ea/rm7453.pdf


    1. VADemon
      28.07.2023 16:17
      +1

      огороженность и паранойя секретить всё и вся

      Это скорее про уклад мышления и жизненные установки, нежели напрямую про экономику.

      @saipr(если я не ошибся) в одной из статей писал, что идея объединенной сети не была продолжена для гражданки, потому что кто-то увидел опасность в такой технологии.


      1. saipr
        28.07.2023 16:17
        +3

        saipr(если я не ошибся) в одной из статей писал, что идея объединенной сети не была продолжена для гражданки, потому что кто-то увидел опасность в такой технологии.

        Вы ошибаетесь. Такого я не писал и не говорил. Наоборот, мы думали, что с помощью наших разработок удастся совершить прорыв и на гражданке:


        И именно результаты этой работы легли в основу опытно-конструкторской работы (ОКР) «Система унифицированных средств передачи данных ЛВС ЕС ЭВМ», шифр ЕС-8430. Выполнение этой работы предполагало разработку широкой номенклатуры изделий, производство и применение которых в народном хозяйстве страны позволило бы создавать вычислительные сети любой конфигурации, включающие в себя весь спектр ЭВМ (большие, малые, персональные). Это было то, к чему мы стремились.


        1. PereslavlFoto
          28.07.2023 16:17

          Отчего же кооперативные и арендные предприятия не стали это воплощать?


          1. saipr
            28.07.2023 16:17

            Другие времена настали и не стало Советского Союза. Всё пришло импортной, свое забыли. Сегодня плоды пожинаем.


          1. PuerteMuerte
            28.07.2023 16:17
            +2

            Отчего же кооперативные и арендные предприятия не стали это воплощать?

            Потому что они разработали вот это:

            ...когда в мире уже повсеместно использовали это:


        1. avost
          28.07.2023 16:17
          +1

          Вы ошибаетесь. Такого я не писал и не говорил. Наоборот, мы думали, что с помощью наших разработок удастся совершить прорыв и на гражданке:

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

          Сделали ли бы ДжетБрейнс свою Идею, если бы решили сначала зачем-то переписать краденую jdk?


    1. Paskin
      28.07.2023 16:17

      Ведь указатель - естественный (и единственный) способ доступа к памяти в низкоуровневом программировании

      Вы ошибаетесь.

      Даже в современных процессорах - вы не можете записать ничего в память без определенных ухищрений, по умолчанию данные будут записаны в кэш и потом уже выгружены в RAM - адресация которой не имеет ничего общего с выделенными вашей программе виртуальными адресами. А по дороге может случиться, что соответствующая страница была свопнута на диск - придется ее оттуда доставать, класть куда-то в реальную память, отображать на адресное пространство и так далее.
      GPU и другая периферия - там свои заморочки в виде DMA, мэйлбоксов и т.п.

      А в те годы - RAM у компьютера могло не быть вообще, память могла быть последовательной или допускать чтение/запись только блоками. И все то, что сегодня "скрывается" ОС и драйверами, позволяя использовать простые указатели - приходилось кодировать "ручками" (возможно, сохраняя в виде библиотек - как оно и происходит до сегодняшнего дня в мире embedded, где OC зачастую компилируется и линкуется вместе с вашей программой).

      У нас в универе архитектуру компьютеров преподавал дедушка лет 70, умело поддерживавший образ соратника упомянутых в статье "корифеев". К сожалению, дедушка не умел в абстракции, задалбывая нас всякими 13-битными регистрами, в которых порядок битов нужно было помнить наизусть - потому что это какой-то суровый хак, типа "при сдвиге на один бит волшебного числа то-то и то-то включается, а что-то другое выключается или меняет состояние". Большинство группы имело опыт построения клонов Радио-86, Спектрума или чего-то подобного, и могло бы в принципе оценить такие решения - если бы дед обьяснял сначала, чего они пытались достичь, а не сразу ударялся в хаки и оптимизации.


      1. GospodinKolhoznik
        28.07.2023 16:17
        +1

        Ну все равно, из того что вы описали адресация в ЭВМ даже с самой кривой и косой системой организации памяти это адресная арифметика + специальная табличка, согласно которой надо производить заману одних волшебных диапазонов адресов на другие. Табличка может быть напеяатана на бумажке, или быть реализована в простой библиотеке или храниться в голове, как у вашего крезёвого препода, но в любом случае операции с табличкой это система примитивных if then else и арифметических сдвигов.

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


      1. avost
        28.07.2023 16:17

        все то, что сегодня "скрывается" ОС и драйверами, позволяя использовать простые указатели - приходилось кодировать "ручками"

        Да, но это всё возможно сложная, но, всё же, инженернная реализациия. Идея последовательной адресации памяти известна со времён концепции машины Тьюринга (30-е) и архитектуры фон Неймана (40-е).

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

        Вооот! В этом и состоит вопрос - почему для реализации хорошо известной концепции потребовалось разработавать специальный математический аппарат математиком уровня аж Колмогорова?


        1. smirnov_dm Автор
          28.07.2023 16:17

          По поводу "сложного математического аппарата", речь, вероятно, не идёт, хотя нельзя сказать о том, что использование указателей было очевидным решением в 1953 году. В статье "К определению алгоритма" Колмогорова и Успенского.
          на Тьюринга Колмогоров ссылается, в частности на:
          A. M. Turing, On computable numbers, with an application to the Entscheidungsproblem, Proc. London Math. Soc. 42 (1936—1937), 230—265.
          A.M. Turing , Computability and X-definitability, Journ. Symb. Logic 2 (1937) 153—163.

          Но в отличие от Тьюринга, согласно Амиру бен-Амраму: "Во время вычислений в его модели машина могла добавлять и изменять ребра.", а "лента может быть почти произвольным графом".
          Вот оригинал статьи (издание Успехи математических наук, 1958, том 13, выпуск 4, 3–28) :
          https://www.mathnet.ru/links/e5ca0fff8cc88945c77386cd95e741ea/rm7453.pdf
          Вопросом об авторстве указателей в алгоритмизации, задавались давно, думаю эта статья ответит на ваши вопросы:
          https://rjlipton.wpcomstaging.com/2014/08/26/who-invented-pointers-amortized-complexity-and-more/


        1. smirnov_dm Автор
          28.07.2023 16:17
          +1

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


          1. veryboringman
            28.07.2023 16:17

            А есть хоть какие-то остатки исходного кода и самого транслятора? И почему потом все выкинули на помойку, а не продолжили дорабатывать, как PL/I и Фортран? Нелогично же.


            1. smirnov_dm Автор
              28.07.2023 16:17

              Есть, в C++ используются.


              1. veryboringman
                28.07.2023 16:17

                Хм, в каком компиляторе С++ есть остатки исходного кода трансляторов из СССР?!

                И почему в СССР его перестали развивать, если на нем была написана значительная кодовая база?


    1. sophist
      28.07.2023 16:17

      Формально, его, наверное, можно отнести к функциональным, но выглядит он не как реализация лямбда-исчисления, а как реализация подстановок формальных арифметик

      Вообще-то, он выглядит как реализация нормальных алгорифмов Маркова, что эквивалентно лямбда-исчислению.


      1. avost
        28.07.2023 16:17

        Так они все три классических - машина Тьюринга, лямбда-исчисление и марковские алгорифмы все взаимноэквивалентны. Даже четыре - ещё машина Поста. Ну, и ещё много последующих вычислительных моделей, конечно.


  1. Wesha
    28.07.2023 16:17
    +2

    Физики шутят
    Физики продолжают шутить

    Что-то не замечено особо критического отношения.


    1. PereslavlFoto
      28.07.2023 16:17

      Перечитывая эту книгу, не могу найти в ней ничего свойственного советской науке, советскому общественному строю, советской партийной жизни. Возможно, причина связана с этим.


      1. smirnov_dm Автор
        28.07.2023 16:17

        Претензия правомерна. Речь скорее о критических высказываниях, чем о литературе. @Wesha, спс, поправлю неточность.


      1. Javian
        28.07.2023 16:17

        Странно, что Райкин за подобные темы не был обозван десидентом :)


        1. smirnov_dm Автор
          28.07.2023 16:17
          +1

          Райкин был сатириком, а не учёным.


          1. Javian
            28.07.2023 16:17
            +1

            Публичность у Райкина на порядки выше.


  1. Xeldos
    28.07.2023 16:17
    +1

    PL/I (Programming Language One) ... где будут повторно ”впервые” использованы указатели, появится лишь в 1976-м

    А как же C в 1972?


    1. PuerteMuerte
      28.07.2023 16:17
      +2

      Указатели и в куда более древнем Алголе были


    1. Dukarav
      28.07.2023 16:17

      Наверное, опечатка. Разработка PL/I началась в 1963 году. Первое публикование у нас - на Киевской конференции летом 1967 года.


      1. smirnov_dm Автор
        28.07.2023 16:17

        Разработка началась в 64-м, верно, но стандарт PL/1 ANSI , X3.53-1976, был опубликован только в 1976 году. Поэтому датируют везде 1976-м годом.


        1. PuerteMuerte
          28.07.2023 16:17
          +1

          Разработка началась в 64-м, верно,

          ...а полная спецификация была опубликована в 1965-м, и вторая версия - в 1967-м. Если говорить про 1976-й год, то это не столь знаковое событие в истории PL/1, чтобы называть это датой появления языка. Это просто один из промежуточных этапов его развития, стандартизация в ANSI. Точно так же, как и С++, когда он там пошёл в массы, в 1985-м? А стандартизован только в конце 1990-х, но мы же не называем годом появления С++ 1997-й год.


          1. PereslavlFoto
            28.07.2023 16:17

            Хабр до сих пор не стандартизирован. Получается, что он по-прежнему в разработке, ещё не появился!


            1. smirnov_dm Автор
              28.07.2023 16:17

              Ложная аналогия. Хабр - не язык программирования.


          1. smirnov_dm Автор
            28.07.2023 16:17

            Верно. Тут вопрос использовались ли в версии 1965 или 1967 года, указатели? Я этого не могу подтвердить и не могу опровергнуть, а стандарт является таким подтверждением. Но замечание ценное, сделаю уточнение в тексте.


      1. smirnov_dm Автор
        28.07.2023 16:17

        В 63-м собрали группу разработчиков, и в 63-м эта группа не создавала PL/l, a пыталась сделать расширение для Fortran. Ни о каких указателях в этот период не упоминали, на сколько мне известно.


  1. Javian
    28.07.2023 16:17
    +2

    Про советскую историю MUMPS интересные воспоминания в этом блоге https://thedarkaugust.blogspot.com/2016/03/4-mumps-1985.html?m=1


    1. TsarS
      28.07.2023 16:17
      +2

      И вот сижу теперь и все части читаю. Вы украли у меня утро субботы!


      1. Javian
        28.07.2023 16:17
        +1

        Извините. Я это читал на работе, потом пытался в виртуальной машине запустить и проникнуться духом времени.


  1. klimkinMD
    28.07.2023 16:17
    +1

    А. Л. Брудно. Программирование в содержательных обозначениях. Для ЭВМ М-2 (машина эксплуатировалась 15 лет).


  1. akocha
    28.07.2023 16:17
    +2

    АЛМИР-65 — язык программирования, разработанный в СССР в 1965 году в Институте кибернетики АН УССР под руководством академика Виктора Глушкова. Название расшифровывается как «алгоритмический язык для машины инженерных решений». Из названия ясно, что АЛМИР-65 использовался на ЭВМ МИР (Машина для Инженерных Расчётов).

    Мне даже на нем попрограммировать довелось. Два режима ввода программы: телетайп (типа пишущей машинки, на нее же осуществлялся вывод) и перфолента.


  1. veryboringman
    28.07.2023 16:17
    +3

    Переход на Fortran произошел по причине массового использования зарубежных библиотек. Например для БЭСМ-6 транслятор переписывали с импортного ровно с этой целью - для доступа к библиотекам CERN.

    Что толку от языка программирования, если на нем некому писать? Fortran позволял получить доступ к результатам труда программистам со всего мира.


  1. saipr
    28.07.2023 16:17
    +6

    В 60-х годах родился язык АЛМО, язык системного программирования (машинно-ориентированный язык), который задумывался как язык-посредник при трансляции с различных языков на различные машинные платформы. Мне довелось программировать на нём. Более того мне довелось трудиться под руководством разработчиков трансляторов с этого языка для ЭВМ М-220, Весна и даже ЕС ЭВМ:
    image


  1. itundp
    28.07.2023 16:17

    А почему не упомянули язык ЛЯПАС - Лгический Язык Представления Алгоритвом Синтеза?