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.