¿Cuál fue el primer lenguaje de programación en el espacio?

Sputnik 1 fue el primer satélite en el espacio. ¿Tenía un lenguaje de programación a bordo o era puramente analógico?

en 1949 Von Neumann lanzó el código corto de lenguaje. Fortran se inventó en 1957. Sputnik se lanzó en 1957. Dennis Ritchie creó el lenguaje de programación C @ Bell Laboratories en 1972.

editar: Gracias por la respuesta y el comentario, realmente aprecio el nivel de conocimiento aquí.

A los efectos de mi consulta, me complace aclarar la pregunta como "el primer lenguaje de máquina en el espacio". Obviamente, la codificación se haría sobre el terreno.

También a efectos de aclaración: se excluirán los ejemplos analógicos proporcionados. es decir: solo código de máquina que se ejecuta en chips semiconductores.

Otra pregunta para los interesados.

¿Cuál es el lenguaje de programación más popular en el espacio?

El Sputnik 1 era poco más que una batería y un transmisor de radio, definitivamente analógico. Gemini tenía algunos equipos informáticos digitales a bordo a mediados de los años 60, no sé nada de Mercury.
Creo que el Sputnik 1 usó algunas partes analógicas y digitales, pero no había nada como un procesador digital programable.
El lenguaje de programación Plankalkül fue el primer lenguaje de programación de alto nivel. en.wikipedia.org/wiki/Plankalk%C3%BCl
Debe definir qué quiere decir con "primer lenguaje de programación en el espacio". ¿Te refieres a lo que realmente se ejecutó? ¿Quiere decir qué idioma se utilizó en la Tierra para generar el código utilizado en el espacio? ¿Quiere decir cuál fue el primer lenguaje que utilizó un ser humano en el espacio para programar una computadora que también estaba en el espacio? Hay un amplio espectro de posibles significados para su pregunta planteada.
Su pregunta parece tener un concepto erróneo sobre cómo funciona la programación: que cualquier cosa que no sea el lenguaje de máquina (bits/bytes reales) sería un código que se ejecuta. Las computadoras no ejecutan nada más que lenguaje de máquina. Cualquier lenguaje de programación de computadora (es decir, que sea más fácil de entender por un humano) es una abstracción. Esa abstracción debe eliminarse antes de que la computadora realmente entienda el código. Los programas (recursos) se utilizan para hacerlo. Tales recursos cuestan . El costo es mucho más barato/más seguro de pagar en la Tierra que en el Espacio, por lo que generalmente solo se envía el lenguaje de máquina al espacio.
@Makyen Suponiendo que eso sea cierto, ¡eso es realmente interesante! ¿Puedes citar alguna fuente?
@Ryan, si quieres que se citen las fuentes, necesitaré saber qué parte te estás preguntando. Si se trata de la parte de las computadoras que solo ejecutan código de máquina, eso es ingeniería eléctrica/informática básica. Si es la afirmación de que "generalmente" solo se envía el lenguaje de máquina al espacio, entonces, como mínimo, necesitaría una búsqueda iluminada. Sin embargo, también es una inferencia fácil a partir de EE/CE básico. La precisión para una misión específica dependerá de la misión. Para demostrar que "normalmente" se requiere un estudio de todas las misiones, o de la gran mayoría, lo que, si no se ha hecho ya, supondría bastante esfuerzo.
@Makyen: los intérpretes son bastante comunes en la informática. El intérprete, en sí mismo en forma de "código de máquina", ejecuta un programa que existe incluso mientras se ejecuta en una forma más abstracta que el código de máquina. El programa interpretado nunca existe en forma de código de máquina, pero es innegable que se está ejecutando en alguna parte. Hacer este tipo de cosas es una decisión de ingeniería, y no una que se toma automáticamente, pero los beneficios de ingeniería de usar código de bytes y una capa de intérprete bien pueden triunfar para al menos algunas aplicaciones espaciales.
@HenningMakholm Parece que básicamente estamos de acuerdo, pero el ancho de banda es limitado :-). Mientras se ejecuta el código interpretado, no es lo que la computadora (el hardware) realmente ejecuta. La computadora real ejecuta código de máquina (por definición). Algún código de máquina puede ser un intérprete, que es una abstracción que ejecuta el código interpretado. Sí, hay muchas compensaciones entre el código compilado/ensamblado y un intérprete que se ejecuta en el hardware con la mayor parte del código operativo interpretado (puede ser mejor de cualquier manera). Como se indicó, esas son compensaciones de ingeniería realizadas proyecto por proyecto.
@Makyen: Además, ¿por qué tendrías a tu costoso astronauta programando mientras estás en el espacio? Mucho más rentable (incluso con los salarios de Silicon Valley :-)) que los programadores de Earthbound escriban los programas y los carguen según sea necesario.
El Sputnik 1 tenía un poder de cómputo similar al de un simple termostato de cuadrante: podía reaccionar a los cambios de temperatura y comunicar esos cambios a la Tierra.
@jamesqf Dile eso a la tripulación del Apollo 14 LM.
Si el código fue compilado en tierra, obviamente el lenguaje de programación no es necesario en el espacio.

