Software Interface Standards

Jim Mooney
Dept. of Statistics and Computer Science
West Virginia University

Mar. 4

This is an annotated listing of formal standards which define elements of the interface between software units or between software and hardware. Most domain-specific standards are omitted. Only approved standards are listed.

IEEE Standards

Standards in this section were developed by the Institute of Electrical and Electronic Engineers (IEEE). Most were developed under the direction of the IEEE Computer Society. The IEEE is an Accredited Standards Committee for the American National Standards Institute (ANSI), and all standards in this list are ANSI standards as well, unless otherwise noted.

IEEE 694-1994: Microprocessor Assembly Language.

Defines a common assembly language intended to be used for a variety of microprocessor architectures.

IEEE 695-1990: Microprocessor Relocatable Software Formats.

Defines a common format for object files in a small computer environment. The purpose is to enable program construction from modules written in different languages and processed by different compilers.

IEEE 754-1990: Binary Floating Point Arithmetic.

Defines binary formats and basic operations for floating-point arithmetic. This is commonly referred to as "IEEE floating point" and has become widely adopted in new system implementations.

IEEE 770-1983 (ANSI X3.97): Pascal Computer Programming Language.

Provides a formal specification for Pascal, the first language standardized by IEEE.

IEEE 854-1994: Radix and Format Independent Floating Point Arithmetic.

Specifies alternate floating point arithmetic formats and operations for implementations which do not necessarily use base 2.

IEEE 855-1990: Microprocessor Operating System Interfaces (MOSI).

Defines a standard OS/program interface (API) for small computers, commonly known as MOSI. Compared to the better-known POSIX (1003), MOSI is less detailed but spans a broader range of target systems. Includes language bindings for FORTRAN, C, Ada, Pascal, and others as appendices. Also ISO DIS 11685.2.

IEEE 1003.1-1990: POSIX Part 1: System API (Language Independent).

Definition of a standard OS/program interface, commonly known as POSIX, for UNIX-like systems. Includes language bindings for C only. Also ISO 9945-1.

IEEE 1003.1b-1993: Real-Time and Related System API

Specifies additions to the POSIX API to support real-time requirements.

IEEE 1003.2-1992: Shell and Utility Application Interface

Defines functionality for a UNIX-like shell (command handler) and associated tools.

IEEE 1003.9-1992: Fortran 77 Language Bindings to POSIX

Specifies the syntax for accessing the functionality of a POSIX interface using the FORTRAN language.

IEEE 1224-1993: OSI Abstract Data Manipulation API

Specifies an API for Abstract Data Manipulation using the OSI (7-layer) Communication Systems model.

IEEE 1224.1: OSI X-400 Based Electronic Messaging API

Specifies an API for Electronic Messaging Services using the OSI model.

IEEE 1224.2-1993: Information Technology: Directory Services API

Specifies an API for Directory Services using the OSI model.

IEEE 1275-1994: Boot Firmware

Defines elements of program functionality to be used in boot (startup) programs in read-only memory.

IEEE 1327-1993: OSI Abstract Data Manipulation C Language Binding

Specifies a C Language Binding for IEEE 1224.

IEEE 1224.1: Information Technology: X-400 Based Electronic Messaging C Language Binding

Specifies a C Language Binding for IEEE 1224.1.

IEEE 1224.2-1993: Directory Services C Language Binding

Specifies a C Language Binding for IEEE 1224.2.

IEEE 1596-1992: Scalable Coherent Interface

Specifies a physical interconnection scheme for multiprocessors, including aspects which affect their programming.

ANSI Standards

Computer-related (Information Processing) standards sponsored by the American National Standards Institute (ANSI) are developed primarily by the Accredited Standards Committee X3. These standards are designated X3.nnn.

ANSI X3.4-1986: 7-bit American National Standard Code for Information Interchange

Base definition for the widely-used character code known as ASCII.

ANSI X3.9-1978(R1989): Programming Language FORTRAN

