The power of the modern C programming and coding standards language comes from a number of different technical features.
The benefits of C programming and coding standards for safety-critical systems are considerable, such as:
- Low overhead — No need for a huge Java Virtual Machine or other operating system component.
- Standalone executable – This can be built with libraries linked in or an executable that uses dynamic libraries loaded at runtime. Both have their advantages and it is rare to have a language where you can pick and choose this.
- Plays well with others — There is usually a way to call C modules from another program or incorporate its API into your code.
- Suitable for real-time environments –Demanding usages where you have only so many microseconds to get the job done or the device fails. Don’t try this on an environment that requires garbage collection.
- Writing concurrent programs – It’s possible to do this successfully with C programming with Posix threads or some of the newer standardized language elements.
- Addresses devices directly — A huge proportion of device driver software is written in C because it does not require garbage collection like Java. You can address IO ports directly and even absolute memory addresses, thus there is no need at all to use Assembly Language for drivers. The importance of this cannot be overemphasized.
C Programing was created and developed by professionals to solve a problem they had in the late 1960s/early 1970s, which it turns out the same problem a lot of people have. They put in to it what they needed and left out what they did not.
But C Programming’s long-term staying power years later with surprisingly little change to the original concepts shows the designers got it right.
Want to learn more? Tonex offers C Programming and Coding Standards for Safety-Critical Systems, a 2-day course for software engineers and programmers. C Programming is widely used in the development of software for embedded systems, safety-critical and hard-real-time systems.
For more information, questions, comments, contact us.