Was war die erste Programmiersprache im Weltraum?

Sputnik 1 war der erste Satellit im All. Hatte es eine Programmiersprache an Bord oder war es rein analog?

1949 veröffentlichte Von Neumann die Sprache Short Code. Fortran wurde 1957 erfunden. Sputnik kam 1957 auf den Markt. Dennis Ritchie schuf 1972 die Programmiersprache C @ Bell Laboratories.

Bearbeiten: Vielen Dank für die Antwort und den Kommentar, schätzen Sie den Wissensstand hier wirklich.

Für die Zwecke meiner Anfrage bin ich gerne bereit, die Frage als "die erste Maschinensprache im Weltraum" zu klären. Offensichtlich würde die Codierung vor Ort erfolgen.

Auch zur Verdeutlichung: wird die bereitgestellten analogen Beispiele ausschließen. dh: nur Maschinencode, der auf Halbleiterchips läuft.

Noch eine Frage an Interessierte.

Was ist die beliebteste Programmiersprache im Weltraum?

Sputnik 1 war kaum mehr als eine Batterie und ein Funksender, definitiv analog. Gemini hatte Mitte der 60er Jahre digitale Computerausrüstung an Bord, weiß nichts über Mercury.
Ich denke, Sputnik 1 verwendete sowohl einige analoge als auch einige digitale Teile, aber es gab nichts Besseres als einen programmierbaren digitalen Prozessor.
Die Programmiersprache Plankalkül war die erste höhere Programmiersprache. en.wikipedia.org/wiki/Plankalk%C3%BCl
Sie müssen definieren, was Sie unter "erster Programmiersprache im Weltraum" verstehen. Meinst du, was tatsächlich gefahren wurde? Meinen Sie, welche Sprache auf der Erde verwendet wurde, um den im Weltraum verwendeten Code zu generieren? Meinen Sie, was war die erste Sprache, die von einem Menschen im Weltraum verwendet wurde, um tatsächlich einen Computer zu programmieren, der sich ebenfalls im Weltraum befand? Es gibt ein breites Spektrum möglicher Bedeutungen für Ihre gestellte Frage.
Ihre Frage scheint ein Missverständnis darüber zu haben, wie die Programmierung funktioniert: dass alles andere als die Maschinensprache (tatsächliche Bits / Bytes) Code ist, der ausgeführt wird. Auf Computern läuft nichts anderes als Maschinensprache. Jede Computerprogrammiersprache (dh die für einen Menschen leichter verständlich ist) ist eine Abstraktion. Diese Abstraktion muss entfernt werden, bevor der Computer den Code tatsächlich versteht. Dazu werden Programme (Ressourcen) verwendet. Solche Ressourcen kosten . Die Kosten sind auf der Erde viel billiger/sicherer zu bezahlen als im Weltraum, daher wird normalerweise nur Maschinensprache in den Weltraum gesendet.
@Makyen Vorausgesetzt, das stimmt, ist das wirklich interessant! Können Sie irgendwelche Quellen nennen?
@ Ryan, wenn Sie zitierte Quellen möchten, muss ich wissen, über welchen Teil Sie sich wundern. Wenn es sich um den Teil handelt, in dem Computer nur tatsächlich Maschinencode ausführen, ist das grundlegende Elektrotechnik / Computertechnik. Wenn es sich um die Behauptung handelt, dass "normalerweise" nur Maschinensprache in den Weltraum geschickt wird, dann bräuchte es zumindest eine beleuchtete Suche. Es ist jedoch auch eine einfache Schlussfolgerung aus dem grundlegenden EE/CE. Wie genau es für eine bestimmte Mission ist, hängt von der Mission ab. Um "normalerweise" zu beweisen, ist eine Untersuchung aller Missionen oder der überwiegenden Mehrheit erforderlich, was, wenn nicht bereits geschehen, ziemlich viel Aufwand wäre.
@Makyen: Dolmetscher sind in der Informatik weit verbreitet. Der Interpreter selbst in Form von "Maschinencode" führt ein Programm aus, das existiert, auch wenn es in einer abstrakteren Form als Maschinencode ausgeführt wird. Das interpretierte Programm existiert nie in Maschinencodeform, sondern wird unbestreitbar irgendwo ausgeführt . So etwas zu tun ist eine technische Entscheidung und keine, die automatisch getroffen wird – aber die technischen Vorteile der Verwendung von Bytecode und einer Interpreterschicht könnten sich zumindest für einige weltraumgestützte Anwendungen durchsetzen.
@HenningMakholm Wir scheinen uns grundsätzlich einig zu sein, aber die Bandbreite ist begrenzt :-). Während interpretierter Code ausgeführt wird, ist es nicht das, was der Computer (die Hardware) tatsächlich ausführt. Der eigentliche Computer führt (per Definition) Maschinencode aus. Mancher Maschinencode kann ein Interpreter sein, bei dem es sich um eine Abstraktion handelt, die den interpretierten Code ausführt. Ja, es gibt viele Kompromisse zwischen kompiliertem/assembliertem Code und einem Interpreter, der auf der Hardware läuft, wobei der Großteil des Betriebscodes interpretiert wird (kann so oder so besser sein). Wie bereits erwähnt, handelt es sich dabei um technische Kompromisse, die auf Projektbasis getroffen werden.
@Makyen: Warum sollten Sie Ihren teuren Astronauten im Weltraum programmieren lassen? Weitaus kostengünstiger (selbst bei Gehältern im Silicon Valley :-)), Erdgebundene Programmierer die Programme schreiben und bei Bedarf hochladen zu lassen.
Sputnik 1 verfügte über eine Rechenleistung, die einem einfachen Zifferblattthermostat ebenbürtig war: Er konnte auf Temperaturänderungen reagieren und diese Änderungen an die Erde übermitteln.
@jamesqf Sag das der Crew von Apollo 14 LM.
Wenn der Code am Boden kompiliert wurde, wird die Programmiersprache offensichtlich nicht im Weltraum benötigt.

