C - The ISO Standard - Rationale |
|||
|
ISBN : - |
Order a printed copy of this book from Amazon --UNAVAILABLE-- |
||
![]() Cover Design - C - The ISO Standard - Rationale |
For your free electronic copy of this book please verify the numbers below. (We need to do this to make sure you're a person and not a malicious script) | ||
|
Sample Chapter From C - The ISO Standard - Rationale Copyright © ISO/IEC |
|||
IntroductionThis Rationale summarizes the deliberations of INCITS J11 (formerly X3J11 and NCITS J11) and SC22 WG14, respectively the ANSI Technical Committee and ISO/IEC JTC 1 Working Group, charged with revising the International Standard for the C programming language; and it retains much of the text of the Rationale for the original ANSI Standard (ANSI X3.159-1989, the so-called “C89”). This document has been published along with the draft Standard to assist the process of formal public review. There have been several changes to the Standard already. C89 was quickly adopted as an International Standard (ISO/IEC 9899:1990, commonly called “C90”), with changes to clause and subclause numbering to conform to ISO practices. Since then, there have been two Technical Corrigenda and one Amendment, AMD1; and those three documents, together with C90 itself, compose the International Standard, (“C95”). The current C Standard was adopted in 1999 and is called “C99.” J11 represents a cross-section of the C community in the United States: it consists of about twenty or thirty members representing hardware manufacturers, vendors of compilers and other software development tools, software designers, consultants, academics, authors, applications programmers, and others. WG14’s participants are representatives of national standards bodies such as AFNOR, ANSI, BSI, DIN and DS. In this Rationale, the unqualified “Committee” refers to J11 and WG14 working together to create C99. Upon publication of the new Standard, the primary role of the Committee will be to offer interpretations of the Standard. It will consider and respond to all correspondence it receives. The Committee’s overall goal was to develop a clear, consistent, and unambiguous Standard for the C programming language which codifies the common, existing definition of C and which promotes the portability of user programs across C language environments. The original X3J11 charter clearly mandated codifying common existing practice, and the C89 Committee held fast to precedent wherever that was clear and unambiguous. The vast majority of the language defined by C89 was precisely the same as defined in Appendix A of the first edition of The C Programming Language by Brian Kernighan and Dennis Ritchie, and as was implemented in almost all C translators of the time. (That document is hereinafter referred to as K&R.) K&R was not the only source of “existing practice.” Much work had been done over the years to improve the C language by addressing its weaknesses, and the C89 Committee formalized enhancements of proven value which had become part of the various dialects of C. This practice has continued in the present Committee. Existing practice, however, has not always been consistent. Various dialects of C have approached problems in different and sometimes diametrically opposed ways. This divergence has happened for several reasons. First, K&R, which once served as the language specification for almost all C translators, is imprecise in some areas (thereby allowing divergent interpretations), and it does not address some issues (such as a complete specification of a
|
|||