Indeed.
Most of the important numerical algorithms were obtained by thinking about a problem, writing out the algebra first, and then coding it.
Not that I ever worked on any major problem, but your comment about thinking of a problem
reminded me about something.
Back in the 70’s when I was a programmer / analysis and I ran into a problem, on several occasions
while driving home and just thinking of the problem a possible solution would pop into my mind.
That happens to me while I sleep. I wake suddenly with the solution.
Happens to me all the time too. I’m in the shower or driving or something similarly brain dead and something just occurs to me.
My theory is that my brain is still working on the problem in a background thread and surfaces at some point to become foreground.
My guess is assembly.
That’s something I can confirm it works.
However, if I don’t note it, and fall asleep again, when I wake up, I remember only there was a solution, but don’t remember the solution itself…
Same with me. If I wake at 3.00am with an answer, I need to
note it down… it will not be there at breakfast.
May be related to short term memory loss .
Good guess. It would have been my guess also, but we both would have been wrong. You got me curious, so I did a little search on the web and I found this.
“The original software for the Voyager probes was written using Fortran 5 then ported to Fortran 77, and today there is some porting in C.”
If anyone is interested in reading more about it, you can find it here.
That’s the thing with most “Advent of code” problems (from day 10 onwards or so). you can quite easily program an algorithm that will solve the test case, but you will run into huge problems, once you use the real input data, so you will have to put real thought into it.
In reality, all problems can be solved on a C64 or a ZX Spectrum with the right algorithm or you’ll need a CERN supercomputer with Terabytes of memory.
I participated twice and had to give up around day 20.
Now imagine, doing Assembler programming on Voyager 1. These guys are total cracks.
They do it in pure machine code. The people at NASA are the absolute best.
So they might initially compile it with Fortran, then operate on the binary to shift memory allocations around?
As far as I know, they write the code in Assembler and “compile” it by hand.
So what are these references to Fortran
What you are saying sounds more likely.
Maybe that reference is about some of the original code before launch?
This is very probable.
However: I didn’t get my knowledge from any official NASA source, but from a Youtube video, so it might be complete bs.
It seems the most likely scenario is they use Fortran build tools on the ground, but the stuff uploaded is , as you say,
hand crafted binary.
I believe you are correct for the patches that are being sent. The original code probably was Fortran which was compiled here on earth, but only the binary code was loaded into the space craft.
Just a side note,
Way back in the 70’s sometimes at work we would use a “Rep” card. Yes, an old 80 column card.
It was called rep which stood for replace meaning replace code and was done in binary.
It would give the hexadecimal address of the code to be replace and then the code being replaced.