Antworten (2)

(Ich interpretiere die Frage als "In welcher Programmiersprache wurde die erste Software für Raumfahrzeuge geschrieben?", pro Diskussion in den Kommentaren oben.)

Dies hängt von Ihren Definitionen von "Computer" und "Programmiersprache" ab. Mit ziemlicher Sicherheit wurden die ersten digitalen Computer auf Raumfahrzeugen in Assemblersprache oder Mikrocode programmiert. Viele historische Details finden Sie in Computers In Spaceflight: The NASA Experience .

Die Einführung von Hochsprachen erfolgte in Raumfahrzeugen viel später als auf dem Boden, da die Assemblersprache normalerweise effizienter ist (so dass Sie auf einer leichteren, weniger leistungshungrigen und / oder strahlungsresistenteren CPU gleichwertige Arbeit leisten können). und gibt dem Programmierer eine feinkörnigere Kontrolle (wodurch es weniger wahrscheinlich ist, dass es zu unerwarteten Ergebnissen kommt).

Der früheste digitale Computer auf einem Raumschiff, den ich finden kann, ist Ranger 3 , 1962:

Die Steuerung des Raumfahrzeugs erfolgte durch einen Festkörpercomputer und einen Sequenzer sowie ein erdgesteuertes Befehlssystem.

"Sequencer" deutet darauf hin, dass es über physische Schalter und / oder fest verdrahteten Mikrocode auf einem ziemlich niedrigen Niveau programmiert wurde, aber ich habe keine wirklichen Details auf dem Computer selbst gefunden.

Gemini war das erste bemannte US-Raumschiff, das einen digitalen Computer trug, beginnend mit Gemini 3 im Jahr 1965.

„Der Computer wog ungefähr 59 Pfund, führte mehr als 7.000 Berechnungen pro Sekunde durch und brauchte nicht mehr Platz als eine Hutschachtel – 1,35 Kubikfuß – an Bord der Gemini. Er hatte eine durchschnittliche Leistungsaufnahme von 94,54 Watt, eine Bitrate von 500 kc, a Speicherzykluszeit von 250 kc und eine Additionszeit von 140 Mikrosekunden.Der Speicher des Computers war ein zerstörungsfreies Auslesedesign mit wahlfreiem Zugriff und flexibler Befehls- und Datenspeicherorganisation.Seine Nennkapazität betrug 4.096 39-Bit-Worte und seine Betriebskapazität betrug 12.288 13 -bit Worte." (Historische Archive von IBM).

Dies wurde mit ziemlicher Sicherheit eher in Assemblersprache als in einer Hochsprache programmiert.

Das 1989 geflogene Galileo-Raumschiff scheint die erste unbemannte Raumfahrzeug-Flugsoftware der USA zu sein, die in einer Hochsprache geschrieben wurde :

JPL untersuchte sorgfältig die Speicheranforderungen und die Aussichten für die Softwareentwicklung. Prototyp-Programme wurden in HAL/S und FORTRAN für den Kommandocomputer und den Lagesteuerungscomputer geschrieben. Ideen für den Inhalt der Programme kamen aus der Voyager-Erfahrung und der Exekutive, die für das NSSC-1 geschrieben wurde. Das Projektbüro hatte ursprünglich festgelegt, dass HAL für die Programmierung der gesamten Flugsoftware verwendet werden würde. Als im Compiler, der für die Befehls- und Datencomputer gekauft wurde, nicht reduzierbare Ineffizienzen auftraten, wurde HAL für dieses System aufgegeben und durch "strukturierte Makros" ersetzt. HAL wurde für das andere Computersystem beibehalten. Obwohl die meisten Mikroprozessoren in den wissenschaftlichen Experimenten in Assembler codiert sind, ist einer in FORTH programmiert, sodass Hochsprachen schließlich auf unbemannten Raumfahrzeugen auftauchten.

