Какой язык программирования был первым в космосе?

Спутник-1 был первым спутником в космосе. Был ли у него на борту язык программирования или он был чисто аналоговым?

в 1949 году фон Нейман выпустил язык Short Code. Fortran был изобретен в 1957 году. Sputnik запущен в 1957 году. Деннис Ритчи создал язык программирования C в Bell Laboratories в 1972 году.

edit: Спасибо за ответ и комментарий, очень ценю уровень знаний здесь.

Для целей моего расследования я рад уточнить вопрос как «первый машинный язык в космосе». Очевидно, что кодирование будет выполняться на земле.

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

Еще вопрос интересующимся.

Какой самый популярный язык программирования в космосе?

Спутник-1 был не более чем батареей и радиопередатчиком, определенно аналоговым. В середине 60-х на борту Близнецов было какое-то цифровое компьютерное оборудование, не знаю о Меркурии.
Я думаю, что в «Спутнике-1» использовались как аналоговые, так и цифровые части, но не было ничего похожего на программируемый цифровой процессор.
Язык программирования Plankalkül был первым языком программирования высокого уровня. en.wikipedia.org/wiki/Plankalk%C3%BCl
Вам нужно определить, что вы подразумеваете под «первым языком программирования в космосе». Вы имеете в виду то, что на самом деле было запущено? Вы имеете в виду, какой язык использовался на Земле для генерации кода, используемого в космосе? Вы имеете в виду, какой язык был первым, который человек использовал в космосе для программирования компьютера, который также находился в космосе? Существует широкий спектр возможных значений вашего заданного вопроса.
Ваш вопрос, похоже, имеет неправильное представление о том, как работает программирование: что-либо, кроме машинного языка (фактические биты/байты), будет кодом, который работает. Компьютеры не запускают ничего, кроме машинного языка. Любой язык компьютерного программирования (то есть тот, который легче понять человеку) является абстракцией. Эта абстракция должна быть удалена до того, как компьютер действительно поймет код. Для этого используются программы (ресурсы). Такие ресурсы стоят . Стоимость намного дешевле / безопаснее платить на Земле, чем в космосе, поэтому обычно в космос отправляется только машинный язык.
@Makyen Если предположить, что это правда, это действительно интересно! Можете ли вы привести какие-либо источники?
@Ryan, если вы хотите, чтобы источники цитировались, мне нужно знать, какая часть вас интересует. Если речь идет о компьютерах, на самом деле выполняющих только машинный код, то это базовая электротехника/компьютерная инженерия. Если это заявление о том, что «обычно» в космос посылается только машинный язык, то, как минимум, потребуется литий-поиск. Тем не менее, это также простой вывод из базового EE/CE. Насколько он точен для конкретной миссии, будет зависеть от миссии. Чтобы доказать «обычно», требуется обзор всех миссий или подавляющего большинства, что, если бы оно еще не было сделано, потребовало бы немало усилий.
@Makyen: интерпретаторы довольно распространены в вычислениях. Сам интерпретатор в форме «машинного кода» запускает программу, которая существует даже при запуске в более абстрактной форме, чем машинный код. Интерпретируемая программа никогда не существует в форме машинного кода, но, несомненно , где-то выполняется . Выполнение такого рода вещей является инженерным решением, а не автоматическим, но инженерные преимущества использования байт-кода и уровня интерпретатора вполне могут принести пользу, по крайней мере, для некоторых космических приложений.
@HenningMakholm Кажется, мы в основном согласны, но пропускная способность ограничена :-). Пока выполняется интерпретируемый код, это не то, что на самом деле работает компьютер (аппаратное обеспечение) . Фактический компьютер запускает машинный код (по определению). Некоторый машинный код может быть интерпретатором, который представляет собой абстракцию, запускающую интерпретируемый код. Да, существует множество компромиссов между скомпилированным/ассемблированным кодом и интерпретатором, работающим на оборудовании, при этом большая часть рабочего кода интерпретируется (может быть лучше в любом случае). Как уже говорилось, это инженерные компромиссы, принимаемые от проекта к проекту.
@Makyen: Кроме того, почему ваш дорогой астронавт занимается программированием в космосе? Гораздо более рентабельно (даже при зарплатах в Силиконовой долине :-) заставлять программистов Earthbound писать программы и загружать их по мере необходимости.
Спутник-1 имел вычислительную мощность наравне с простым циферблатным термостатом: он мог реагировать на изменения температуры и сообщать об этих изменениях на Землю.
@jamesqf Скажи это экипажу Аполлона-14 LM.
Если код компилировался на земле, то явно язык программирования в космосе не нужен.

Ответы (2)

(Я интерпретирую вопрос как «на каком языке программирования было написано первое программное обеспечение для космического корабля?», Согласно обсуждению в комментариях выше.)

Это будет зависеть от ваших определений «компьютер» и «язык программирования». Почти наверняка первые цифровые компьютеры на космических кораблях были запрограммированы на языке ассемблера или микрокоде. Вы можете получить много исторических подробностей из Computers In Spaceflight: The NASA Experience .

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

Самый ранний цифровой компьютер на космическом корабле, который я смог найти, это Ranger 3 , 1962 год:

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

