Today my lecturer mentioned the reason why the aircraft system is programmed in assembly language is due to the program being written have less error . Is this statement true ? Because when he asked about our opinion I said assembly can create faster program thus it is a good language for real-time oriented aircraft system program . I search around google but can't seem to find an article clarifying my lecturer's statement .
2 Answers
Your lecturer's statement is provably false. The Joint Strike Fighter's control code is written in C++. The 777 from Boeing uses 99%+ ADA. The JPL uses mostly C to drive spaceships.
I'm sure there are more examples but I suspect many are proprietary or classified.
Here is a paper that goes into some detail on the subject of testing avionics software on a more general level.
I work on OBOGS, which is a component that gets plugged into various aircraft. We typically use C for the devices that fly, but looking through the historical files, there are a couple of assembly projects in there.
It's fashion, honestly. Languages rise and fall. The reasons people use one or the other vary all over the place and are mostly subjective. I find it completely plausible that someone at some point argued that assembly was the right choice for some project somewhere entirely because it would have less errors than in any other language. And he was probably right, but that's because the guy didn't know how to code in C worth a damn. By and far the best language for the job is the one you know. (And the best language for your personal growth is one you don't.)
You can objectively say that assembly is closer to the hardware, less abstracted, more direct, with more instructions to the same thing in other languages. You can even say that it's in the realm of possibility that assembly can be written to cut out overhead and be smoking fast. If you know what you're doing. But as for error-prone-ness, speed of development, readability, and the ability to cure cancer? All that depends on the ability of the programmer and what they've worked in for the last 20 years. Measurements of which projects with which language have X amount of bugs are subject to sociological factors, largely making them worthless metrics. No, it's all just so much fashion.
It's good to know what your code boils down to, so I'm going to say that it's important to learn assembly. If only a little. But I wouldn't write any avionics in it.
- 6,762
- 29
- 43