IFIP

LANGUAGES FOR NUMERICAL SOFTWARE

Fortran

Since Fortran is the main language for numerical software, WG 2.5 has paid close attention to the evolving of Fortran into Fortran 77 and Fortran 90. Three definite proposals were elaborated (intrinsic functions, complex double precision, MAP statement) and submitted to the ANSI Fortran Standards Committee X3J3; but they came too late to be seriously considered for Fortran 77. The three original proposals were summarized in the SIGNUM Newsletter, Vol. 12 (1977, No. 1), pp. 18-20.

Our suggestions for double complex and intrinsic functions have nevertheless seen widespread use, they are available as "Functions for manipulating floating-point numbers" by John K. Reid, Report CSS 76 from the Computer Science and Systems Division, AERE Harwell (June 1979), published in the SIGNUM Newsletter, Vol. 14 (1979, No. 4), pp. 11-13 (this version has some serious typing errors), and the SIGPLAN Notices, Vol. 15 (1980, No. 6), pp. 68-76; and "Complex double precision in association with Fortran 77" by John K Reid, SIGNUM Newsletter, Vol. 15 (1980, No. 1), pp. 16-17; IMA Bulletin, Vol. 16 (1980), pp. 222-223.

After the completion of the Fortran 77 standard, major changes have occurred in the membership of the ANSI Fortran committee X3J3. The scientific community has received much better representation; two members of WG 2.5 have been members of X3J3. Brian Smith has worked extensively on "general precision" and the proposals now adopted include the ideas of the previous section. John Reid has also joined and is participating in the array subgroup. Thus more recognition of the needs of numerical mathematics were obtained in the following standards: Fortran 90, Fortran 95, and Fortran 2003.

The group is now active with the next revision of Fortran.

Ada and C

The development and revision of the languages Ada and C have also been closely watched. Individual Working Group members have been active in the "Ada/Europe Numeric Working Group" and the "Numerical C Extensions Group".

Mixed Language Programming

Several papers on mixed language programming have been published, both by group members and by others. Two workshops have been arranged, at JPL in 1984 and in Chicago in 1985. Fortran 2003 introduced a mechanism for calling C programs, a standard for the FORTRAN to C interface, see the IFIP Working Group 2.5 Page on MLP Code.

Precision Control and Arithmetic Exceptions

Work on precision control and on arithmetic exception handling have been done. Fortran 2003 has exception handling, and precision control came already with Fortran 90.

Java

The Java Grande Forum has issued its report, providing an assessment of the Java language and environment for high-end and numeric-intensive computing applications. The portion developed by the Numerics Working Group, includes specific recommendations on changes to Java to support numerical applications, as well as plans for the development of core numerical libraries in Java. The working group is seeking to represent the interests of the numerics community to Sun to aid in the evolution of Java.

See also the slides Java Numerical Performance by Ronald F. Boisvert and Roldan Pozo, as well as their performance figures in Chapter 8 of the book "Accuracy and Reliability in Scientific Computing".

LIA

The work on a standard for "Language-Independent Arithmetic" has been closely followed. Although we do not think that such a standard is useful, the final version of Part 1 has considered most of our serious objections, and is thus more acceptable to the numeric community.

We were not involved with Part 2, which includes square roots, exponentials and logarithms, trigonometric functions (including hyperbolic), various type and radix conversions (including I/O conversions), some extended precision functions (like low parts of the basic operations, high part of integer multiply), and possibly others, nor with the following parts.

The LIA documents are

ISO/IEC 10967-1:1994, Information technology -- Language independent arithmetic -- Part 1: Integer and floating point arithmetic.

ISO/IEC 10967-2:2001,Information technology -- Language independent arithmetic -- Part 2: Elementary numerical functions.

ISO/IEC 11404:1996, Information technology -- Programming languages, their environments and system software interfaces -- Language-independent datatypes.

ISO/IEC 13886:1996, Information technology -- Language-Independent Procedure Calling (LIPC).

ISO/IEC TR 14369:1999, Information technology -- Programming languages, their environments and system software interfaces -- Guidelines for the preparation of Language-Independent Service Specifications (LISS).

Working Conference

A working conference on "The relationship between numerical computation and programming languages" was organized by WG 2.5 on the 3-7 August 1981 in Boulder, Colorado, USA.


Last modified: May 29, 2014
Imprint