Third revision of the first and most venerable programming language standard. The 1978 version, called FORTRAN-77, is widely implemented. The 1989 version, called FORTRAN-90, is not yet as popular.

ANSI X3.23-1985: Programming Language COBOL

The widely-used business-oriented language.

ANSI X3.23a-1989, Programming Languages--Intrinsic Function Module for COBOL.

Extensions to the COBOL standard.

ANSI X3.28-1976(R1986): Procedures for the Use of the Communications Control Characters of American National Standards Code for Information Interchange in Specified Data Communication Links

Provides interpretations for the ASCII communication control characters.

ANSI X3.30-1985(R1991): Representation for Calendar Date and Ordinal Date for Information Interchange

Specifies how date information should be represented for data exchange.

ANSI X3.41-1990: Code Extension Techniques for Use with the 7-byte Coded Character Set of ASCII

Specifies how the ASCII code may be extended.

ANSI X3.43-1986: Representations of Local Time of Day for Information Interchange

Specifies how time information should be represented for information interchange.

ANSI X3.51-1986: Representations of Universal Time, Local Time Differentials, and United States Time Zone References for Information Interchange

Specifies additional time-related information representations.

ANSI X3.53-1976(R1987): Programming Language PL/I.

Specification for the PL/I language, used primarily on IBM systems.

ANSI X3.64-1979(R1990): Additional Controls for Use with the American National Standard Code for Information Interchange

Specifies a large collection of ASCII extensions to control display and printer functionality. In practice a small set of screen editing and cursor positioning codes have been widely adapted; these are supported by so-called ANSI terminals.

ANSI X3.74-1987: Programming Language PL/I, General Purpose Subset.

A stripped-down version of the big language.

ANSI X3.113-1987: Programming Language Full BASIC

Specification for the BASIC programming language, which has existed in a vast range of different versions.

ANSI X3.113a-1989: Modules and Individual Character Input for Full Basic

Some extensions to X3.113.

ANSI X3.124-1985: Graphical Kernel System (GKS) Functional Description

Specifications for a hardware-independent method for specifying graphic elements.

ANSI X3.124.1-1985: Graphical Kernel System (GKS) FORTRAN Binding

How to use GKS with the FORTRAN language.

ANSI X3.124.2-1988: Graphical Kernel System (GKS) Pascal Binding

How to use GKS with the Pascal language.

ANSI X3.124.3-1989: Graphical Kernel System (GKS) Ada Binding

How to use GKS with the Ada language.

ANSI X3.159-1989: Programming Language C

Formal Specifications for the C Language (ANSI C).

ISO/IEC Standards

Information processing standards under the sponsorship of The International Organization for Standardization (ISO) have generally been developed by the Technical Committee TC97. Standards related to microprocessors under the sponsorship of IEC have been developed by the Technical subcommittee SC47B. Since about 1990 information processing standards for both organizations have been managed by the joint technical committee JTC1.

ISO 646-1983: ISO 7-bit coded character set for information interchange

ISO version of the ASCII character set with (alas) minor differences

ISO 1538-1984: Programming Language ALGOL 60

One language that was never standardized in the U.S.

ISO 2022-1982: ISO 7-bit and 8-bit coded character sets - Code extension techniques

Techniques for extending the codes of ISO 646 and ISO 4873.

ISO 4873-1979: 8-bit coded character set for information interchange

An extended version of ISO 646 which encodes 8 bits to provide an additional 128 codes.

ISO 6429-1983: ISO 7-bit and 8-bit coded character sets -- additional control functions for character-imaging devices

Extended display and printer controls for ISO 646 and ISO 4873.

ISO 7498-1984: Open Systems Interconnection--Basic Reference Model

The original definition of the famous 7-layer model for communications

Other

ANSI/MIL-STD-1815A-1983/ISO 8652-1987: Programming Language Ada

The official language of the U.S. Dept. of Defense, standardized by everybody.