Print

The thinking behind C11



John Benito
Email
August 27, 2012 —  (Page 2 of 4)
3. C code can be non-portable. Although it strove to give programmers the opportunity to write truly portable programs, the committee did not want to force programmers into writing portably in order to preclude the use of C as a "high-level assembler.'' The ability to write machine-specific code is one of the strengths of C. It is this principle that largely motivates drawing the distinction between a strictly conforming program and a conforming program.

4. Avoid “quiet changes.” Any change to widespread practices that alters the meaning of existing code causes problems. Changes that cause code to be so ill-formed as to require diagnostic messages are at least easy to detect. As much as seemed possible, the committee has avoided changes that quietly alter one valid program to another with different semantics, which cause a program to work differently without notice.

5. A standard is a treaty between implementer and programmer. Some numerical limits have been added to the standard to give both implementers and programmers a better understanding of what must be provided by an implementation, of what can be expected and depended upon to exist. These limits are presented as minimum maxima (for example, lower limits placed on the values of upper limits specified by an implementation) with the understanding that any implementer is at liberty to provide higher limits than the standard mandates. Any program that takes advantage of these more-tolerant limits is not strictly conforming, however, since other implementations are at liberty to enforce the mandated limits.

6. Keep the spirit of C. There are many facets of the spirit of C, but the essence is a community sentiment of the underlying principles upon which the C language is based. For the C11 revision, there is consensus to add a new facet—f—to the original list of facets. The new spirit of C can be summarized in phrases like:

(a) Trust the programmer.
(b) Don't prevent the programmer from doing what needs to be done. (c) Keep the language small and simple.
(d) Provide only one way to do an operation.
(e) Make it fast, even if it is not guaranteed to be portable.
(f) Make support for safety and security demonstrable.



Related Search Term(s): C11

Pages 1 2 3 4 


Share this link: http://sdt.bz/36892
 
Most Read  Latest News  Resources

close
NEXT ARTICLE
C11/C++11: Building blocks for the future
C gets a standardized memory model, while C++ is now “easier to teach and learn” Read More...
 
 
 




News on Monday  more>>
Android Developer News  more>>
SharePoint Tech Report  more>>
Big Data TechReport  more>>

   
 
 

 


Download Current Issue
MAY 2013 PDF ISSUE

Need Back Issues?
DOWNLOAD HERE

Want to subscribe?