Respuestas (2)

(Estoy interpretando la pregunta como "¿en qué lenguaje de programación se escribió el primer software de nave espacial?", Según la discusión en los comentarios anteriores).

Esto dependerá de sus definiciones de "computadora" y "lenguaje de programación". Es casi seguro que las primeras computadoras digitales en naves espaciales se programaron en lenguaje ensamblador o microcódigo. Puede obtener muchos detalles históricos de Computers In Spaceflight: The NASA Experience .

La adopción de lenguajes de alto nivel ocurrió mucho más tarde en las naves espaciales que en la tierra porque, por lo general, el lenguaje ensamblador es más eficiente (por lo que puede hacer un trabajo equivalente en una CPU más liviana, que consume menos energía y/o más resistente a la radiación), y le da un control más detallado al programador (por lo tanto, es menos probable que produzca resultados inesperados).

La primera computadora digital en una nave espacial que puedo encontrar es la Ranger 3 , 1962:

El control de la nave espacial fue proporcionado por una computadora de estado sólido y un secuenciador y un sistema de comando controlado por tierra.

El "secuenciador" sugiere que fue programado a través de interruptores físicos y/o microcódigo cableado a un nivel bastante bajo, pero no he encontrado ningún detalle real en la computadora.

Gemini fue la primera nave espacial estadounidense tripulada en llevar una computadora digital , comenzando con Gemini 3 en 1965.

"La computadora pesaba aproximadamente 59 libras, realizaba más de 7000 cálculos por segundo y no necesitaba más espacio que una sombrerera (1,35 pies cúbicos) a bordo del Gemini. Tenía un consumo de energía promedio de 94,54 vatios, una tasa de bits de 500 kc, un tiempo de ciclo de memoria de 250 kc y un tiempo de adición de 140 microsegundos. La memoria de la computadora era un diseño de lectura no destructiva de acceso aleatorio con instrucción flexible y organización de almacenamiento de datos. Su capacidad nominal era de 4.096 palabras de 39 bits y su capacidad operativa era de 12.288 13 -palabras cortas". (Archivos históricos de IBM).

Es casi seguro que esto fue programado en lenguaje ensamblador en lugar de un lenguaje de alto nivel.

La nave espacial Galileo volada en 1989 parece ser el primer software de vuelo de una nave espacial no tripulada de EE. UU. escrito en un lenguaje de alto nivel :

JPL exploró cuidadosamente los requisitos de memoria y las perspectivas de desarrollo de software. Se escribieron prototipos de programas en HAL/S y FORTRAN para la computadora de comando y la computadora de control de actitud. Las ideas para el contenido de los programas surgieron de la experiencia de Voyager y el ejecutivo escribió para el NSSC-1. La oficina del proyecto especificó originalmente que HAL se usaría para programar todo el software de vuelo. Cuando aparecieron ineficiencias irreductibles en el compilador comprado para las computadoras de comando y datos, se abandonó HAL para ese sistema y se reemplazó con "macros estructurados". HAL se retuvo para el otro sistema informático. Aunque la mayoría de los microprocesadores en los experimentos científicos están codificados en ensamblador, uno está programado en FORTH, por lo que finalmente aparecieron lenguajes de alto nivel en naves espaciales sin tripulación.

