Customer Service:
Mon - Fri: 8:30 am - 6 pm EST

Environments and System Software Interfaces

This category mainly focuses on the languages of C, C++, Extended APL and others, delving into specific topics for each programming language.


ISO/IEC TS 17961:2013

Information technology - Programming languages, their environments and system software interfaces - C secure coding rules

ISO/IEC TS 17961:2013 specifies

  • rules for secure coding in the C programming language, and
  • code examples.

ISO/IEC TS 17961:2013 does not specify

  • the mechanism by which these rules are enforced, or
  • any particular coding style to be enforced.

Each rule in this Technical Specification is accompanied by code examples. Two distinct kinds of examples are provided:

  • noncompliant examples demonstrating language constructs that have weaknesses with potentially exploitable security implications; such examples are expected to elicit a diagnostic from a conforming analyzer for the affected language construct; and
  • compliant examples are expected not to elicit a diagnostic.


ISO/IEC TS 18661-1:2014

Information technology - Programming languages, their environments, and system software interfaces - Floating-point extensions for C - Part 1: Binary floating-point arithmetic

ISO/IEC TS 18661-1:2014 extends programming language C to support binary floating-point arithmetic conforming to ISO/IEC/IEEE 60559:2011. It covers all requirements of IEC 60559 as they pertain to C floating types that use IEC 60559 binary formats.

ISO/IEC TS 18661-1:2014 does not cover decimal floating-point arithmetic, nor does it cover most optional features of IEC 60559.

ISO/IEC TS 18661-1:2014 is primarily an update to IEC 9899:2011 (C11), normative Annex F (IEC 60559 floating-point arithmetic). However, it proposes that the new interfaces that are suitable for general implementations be added in the Library clauses of C11. Also it includes a few auxiliary changes in C11 where the specification is problematic for IEC 60559 support.


ISO/IEC TS 18661-2:2015

Information Technology - Programming languages, their environments, and system software interfaces - Floating-point extensions for C - Part 2: Decimal floating-point arithmetic

ISO/IEC/TS 18661-2:2015 extends programming language C as specified in ISO/IEC 9899:2011, (C11) with changes specified in ISO/IEC/TS 18661-1, to support decimal floating-point arithmetic conforming to ISO/IEC/IEEE 60559:2011. It covers all requirements of IEC 60559 as they pertain to C decimal floating types.

ISO/IEC/TS 18661-2:2015 does not cover binary floating-point arithmetic (which is covered in ISO/IEC/TS 18661-1), nor does it cover most optional features of IEC 60559.


ISO/IEC TS 18661-3:2015

Information Technology - Programming languages, their environments, and system software interfaces - Floating-point extensions for C - Part 3: Interchange and extended types

ISO/IEC TS 18661-3:2015 extends programming language C to include types with the arithmetic interchange and extended floating-¡‐point formats specified in ISO/IEC/IEEE 60559:2011, and to include functions that support the non-¡‐arithmetic interchange formats in that standard.




ISO/IEC 24747:2009

Information technology - Programming languages, their environments and system software interfaces - Extensions to the C Library to support mathematical special functions

ISO/IEC 24747:2009 defines extensions to the C Standard Library that is defined in the International Standard for the C programming language (ISO/IEC 9899). Unless otherwise specified, the whole of the C Standard Library is included in ISO/IEC 24747:2009 by reference.

ISO/IEC 24747:2009 defines library extensions to the C Standard Library to support Mathematical Special functions to be added to <math.h> and <tgmath.h>.


ISO/IEC 29124:2010

Information technology - Programming languages, their environments and system software interfaces - Extensions to the C++ Library to support mathematical special functions

ISO/IEC 29124:2010 specifies extensions to the C++ standard library as defined in the International Standard for the C++ programming language (ISO/IEC 14882:2003). ISO/IEC 29124:2010 specifies extensions to the C++ standard library to support mathematical special functions.


ISO/IEC 1989:2014

Information technology - Programming languages, their environments and system software interfaces - Programming language COBOL

ISO/IEC 1989:2014 specifies the syntax and semantics of COBOL. Its purpose is to promote a high degree of machine independence to permit the use of COBOL on a variety of data processing systems.