Der erste digitale Computer der UdSSR im Weltraum war der Argon 11c an Bord eines unbemannten Raumschiffs der Zond-Serie im Jahr 1964. Ich nehme an, er wurde eher in Assemblersprache als in einer Hochsprache programmiert.

Zahlendarstellung - Fixpunkt. Wortlänge - 14 Bit, Befehlslänge - 17 Bit. Anzahl der Anweisungen - 15.

Ausführungszeiten: Addition - 30 ms, Multiplikation - 160 ms.

RAM-Kapazität - 128 14-Bit-Worte, ROM-Kapazität - 4.096 17-Bit-Worte.

Dem frühen Sojus-Raumschiff fehlten digitale Computer; Die Sojus-T im Jahr 1980 scheint ihr erstes bemanntes Raumschiff gewesen zu sein, das von einem digitalen Computer an Bord, Argon-16 , gesteuert wurde .

Darstellung von Zahlen - Fixpunkt. Wortlänge: 16 Bit (Wort), 32 Bit (Doppelwort); Befehlslänge - 16 Bit. Anzahl der Anweisungen - 32.

Geschwindigkeit: Addition - 5 ms, Multiplikation - 45 ms.

RAM-Kapazität: 3 x 2 KByte, ROM-Kapazität - 3 x 16 KByte.

Ich würde vermuten, dass dies auch Assembler-programmiert war, obwohl mit dem größeren ROM und späteren Datum eine Hochsprache nicht ausgeschlossen gewesen wäre.

Die erste hochrangige Sprache auf einem Raumschiff, die ich kenne, wäre die HAL/S des Space Shuttles, die erstmals 1973 "ausgeliefert" und irgendwann zwischen 1977 und 1981 zum ersten Mal geflogen wurde.

Ich wünschte, ich könnte zweimal abstimmen, dies ist eine wirklich gründliche und gut verknüpfte "Big Picture" -Antwort.
dito und danke. Ich bin mir nicht sicher, warum mein Google-Fu mich beim Finden dieser Informationen gescheitert ist.
Wenn Sie HAL/S erwähnen, vergessen Sie nicht die virtuelle Maschine des Apollo-Führungscomputers. en.wikipedia.org/wiki/Apollo_Guidance_Computer#Software „Die AGC hatte auch einen ausgeklügelten Software-Interpreter, der vom MIT Instrumentation Laboratory entwickelt wurde und eine virtuelle Maschine mit komplexeren und leistungsfähigeren Pseudoanweisungen als die native AGC implementierte. [... ] Interpretierter Code, der trigonometrische, skalare und vektorielle Arithmetik mit doppelter Genauigkeit (16 und 24 Bit) und sogar eine MXV-Anweisung (Matrix × Vektor) enthielt, konnte mit nativem AGC-Code gemischt werden.

Das erste Schiff, das die Kármán-Linie überquerte und den Weltraum erreichte – die deutsche V-2-Rakete – verwendete ein Programm für seinen analogen Computer, das als rotierende unregelmäßige Scheibe mit einer bestimmten Form implementiert war, mit einer Radius- (Winkel-) Codierungs-Ausgangs- (Eingangs-) Funktion; Die von einem Motor gedrehte Scheibe, deren Winkel und Radius von Potentiometern gelesen werden, liefert Berechnungen für das Steuersystem auf der Grundlage von Gyroskopen und Beschleunigungsmesserdaten und treibt die Servos der Steuerflächen an.

Geben Sie hier die Bildbeschreibung ein

Quelle: Helmut Hölzers vollelektronischer Analogcomputer, der in den deutschen V2 (A4)-Raketen verwendet wird

Wenn Geometrie eine Sprache sein kann, dann zählt das! Ich zähle es.
Es war kein vollelektronischer analoger Computer, die rotierende unregelmäßige Scheibe mit bestimmter Form ist elektromechanisch, nicht elektronisch. Die Potentiometer für Winkel und Radius sind ebenfalls elektromechanisch.
Das ist sehr interessant, im ersten Heinlein-Jugendroman "Raketenschiff Galileo" arbeitet der Autopilot des Titelschiffs mit dieser Art von Nockenfolger-Mechanismus, dieses reale Gerät könnte die Inspiration gewesen sein.
Gewiss, Geometrie kann eine Sprache sein. Hier sind ungefähr zweihundert von ihnen!