Interesting post and thread. I'm always learning something new on this list.
My experience has been in authentication code. If login is broken,
everything is broken. Hence, there are high uptime requirements. But it
is only money, not lives at stake. Also, not embedded in a shipping
device, but running on a general purpose computer.
So, yeah, we had a stack. C++/Java are OK.
Both here and in network device code, I have seen patterns that eschew
dynamic allocation, preferring fixed object pools. When you run out, you
start dropping connections (which is actually more graceful than degrading
everyone's performance), or something similar to keep reliable service.
Point being, there is a gradation of programming techniques appropriate to
different environments.
However, I have yet to find an actual working environment that would call
for using Exceptions as normal flow control (same goes for setjmp/longjmp).
In my experience, if you find yourself reaching for "heroic" of coding
techniques, you need to rethink and regroup and come at the problem a
different way. That's how you get the 10x factors of speed
improvement. Let hardware upgrades give you the 10-20% improvements.
At 01:46 PM 3/18/2010 -0500, Greg London wrote:
> So anyone have a guess at which tools they mean? The compiler
> itself or testing and verification tools?
When you are working on a life-critical avionics (LCA) project,
everything must be certified to the same stringent requirements.
That means the compiler must be certified as strictly as
the software being compiled. Same goes for hardware. you can't
just use any old processor off the shelf for LCA.
I don't know, but I would guess that embedded coding standards may be
"liberalizing" (for lack of a better word) in response to hardware
changes. Actual CPUs, with hardware support for a stack are the norm these
day, no? Don't only very high volume, low cost mass market products (e.g.
remote controls) still use PIC controllers?
Likewise, compilers have a _lot_ more miles on them by now, so trust levels
should be improved there as well.
Ime, stack based programming is actually much simpler for us poor human
programmers to understand. I think that results in better, more reliable
running programs. Even the awful old languages (COBOL, FORTRAN) have had
proper stack support for 30 years now. Perhaps the embedded world has
joined the party.
_______________________________________________
Boston-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/boston-pm