La primera computadora digital de la URSS en el espacio fue la Argon 11c a bordo de una nave espacial de la serie Zond sin tripulación en 1964. Supongo que estaba programada en lenguaje ensamblador en lugar de un lenguaje de alto nivel.

Representación numérica - punto fijo. Longitud de palabra - 14 bits, longitud de comando - 17 bits. Número de instrucciones - 15.

Tiempos de ejecución: suma - 30 ms, multiplicación - 160 ms.

Capacidad de RAM: 128 palabras de 14 bits, capacidad de ROM: 4096 palabras de 17 bits.

Las primeras naves espaciales Soyuz carecían de computadoras digitales; la Soyuz-T en 1980 parece haber sido su primera nave espacial tripulada controlada por una computadora digital a bordo, Argon-16 .

Representación de números - punto fijo. Longitud de palabra: 16 bits (palabra), 32 bits (palabra doble); longitud de instrucción - 16 bits. Número de instrucciones - 32.

Velocidad: suma - 5 ms, multiplicación - 45 ms.

Capacidad RAM: 3 x 2 Kbytes, capacidad ROM - 3 x 16 Kbytes.

Supongo que esto también fue programado en ensamblador, aunque con la ROM más grande y una fecha posterior, un lenguaje de alto nivel no habría estado fuera de discusión.

El primer lenguaje de alto nivel en una nave espacial que yo sepa sería el HAL/S del transbordador espacial, "entregado" por primera vez en 1973 y volado por primera vez entre 1977 y 1981.

Desearía poder votar dos veces, esta es una respuesta de "panorama general" realmente completa y bien vinculada.
igual y gracias. No estoy seguro de por qué mi google fu me falló al encontrar esa información.
Cuando mencione HAL/S, no olvide la máquina virtual de la computadora de guía Apollo. en.wikipedia.org/wiki/Apollo_Guidance_Computer#Software "El AGC también tenía un sofisticado intérprete de software, desarrollado por el Laboratorio de Instrumentación del MIT, que implementaba una máquina virtual con pseudoinstrucciones más complejas y capaces que el AGC nativo. [... ] El código interpretado, que presentaba aritmética vectorial, escalar y trigonométrica de doble precisión (16 y 24 bits), incluso una instrucción MXV (matriz × vector), podría mezclarse con el código AGC nativo".

La primera nave que cruzó la línea de Kármán y llegó al espacio - el cohete alemán V-2 - utilizó un programa para su computadora analógica, implementado como un disco irregular giratorio de forma específica, con función de salida (entrada) de codificación de radio (ángulo); el disco girado por un motor, con ángulo y radio leídos por potenciómetros, proporcionando cálculos para el sistema de control, basándose en datos de giroscopios y acelerómetros, y accionando los servos de las superficies de control.

ingrese la descripción de la imagen aquí

Fuente: Computadora analógica totalmente electrónica de Helmut Hoelzer utilizada en los cohetes alemanes V2 (A4)

Si la geometría puede ser un lenguaje, ¡entonces esto cuenta! lo cuento
No era una computadora analógica totalmente electrónica, el disco irregular giratorio de forma específica es electromecánico, no electrónico. Los potenciómetros de ángulo y radio también son electromecánicos.
Esto es muy interesante, en la primera novela juvenil de Heinlein, "Rocket Ship Galileo", el piloto automático de la nave principal funciona con este tipo de mecanismo seguidor de leva, este dispositivo del mundo real puede haber sido la inspiración.
Claro, la geometría puede ser un lenguaje. ¡ Aquí hay aproximadamente doscientos de ellos!