ISO/IEC 1989:2014 specifies:

  • the form of a compilation group written in COBOL;
  • the effect of compiling a compilation group;
  • the effect of executing run units;
  • the elements of the language for which a conforming implementation is required to supply a definition;
  • the elements of the language for which meaning is explicitly undefined;
  • the elements of the language that are dependent on the capabilities of the processor.

ISO/IEC 1989:2014 does not specify:

  • the means whereby a compilation group written in COBOL is compiled into code executable by a processor;
  • the time at which method, function, or program runtime modules are linked or bound to an activating statement, except that runtime binding occurs of necessity when the identification of the appropriate program or method is not known at compile time;
  • the time at which parameterized classes and interfaces are expanded;
  • the mechanism by which locales are defined and made available on a processor;
  • the form or content of error, flagging, or warning messages;
  • the form and content of listings produced during compilation, if any;
  • the form of documentation produced by an implementor of products conforming to this International Standard;
  • the sharing of resources other than files among run units.


ISO/IEC 20970:2002

Information technology - Programming languages, their environments and system software interfaces - JEFF file format

This International Standard can be used with benefits on all kinds of platform.

This International Standard's most immediate interest is for deploying portable applications on small footprint devices. This International Standard provides dramatic savings of dynamic memory and execution time without sacrificing any of the flexibility usually attached to the use of non-pre-linked portable code.

This International Standard is especially important to provide a complete solution to execute portable programs of which code size is bigger than the available dynamic memory.

This International Standard is also very important when fast reactivity of programs is important. By avoiding the extra-processing related to loading into dynamic memory and formatting classes at runtime, this International Standard provides a complete answer to the problem of class-loading slow-down.

These benefits are particularly interesting for small devices supporting financial applications. Such applications are often complex and relying on code of significant size, while the pressure of the market often imposes to these devices to be of a low price and, consequently, to be very small footprint platforms. In addition, to not impose unacceptable delays to customers, it is important these applications do not waste time in loading classes into dynamic memory when they are launched but, on the contrary, to be immediately actively processing the transaction with no delay. When using smart cards, there are also some loose real-time constraints that are better handled if it can be granted that no temporary freezing of processing can occur due to class loading.

This International Standard can also be of great benefit for devices dealing with real-time applications. In this case, avoiding the delays due to class loading can play an important role to satisfy real-time constraints.


ISO/IEC 22275:2018

Information technology - Programming languages, their environments, and system software interfaces - ECMAScript« Specification Suite

This International Standard defines the ECMAScript Specification Suite containing the ECMAScript programming language and its required and optional built-in libraries. It defines all the necessary components (both normative and informative) that is needed to implement this suite of standards. This suite does not change if one or more components are updated by a new standard edition. The Suite changes only when new components are added and / or old components are removed from it.


ISO/IEC TR 14369:2018

Information technology - Programming languages, their environments and system software interfaces - Guidelines for the preparation of language-independent service specifications (LISS)

ISO/IEC TR 14369:2018 provides guidelines to those concerned with developing specifications of information technology services and their interfaces intended for use by clients of the services, in particular by external applications that do not necessarily all share the environment and assumptions of one particular programming language. The guidelines do not directly or fully cover all aspects of service or interface specifications, but they do cover those aspects required to achieve language independence, i.e. required to make a specification neutral with respect to the language environment from which the service is invoked. The guidelines are primarily concerned with the interface between the service and the external applications making use of the service, including the special case where the service itself is already specified in a language-dependent way but needs to be invoked from environments of other languages. Language bindings, already addressed by ISO/IEC TR 10182, are dealt with by providing advice on how to use the two documents together.

ISO/IEC TR 14369:2018 provides technical guidelines, rather than organizational or administrative guidelines for the management of the development process, though in some cases the technical guidelines can have organizational or administrative implications.


ISO/IEC TR 24731-1:2007

Information technology - Programming languages, their environments and system software interfaces - Extensions to the C library - Part 1: Bounds-checking interfaces

