72

This Wikibooks link lists its strong points, some of which are: An extremely strong, static and safe type system, which allows the programmer to construct powerful abstractions that reflect the real world, and allows the compiler to detect many logic faults before they become errors. Modularity, whereby the compiler directly manages the construction ...


54

Timing. Ada was developed in the 1970s and 80s with the intent of replacing the plethora of languages used in the US Department of Defense's realtime systems. NASA (and also organizations from Europe) were active participants. The DoD mandated Ada for all major development in 1991. NASA did much the same. The International Space Station had been a paper ...


54

Almost all of the safety critical software that runs on the US side of the Space Station is written in Ada. I wrote "almost all" rather than "all" because there are probably some low level device drivers written in assembly. I can't find out in which language / languages the code that runs on the Russian side was written. I wouldn't be surprised if that also ...


39

In many of the early probes, up until close to Apollo there were not true computers on space probes. All computing was done on earth and the onboard electronics was known as a sequencer, for Pioneer 10 it had 222 possible commands 5 of which could be readied. Early Venus probes sent data by mechanically switching different sensors to modulate a CW ...


37

Although the Space Shuttle flight software was of outstanding quality, it's completely incorrect to think that there was only one bug. There were many known bugs in the flight software (FSW). Here are three I can think of off the top of my head that impacted missions. The flight campaign of the Shuttle program started out with an embarrassing software bug! ...


33

In 2015, the last original Voyager engineer still on the project, retired. NASA specified that his replacement would have to know FORTRAN. The software was updated regularly after launch: The last true software overhaul was in 1990, after the 1989 Neptune encounter and at the beginning of the interstellar mission. "The flight software was basically ...


27

(originally answered to "Samples of old guidance software") The first that comes to mind is the Github repository of the Apollo 11 Guidance Computer (AGC). The repository has both Command Module and Lunar Module software, but note that it is transcribed from hardcopies, so it might not be fully complete (yet). You can find a simulator of the AGC on the ...


18

