1

I am C++ enthusiast and I like to design and architecture my software with latest C++ features specially with templates, but I have been struggling hard to find a way.

The compiler we use for LynxOS-DO178 RTOS with PowerPC architecture is more than decade old, with poor optimization, lack of several features, and often times just ending up in "internal compiler error". Code bloating occurs with simple template instantiations, which could be easily remove with latest compilers. All ideas and innovative improvements are simply stopped by the fact that our compiler cannot support this and that.

I believe I could get a tool chain for my cross-platform development supporting somewhat latest versions of GNU GCC/G++. But not sure if that can be ever certified for DAL A SW.

We have now C++14, approaching to C++17, still I have this question do we have anything modern yet from C++ that sees "light of sun" on a critical SW ? What are the risks, cons, etc for a flight critical SW ?

Bjarne Stroustrup recently announced core C++ guidelines, that resolves around use of modern C++11/14 and templates, but can we ever use those on Flight DAL A SW ?

Not sure if this a right platform to discuss this, if someone knows a better platform please direct me to that.

P0W
  • 119
  • 6
  • Posed a bit more generally, this might get a better reception over at ProgrammersSE. – digitgopher Oct 05 '15 at 06:19
  • Can any moderator help me to move this at Programmer Stack Exchange ? Or may be somebody should vote for moving it. Thanks – P0W Oct 05 '15 at 06:22
  • 1
    I think the question is relevant to the site. It's not just about how to encourage a business to move to new tools: it's specifically about certification requirements for aviation software. – Dan Hulme Oct 05 '15 at 07:04
  • @DanHulme but for that we already have questions: http://aviation.stackexchange.com/q/19347/1467 http://aviation.stackexchange.com/q/3406/1467 http://aviation.stackexchange.com/q/3405/1467 – Federico Oct 05 '15 at 11:29
  • @Federico Exactly, there's a history of similar questions about software certification being on-topic on this site. This one is just more specific than those questions. – Dan Hulme Oct 05 '15 at 11:56
  • Thanks for the answer/comments, but I'm interested in knowing more why till date no one has ever thought about use of modern C++, is there any risk involved. Or may even any of organization already use advance C++ features ? What are the ramifications ? I need some moderator help to tell me where to post this, I already flagged for moderator attention – P0W Oct 05 '15 at 21:12
  • For one thing, the use of modern anything in the aviation industry is rare to unheard of. Not to mention bleeding edge like you are talking about. Change upsets the system, and even though a technology may have clear benefits the industry is so risk-adverse that the status-quo takes a lot to upset, and when it does it takes years of testing (and perhaps dealing with applicable regulations) until it reaches production status and sees actual use. In general "more than a decade old" is still the front-end of a lifespan. Perhaps not exactly so for software but you get the idea. – digitgopher Oct 10 '15 at 05:07
  • 1
    Really late, but I don´t think there's a problem with C++17 as long as you test everything. But things like templates increases tests complexity, you have to test every possible instances and things like that. I bet testing template metaprogramming can become a pain. – jinawee Apr 22 '19 at 10:54

1 Answers1

4

The issue with many things in flight safety is that the status quo is well understood. Changing something introduces a whole body of unknowns, and considerable circumspection will be applied by the people charged with ensuring safety. This is why piston engines in many light planes are almost identical to those used half a century ago - they're known to work - and why there is considerable inertia when it comes to updating your software tools.

Ultimately, the only way things are likely to move is when somebody builds a case for updating the tools that shows sufficient commercial benefit to overcome the additional cost of certifying the final product.

It won't be enough to simply argue that a new compiler has this or that set of new features. You'll need to demonstrate that using the new compiler will allow you to provide a set of new features that you can't provide with the old one, and that this will lead to a tangible increase in sales.

Good luck!

  • 1
    Or a tangible decrease in development time. Features can be developed in anything that is Turing-complete; the difference between tools is in how much work it takes. – Jan Hudec Oct 05 '15 at 11:26
  • Thanks for the answer, but I'm interested in knowing more why till date no one has ever thought about use of modern C++, is there any risk involved. Or may even any of organization already use advance C++ features ? What are the ramifications ? – P0W Oct 05 '15 at 21:11