This talk is a survey of recent Bell Labs work on FORTRAN-based software portability. Our approach is based on our experience with the ALTRAN language and system for symbolic algebra, and the PORT Library of state-of-the-art procedures for numerical mathematics.
Both ALTRAN and PORT are written in PFORT, a large and mechanically verifiable subset of ANS FORTRAN. To make PFORT programs easier to write and easier to read, we now use an extension called RATFOR and a preprocessor that translates it into PFORT. A more ambitious extension called EFL is under development.
From a theoretical viewpoint the key to all our work on software portability is a model of the computing environments in which our programs will be expected to operate. We assume a hardware-software environment that fully supports the PFORT language and is characterized by parameters (machine constants) in four basic areas: (1) logical unit numbers, (2) word size, (3) integer arithmetic, and (4) floating-point arithmetic. To demonstrate the use of this model, we discuss an algorithm by J. L. Blue for computing the Euclidean norm of a real vector. The algorithm is portable, accurate, and efficient, avoids overflow and underflow, and will be included in the next edition of PORT.