Messages in this thread | | | Date | Thu, 21 May 1998 09:20:39 -0400 (EDT) | From | "Richard B. Johnson" <> | Subject | C Standards |
| |
This would have been sent from root@chaos.analogic.com, 204.178.40.224, but that address is now being aliased by some machine that doesn't have a root account so all mail is being rejected.
Okay, Okay. I am wrong. I am wrong. I am wrong.
Background: About 8 to 10 years ago, I needed to prepare a document to support COTS (Commercial Off The Shelf) software support for some equipment and supporting software to be used by NASA/Ames. At that time, most software used by (or funded by) the US Government had to be written in ADA.
We wanted to develop and support software in the C Language. Therefore, I wrote a "Big black book" to support the project. You probably know that, with government contracts, you don't win a design review by referencing 20 to 30 texts on some subject. You need a single document. I wrote such a document by including the essential elements of 20 or more C Language texts, plus the new ANSI specifications (which had just defined 'const' and specified new prototyping standards).
At that time, the C Language had stabilized into a tool that could be relied upon to produce uniform binaries and uniform runtime behavior, which was a customer requirement. This uniformity was assured because new "ANSI" compilers used uniform code-generation standards and produced uniform runtime behavior.
Needless to say that after documenting all this stuff, I become known as an "expert".
Unfortunately times have changed. I just spent 10 hours last night trying to find rules in the new C standards that could have been used to support such a project today. We are all lucky that C is now an approved language for use in some US Government projects because, based upon the new standards, it would probably not be approved if subjected to the same reviews again today.
The new C standards seem mostly to be disclaimers for compiler design. Compilers used to be, in Dennis Richie's words, "High level assemblers". They used to be deterministic in their behavior.
What I have found in this 10 hour nightmare should scare the hell out of everybody that uses the C language in business.
The fact that one no longer is required to de-reference pointers to functions, and the fact that there is no longer a "C calling convention", the reverse of the "Pascal calling convention", should bother the hell out of anybody that makes libraries.
The fact that a compiler is now free to rearrange code in any way it wishes, should bother the hell out of anybody who writes software that controls machines.
The fact that parentheses can be ignored by the compiler except for mathematics. The list goes on.
So I was wrong. Practically everything I learned about and defended so that we would not have to write software in ADA, has been decimated. Nice job!
Further. I was not quite aware that the C Language had become a religion. I always though it was a tool. Judging from both my public and private mail, I have been attacking motherhood, apple pie, and world-wide religious ethics. The retribution has been, well, funny!
All last night my 'chaos' machine was aliased on the internet by a machine that didn't have a root account so email to root@chaos.analogic.com was rejected. I do have one or two friends that sent me the information so I could figure out what was happening. Would whoever is aliasing 204.178.40.224 please stop.
This machine is not on the linux-kernel list.
Cheers, DJ Richard B. Johnson Project Engineer Analogic Corporation Penguin : Linux version 2.1.102 on an i586 machine (66.36 BogoMips). Warning : It's hard to stay on the trailing edge of technology. MS-DOS : Program Loader Unix : Angry Operating System VAX/VMS : Obsolete Operating System Linux : Engineering tool Windows : Typewriter
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu
| |