Posted on 10/13/2011 9:00:58 PM PDT by budj
He and I are saying the same things, because it's true.
MISRA C is a set of rules, nothing more or less. It addresses areas of C programming that tend to confuse the hoopleheads, and it disallows use of certain standard C libraries and functions that tend to be programmer error prone.
The bottom line is that many of these whiz bang language compilers, runtimes, and interpreters are written in C, and are most likely running on OSes written in C or it's derivatives.
Guys, please take a look at this one-page document I put together a few years ago when I was trying to get my organization to consider Ada:
http://russp.us/Ada-recommend.pdf
If you read it, you will find that the DoD, ARINC (airline standards organization), NASA, and European railways all explicitly recommend against using C for safety-critical systems, and they do so in OFFICIAL DOCUMENTS. These statements are not just some off-hand remarks. They are the result of careful analysis by software engineering experts.
Yes, C may be the best choice for small embedded applications, but that’s not what I’m talking about here.
You guys may be fabulous programmers, but that does not mean you know which languages are best for safety-critical systems. I’ll bet you’d be even better programmers if you upgraded to a modern language!
“The bottom line is that many of these whiz bang language compilers, runtimes, and interpreters are written in C, and are most likely running on OSes written in C or it’s derivatives.”
Scala is certainly not written in C. Unix and Linux are, but I already stipulated that C is great for operating systems.
Yeah, I did find all of that in the interim. It wasn't hiding. ;-D
Scala won't work for me since I do operating systems, communications stacks, video stream management, and so on. These aren't small projects by any stretch of the imagination; however, they are expensive to develop because of the pitfalls faced by 'c' language programmers. We have to employ magicians and fight "brace" or "editor" wars. The 'c' language is a cost effective alternative to assembler. If we weren't able to use 'c' we'd have to use assembler. Absolutely NONE of the languages you prefer can handle CPU registers, peripheral control and I/O registers, memory cache controllers, PCI controllers, SCSI interfaces, ADC/DAC interfaces, or any such hardware/software interface directly. Applications languages rely entirely on operating systems that are ALWAYS written in 'c' or assembler.
That is my problem domain, and has been my entire career. I like it, and I am pretty good at it. It is really difficult to find software people these days who can actually bring up a new board and then get some sort of operating system running on it. The young ones are really quite clueless about that aspect of software; and, that is a crying shame.
(Me? I use the Whitesmith indention rules.)
Can you show me a sample of a Scala board support package upon which your system boots up? How about setting up a graphics adapter? Interrupt handler for a serial port? How about the "sandbox" system that runs your compiler's p-code? I'm talking about that code that "hits the metal" and "tickles the registers".
It is not possible to run ANY of those languages without some assembler or 'c' code on the machine. If you can't use physical addresses, you can't control the hardware. So, even life-safety applications contain a great deal of code written in 'c' or assembler.
We do KNOW which languages are best for writing life-safety components at the "high-level" application layer. We aren't ignorant of those languages; and, some of us have to provide the low-level internals those languages require in order to be hosted on the systems. We also know which languages are best for writing the operating systems that also have to be life-safe and fail-safe. The OS is either 'c' or assembler; and, they do have to be safety certified when used in such an application. A lot of that is bug tracking documentation, records to show which off-the-shelf software components were used in the system, test records from carefully crafted test suites, and so on. We do know how to fabricate life-safe equipment, and we have to work a lot harder to make it so. I will stay in my domain by CHOICE because I don't like the alternatives.
I get to be clever and dart about on the narrow trails. High-level coders get to march in step on the big flat roads.
Ditto (except I do Allman/ANSI style indenting)
OK, so you guys do low-level programming. I know next to nothing about that, but I figured C was the language for that.
Scala runs on the JVM. I don’t know off hand which langauge that is written in. Hey, as I said, I’m an aeronautical engineer.
You use Whitesmith? Hey, so do I! It’s the right way to indent without clutter!
Hey! We do share a common religion! All other issues are just a matter of context. ;-D
...aeronautical engineer...
That is just awesome! You guys design and make the most wonderful playthings. You have triggered a flood of jealous rage within me.
I love the WWII war-birds with a passion! The new war-birds are true dream machines. Keep up the good work. Guys like grunt03 will try hard to keep the guts running. It would help a lot if you'd give us a ride from time to time.
Assembly is the lowest level compiled language, C is just above that (and can also include inline asm). In my experience, C creates almost as tight an exectable as assembler, and I now only write asm when I have to.
Scala runs on the JVM. I dont know off hand which langauge that is written in.
Sun JVM was originally written in C. There are other JVM flavors written in C++. Most 'native' functions in JAVA libs are written in C/C++.
No doubt it's a more exciting field than ours. My hat's off to you RussP.
My Dad was in Naval Aviation, and I've had a love for planes as far back as I can remember. I've flown planes, but am not a pilot. Combat Flight Sim 3, Il-2, and MS FlightSim is as real as it gets for me any more.
I wish it were so exciting. I have been working in ATC for several years now. It’s “exciting” in its own way, I guess, but our main objective is really to avoid too much excitement...if you get my drift.
Wow! When I was at Stony Brook in the mid 80s, CS-101 was one of the worst "weed-out" classes at the school. Well over 200 started the course, fewer than 75 passed. We didn't even touch a computer terminal (VT100 connected to a VAX 750 running BSD) until 3 weeks before the end of the semester. Add an electrical engineering course you had to get special permission to take, engineering physics and (real) calculus for freshman, and you had a pretty serious curriculum. 4 years would get you a BS in CS. If you were willing to stay about another year or year and a half, you'd wind up with a BS in CS, another in EE, plus a minor in math.
As I recall, AT&T used to hire more electrical engineers from Stony Brook than from nearly any other college.
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.