«Секвенсор» предполагает, что он был запрограммирован с помощью физических переключателей и/или встроенного микрокода на довольно низком уровне, но я не нашел никаких реальных подробностей о самом компьютере.

Gemini был первым американским космическим кораблем с цифровым компьютером , начиная с Gemini 3 в 1965 году.

«Компьютер весил примерно 59 фунтов, выполнял более 7000 вычислений в секунду, и ему требовалось не больше места, чем в шляпной коробке — 1,35 кубических фута — на борту «Джемини». время цикла памяти 250 kc и время добавления 140 микросекунд.Память компьютера представляла собой конструкцию с произвольным доступом, неразрушающим считыванием, гибкой организацией команд и хранения данных.Его номинальная емкость составляла 4096 39-битных слов, а ее оперативная емкость составляла 12 288 13 -битные слова». (исторический архив IBM).

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

Космический корабль Galileo , запущенный в 1989 году, является первым в США программным обеспечением для управления космическим кораблем без экипажа, написанным на языке высокого уровня :

JPL тщательно изучила требования к памяти и перспективы разработки программного обеспечения. Программы-прототипы были написаны на HAL/S и FORTRAN для командного компьютера и компьютера управления ориентацией. Идеи для содержания программ исходили из опыта "Вояджера" и руководства, написанного для NSSC-1. Первоначально проектный офис указал, что HAL будет использоваться для программирования всего полетного программного обеспечения. Когда в компиляторе, купленном для командных компьютеров и компьютеров с данными, обнаружилась неустранимая неэффективность, от HAL отказались для этой системы и заменили «структурированными макросами». HAL был сохранен для другой компьютерной системы. Хотя большинство микропроцессоров в научных экспериментах закодировано на ассемблере, один из них запрограммирован на FORTH, поэтому языки высокого уровня наконец появились на беспилотных космических кораблях.

Первым цифровым компьютером СССР в космосе был Argon 11c на борту беспилотного космического корабля серии Zond в 1964 году. Я предполагаю, что он был запрограммирован на языке ассемблера, а не на языке высокого уровня.

Представление числа - фиксированная точка. Длина слова - 14 бит, длина команды - 17 бит. Количество инструкций - 15.

Время выполнения: сложение — 30 мс, умножение — 160 мс.

Объем ОЗУ - 128 14-битных слов, объем ПЗУ - 4096 17-битных слов.

На первых космических кораблях «Союз» не было цифровых компьютеров; «Союз-Т» в 1980 году, по-видимому, был их первым пилотируемым космическим кораблем, управляемым бортовым цифровым компьютером « Аргон-16 » .

Представление чисел - фиксированная точка. Длина слова: 16 бит (слово), 32 бита (двойное слово); длина инструкции - 16 бит. Количество инструкций - 32.

Скорость: сложение - 5 мс, умножение - 45 мс.

Объем ОЗУ: 3 х 2 Кбайт, объем ПЗУ - 3 х 16 Кбайт.

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

Первый язык высокого уровня на космическом корабле, о котором я знаю, это HAL/S космического челнока, впервые «доставленный» в 1973 году и первый полет где-то между 1977 и 1981 годами.

Хотел бы я проголосовать дважды, это действительно тщательный и хорошо связанный ответ «общая картина».
то же самое и спасибо. Не знаю, почему мой гугл-фу подвел меня при поиске этой информации.
Когда вы упоминаете HAL/S, не забывайте о виртуальной машине управляющего компьютера Apollo. en.wikipedia.org/wiki/Apollo_Guidance_Computer#Software «У AGC также был сложный программный интерпретатор, разработанный Лабораторией приборостроения Массачусетского технологического института, который реализовывал виртуальную машину с более сложными и способными псевдоинструкциями, чем собственный AGC. [... ] Интерпретируемый код, в котором использовалась тригонометрическая, скалярная и векторная арифметика двойной точности (16- и 24-битная), даже инструкция MXV (матрица × вектор), могла быть смешана с собственным кодом AGC».

Первое судно, пересекшее линию Кармана и достигшее космоса - немецкая ракета Фау-2 - использовала программу для своего аналогового компьютера, реализованную в виде вращающегося диска неправильной формы с функцией вывода (ввода) кодирования радиуса (угла); диск, вращаемый двигателем, угол и радиус которого считываются потенциометрами, обеспечивающими расчеты для системы управления на основе данных гироскопов и акселерометров и приводящими в действие сервоприводы рулей.

введите описание изображения здесь

Источник: Полностью электронный аналоговый компьютер Гельмута Хельцера, используемый в немецких ракетах V2 (A4).

Если геометрия может быть языком, то это имеет значение! Я считаю это.
Это не был полностью электронный аналоговый компьютер, вращающийся диск неправильной формы особой формы электромеханический, а не электронный. Потенциометры угла и радиуса тоже электромеханические.
Это очень интересно, в первом юношеском романе Хайнлайна «Ракетный корабль Галилео» автопилот титульного корабля работает на таком механизме кулачкового толкателя, это реальное устройство могло быть источником вдохновения.
Конечно, геометрия может быть языком. Вот их около двухсот !