ISO/IEC TR 24731-1:2007 provides alternative functions for the C Library (as defined in ISO/IEC 9899:1999) that promote safer, more secure programming. The functions verify that output buffers are large enough for the intended result, and return a failure indicator if they are not. Optionally, failing functions call a "runtime-constraint handler" to report the error. Data is never written past the end of an array. All string results are null terminated. In addition, the functions in ISO/IEC TR 24731-1:2007 are re-entrant: they never return pointers to static objects owned by the function.

ISO/IEC TR 24731-1:2007 also contains functions that address insecurities with the C input-output facilities.


ISO/IEC TR 24731-2:2010

Information technology - Programming languages, their environments and system software interfaces - Extensions to the C library - Part 2: Dynamic Allocation Functions

ISO/IEC TR 24731 provides alternative functions for the C library that promote safer, more secure programming. ISO/IEC TR 24731-1 provides simple replacement functions for the library functions of ISO/IEC 9899:1999 that provide bounds checking. Those functions can be used as simple replacements for the original library functions in legacy code. ISO/IEC TR 24731-2:2010 presents replacements for many of these functions that use dynamically allocated memory to ensure that buffer overflow does not occur.


ISO/IEC TR 24732:2009

Information technology - Programming languages, their environments and system software interfaces - Extension for the programming language C to support decimal floating-point arithmetic

ISO/IEC TR 24732:2009 specifies an extension to the programming language C, specified by the International Standard ISO/IEC 9899:1999. The extension provides support for decimal floating-point arithmetic that is intended to be consistent with the specification in IEEE 754-2008. Any conflict between the requirements described here and that specification is unintentional. ISO/IEC TR 24732:2009 defers to IEEE 754-2008.

The binary floating-point arithmetic as specified in IEEE 754-2008 is not considered in ISO/IEC TR 24732:2009.


ISO/IEC 13751:2001

Information technology -- Programming languages, their environments and system software interfaces -- Programming language Extended APL

This International Standard defines the programming language APL and the environment in which APL programs are executed. Its purpose is to facilitate interchange and promote portability of APL programs and programming skills. This International Standard specifies the syntax and semantics of APL programs and the characteristics of the environment in which APL programs are executed.

It also specifies requirements for conformance to this International Standard, including the publication of values and characteristics of implementation properties so that conforming implementations can be meaningfully compared.

This International Standard does not specify:

  • implementation properties that are likely to vary with the particular equipment or operating system used;
  • required values for implementation limits such as APL workspace size or numeric precision;
  • the data structures used to represent APL objects;
  • the facilities available through shared variables.


ISO/IEC 13816:2007

Information technology - Programming languages, their environments and system software interfaces - Programming language ISLISP

ISO/IEC 13816:2007 specifies syntax and semantics of the computer programming language ISLisp by specifying requirements for a conforming ISLisp processor and a conforming ISLisp text. The design goals for ISLisp are the following.

  1. ISLisp shall be compatible with existing Lisp dialects where feasible.
  2. ISLisp shall have as a primary goal to provide basic functionality.
  3. ISLisp shall be object-oriented.
  4. ISLisp shall be designed with extensibility in mind.
  5. ISLisp shall give priority to industrial needs over academic needs.
  6. ISLisp shall promote efficient implementations and applications.

ISO/IEC 13816:2007 does not specify:

  • the size or complexity of an ISLisp text that exceeds the capacity of any specific data processing system or the capacity of a particular processor, nor the actions to be taken when the corresponding limits are exceeded;
  • the minimal requirements of a data processing system that is capable of supporting an implementation of a processor for ISLisp;
  • the method of preparation of an ISLisp text for execution and the method of activation of this ISLisp text, prepared for execution;
  • the typographical presentation of an ISLisp text published for human reading;
  • extensions that might or might not be provided by the implementation.


ANSI Logo

As the voice of the U.S. standards and conformity assessment system, the American National Standards Institute (ANSI) empowers its members and constituents to strengthen the U.S. marketplace position in the global economy while helping to assure the safety and health of consumers and the protection of the environment.

CUSTOMER SERVICE
NEW YORK OFFICE
ANSI HEADQUARTERS