Document: SC22 WG14 N906


Date of presentation of proposal:




A proposal for a new work item shall be submitted to the secretariat of the ISO/IEC joint technical committee concerned with a copy to the ISO Central Secretariat.

Presentation of the proposal - to be completed by the proposer Guidelines for proposing and justifying a new work item are given in ISO Guide 26.


Extensions for the programming language C to support embedded processors.


To define extensions to the syntax and semantics of the C language (as defined in ISO/IEC 9899:1999) that allow the development of portable C programs that make optimal use of the characteristics of processors (such as Digital Signal Processors) used in embedded systems.

Purpose and justification

In the fast growing market of embedded systems there is an increasing need to write application programs in a high-level language such as C. Basically there are two reasons for this trend: programs for embedded systems get more complex (and hence are difficult to maintain in assembly language) and the different types of embedded systems processors have a decreasing lifespan (which implies more frequent re-adapting of the applications to the new instruction set).
Various technical areas have been identified where functionality offered by processors (such as DSPs) that are used in embedded systems cannot easily be exploited by applications written in C. Examples are fixed-point operations, usage of different memory spaces, low level I/O operations and others. The current proposal addresses only a few of these technical areas; WG14 might propose further work on the other issues.
This NP proposes to establish a new project to produce a Technical Report (type 2) in which extensions to the C language are defined that allow programmers to fully exploit fixed-point operations offered by embedded processors while ensuring portability of implemented algorithms. Some other issues (like the usage of different memory spaces) will be studied; it is not yet clear whether this functionality is suitable for specification in the proposed Technical Report, or if the topic will be dealt with in a future TR (under another NP).
The main area of work will the definition of the syntax and semantics of fixed-point datatypes within the C typesystem. Both the C aspects (type specifiers, type conversions, constant definitions and the relationship with the standard C datatypes) as well as typical fixed-point arithmetic related issues will be addressed. Where possible, issues that arise from the fixed-point arithmetic (like saturation) will be formulated in a general way so that they can be applied to non fixed-point artithmetic as well. Although embedded processors typically work with binary (radix=2) fixed-point datatypes, the inclusion of decimal (radix=10) fixed-point datatypes or the inclusion of a generalized fixed-point datatype (like the Scaled datatype as defined in the Language-independent datatypes standard) will be considered. Prior art (for instance as described in WG14 N854) will be taken into account while developing the specifications.
Other technical areas that might be addressed (depending on input received) are different memory spaces and the handling of circular buffers.
The project also includes the production of the text for a Rationale document (either separate or as part of the project document).
Although the proposed extensions will be defined as 'general' (i.e., full and complete) additions to the C standard, the scope of application of the extensions is (at least at this moment) assumed to be limited to embedded processors. Hence it is not proposed to define the extensions in an Amendment to the C standard but as a Technical Report type 2, which can at a later stage, and if deemed relevant, be included in the C standard as a new part or (normative of informative) annex.

Programme of work

If the proposed new work item is approved , which of the following document(s) is (are) expected to be developed?
____ a single International Standard more than one International Standard (expected number: ........ )
____ a multi-part International Standard consisting of .......... parts
____ an amendment or amendments to the following International Standard(s) ....................................
_X__ a technical report , type 2

Relevant documents to be considered

  • ISO/IEC 9899:1999 - Programming Language C
  • ISO/IEC JTC 1/SC22 WG14 N854 - DCP-C: An extension to ISO/IEC 9899:1990
  • ISO/IEC 11404:1996 - Language-independent datatypes.
  • Cooperation and liaison

    All ISO/IEC JTC 1/SC22 Working groups that have an interest in supporting embedded applications, especially ISO/IEC JTC 1/SC22 WG21 (C++).

    Preparatory work offered with target date(s)

    A PDTR document will be ready for registration 24 months after the approval of the project by JTC 1.


    John Benito, Convener, ISO/IEC JTC 1/SC22 WG14

    Will the service of a maintenance agency or registration authority be required? .......NO.............
    - If yes, have you identified a potential candidate? ................
    - If yes, indicate name .............................................................

    Are there any known requirements for coding? ..........NO.........
    -If yes, please specify on a separate page

    Are there any known requirements for cultural and linguistic adaptability? .....NO....
    - If yes, please specify on a separate page

    Does the proposed standard concern known patented items? .......NO..........
    - If yes, please provide full information in an annex

    Comments and recommendations of the JTC 1 Secretariat - attach a separate page as an annex, if necessary

    Comments with respect to the proposal in general, and recommendations thereon:
    It is proposed to assign this new item to JTC 1/SC22 WG14

    Voting on the proposal - Each P-member of the ISO/IEC joint technical committee has an obligation to vote within the time limits laid down (normally three months after the date of circulation).

    Date of circulation:

    Closing date for voting:

    Signature of JTC 1 Secretary:
    Lisa A. Rajchel






    A Business Requirement


    A.1 Market Requirement

    Essential ___
    Desirable _X_
    Supportive ___

    See Purpose and justification above.

    A.2 Regulatory Context

    Essential ___
    Desirable ___
    Supportive ___
    Not Relevant _X_


    B. Related Work


    B.1 Completion/Maintence of current standards

    Yes ___


    B.2 Commitment to other organization

    Yes ___


    B.3 Other Source of standards

    Yes ___


    C. Technical Status


    C.1 Mature Technology

    Yes _X_

    See WG14 N854

    C.2 Prospective Technology

    Yes _X_

    See WG14 N854

    C.3 Models/Tools

    Yes ___


    D. Conformity Assessment and Interoperability


    D.1 Conformity Assessment

    Yes ___


    D.2 Interoperability

    Yes _X_

    This TR will be a self-contained specification with a binding to the C language. The intention is to position the specification in the common subset of C and C++, a binding to C++ should be straight forward

    E. Other Justification


    Notes to Proforma

    A. Business Relevance. That which identifies market place relevance in terms of what problem is being solved and or need being addressed.

    A.1. Market Requirement. When submitting a NP, the proposer shall identify the nature of the Market Requirement, assessing the extent to which it is essential, desirable or merely supportive of some other project.

    A.2 Technical Regulation. If a Regulatory requirement is deemed to exist - e.g. for an area of public concern e.g. Information Security, Data protection, potentially leading to regulatory/public interest action based on the use of this voluntary international standard - the proposer shall identify this here.

    B. Related Work. Aspects of the relationship of this NP to other areas of standardization work shall be identified in this section.

    B.1 Competition/Maintenance. If this NP is concerned with completing or maintaining existing standards, those concerned shall be identified here.

    B.2 External Commitment. Groups, bodies, or fora external to JTC1 to which a commitment has been made by JTC for cooperation and or collaboration on this NP shall be identified here.

    B.3 External Std/Specification. If other activities creating standards or specifications in this topic area are known to exist or be planned, and which might be available to JTC1 as PAS, they shall be identified here.

    C. Technical Status. The proposer shall indicate here an assessment of the extent to which the proposed standard is supported by current technology.

    C.1 Mature Technology. Indicate here the extent to which the technology is reasonably stable and ripe for standardization.

    C.2 Prospective Technology. If the NP is anticipatory in nature based on expected or forecasted need, this shall be indicated here.

    C.3 Models/Tools. If the NP relates to the creation of supportive reference models or tools, this shall be indicated here.

    D. Any other aspects of background information justifying this NP shall be indicated here.

    D. Conformity Assessment and Interoperability

    D.1 Indicate here if Conformity Assessment is relevant to your project. If so, indicate how it is addressed in your project plan.

    D.2 Indicate here if Interoperability is relevant to your project. If so, indicate how it is addressed in your project plan.