I remember taking Computer Science courses in the late 90s. The professor of CS explained to our meager group of CS majors that he was going to teach us C, rather than COBOL or Ada, because it would be more useful in general. At the time, they were the major programming languages colleges were teaching back in the day (every major university in the area ...


15

There are a lot of programs involved in running the ISS. The exact details are difficult to discern, a lot of NASA's software is available via this site, with some restrictions, but here is what I can find. Astrobee- Runs the "Robotic Operating System" Geolocation via a Python Library Some elements use LabView I'm sure there are many other languages, ...


15

I am a software developer and with all the resources available today I cannot fathom where one could even start such an endeavour. There are plenty of computer-based systems to this day that have to live with such limitations. There are plenty of embedded systems where 2^16 (65536) bytes of memory remains a luxury. After all, on machines that use 16 bit ...


14

From the website: AdaCore tools can be used to meet verification objectives including coding standard compliance, code accuracy (prevention of errors such as buffer overrun, integer overflow, and references to uninitialized variables), and structural coverage analysis up to MC/DC. Specialized high-assurance run-time libraries, including one that ...


13

The Voyager spacecraft are not reprogrammed anymore, so the language in which they are programmed is largely irrelevant. The uplink is only 16 bits/second, just enough to send (simple) commands. How these commands are generated is irrelevant to the spacecraft. Any language that can generate a sequence of bits theoretically suffices. This pdf document ...


12

NASA's standard desktop office computer configuration is Windows 10 with Microsoft Office. This software is provided agency-wide by the NASA Shared Services Center (NSSC). Here is an excerpt from the NASA-STD-2804 Fall 2017 MINIMUM INTEROPERABILITY SOFTWARE SUITE requirements document (the latest version available from the NSSC website to the general public)...


10

I didn't work on Voyager, but can tell you that deep-space missions tend to retain the original ground hardware, software, language, and build environment, both for continuity/safety as well as budget reasons. There may be little or no funding to continue the mission; it may even fall to outright volunteers. It's amazing and sad to me how much we depend on ...


9

The biggest single change in the Houston Mission Control Center (MCC) occurred in the late 1990s. This was the change from a mainframe based system architecture to a workstation based system with a client/server architecture. The project was led by John Muratore and it's discussed at some length in his oral history. Several of the papers in the Control ...


7

This is a little bit of a cop-out answer, but I have some pertinent experience. There are GPUs in use on the ISS ... in the laptops. The astronauts on the ISS receive briefings before EVAs in a "3D walkthrough" form. This uses NASA's EDGE renderer and a super-accurate 10mil poly model of the exterior of the Station. They also stay up to date on SAFER ...


5

Satellite control systems are usually created ad-hoc or based on existing in-house systems. For example, ESA reuses its own SCOS-2000 infrastructure. In Europe, there are many companies that develop SCS like SSTL, GMV, SCISYS, DEIMOS, TERMA, and many more. There are also some open source systems like Cosmos and yamcs. In all the cases, you will have to ...


5

What I have seen of the code the Russians deliver to the Space Station trainer is written in C. These are the same engineers from Energia that write the Service Module software so I'm guessing they also use C. If the C is generated from DRAKON I don't know. Lua is also used in the Russian simulator.


5

Of all the possible languages to choose from, what are the aspects of Ada that make it NASA's choice for such a critical application? What might be the weighting between legacy reasons versus intrinsic suitability? Ada is a language designed for this very kind of situation, i.e. fault intolerant, real-time and (often) embedded systems used to control ...


5

As the author of 1 of the posts you reference about the number of bugs found, you've misunderstood the words. Please re-read them. On the STS, a "bug" is when the software did not meet the requirements. It didn't necessarily mean something bad would happen, just that the code didn't match the requirements. The developers didn't classify the bugs. For overly ...


4

I had the distinct honor of working for John Muratore on two distinct projects. One was the X-38. But before that, I worked on developing advanced software for his Real Time Data System project. The RTDS project started in 1986 when Muratore saw the archaic structure of Mission Control. The primary goal of the project was to transition from a single ...


4

NASA was (and still is) a leading organization in the field of software engineering, even before the term "software engineering" existed. The kinds of software programs developed for NASA range from one-off scripts / spreadsheets meant to yield a rough approximation to a specific engineering question to programs / scripts / spreadsheets that contain ...


4

The question assumes there is a concept of "Continuous Delivery" in space flight software. There is not. The required product assurance processes do not allow it. I'll consider ECSS standards here, as those are what I have experience with. Here you can find an introduction on the applicable software standards. ECSS defines 4 criticality levels of space ...


3

Big organisations have big cracks for things to fall down. NASA has the additional problems of: There not being much precedence for most of the things they do. They only getting one shot at it most of the time. In such case the big ticket items, are typically well taken care of. If it's clear what the question is and there is the potential for get it wrong ...


3

In the space industry there is a great need for software engineers of all backgrounds and interests. I did a couple of internships at NASA and now work at a private space company. Through these experiences I got to work on autonomous software for rocket tests using Matlab, deep learning for virtual reality using Python & Unreal Engine, and now flight ...


3

The Jon McBride Software Testing and Research Lab (JSTAR) Team / Independent Test Capability (ITC) Team both created NOS3 and proposed/built/coded Simulation-to-Flight 1. The stf1.com website has recently been updated to include a NOS3 section since the software has recently been released through NASA's Open Source release process. The link for NOS3 is ...


3

The way it was implemented in the ICBM world was that you had six fellows sitting around a table designing the mathematical routines and overall architecture, the program component's detailed coding, and the computer hardware all at the same time. Five lines of code per day was considered a good day's work. Most of the time was spent arguing about whether to ...


3

I doubt such code exists, intact. The code you are asking for, 1970s or earlier, was written in FORTRAN IV (or earlier), and was highly tuned to work efficiently on one type of computer, specifically, the type of computer the developers of said software happened to use. FORTRAN IV code is in ALL_CAPS and is (nearly) flush left, nearly because columns 1 to 5 ...


3

Just as a note - I took the advice in the comments (thanks to @uhoh and @Mefitico) and did a little research onto this outside of SE, since posting a very broad question can lead to long winded and listed answers. Found a couple of great resources, but this question actually gave me pretty much exactly what I was looking for, in case anyone comes across ...


3

Google Maps Moon likely uses a Simple Cylindrical projection for storing their map data. This is fine for the majority of the globe, but there are problems at the poles. Here are a few reasons why imagery of the poles is problematic: The data is prone to discontinuities because it has the entire top or bottom edge of the rectangular projection converging on ...


Only top voted, non community-wiki answers of a minimum length are eligible