Fortran portability via models and tools
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.
Unable to display preview. Download preview PDF.
- 1.W. S. Brown Software Portability Report of the 1969 NATO Conference on Software Engineering Techniques Ed. J. N. Buxton and B. Randell NATO Science Committee, 1970, pages 80–84.Google Scholar
- 2.R. E. Griswold, J. F. Poage and I. P. Polonsky The SNOBOL4 Programming Language Prentice-Hall, Englewood Cliffs, N.J., 1971.Google Scholar
- 3.R. E. Griswold The Macro Implementation of SNOBOL4 — A Case Study of Machine-Independent Software Development W. H. Freeman, San Francisco, 1972.Google Scholar
- 4.W. S. Brown Altran User's Manual, Third Edition Bell Laboratories, Murray Hill, N.J., December 1973.Google Scholar
- 5.A. D. Hall Altran Installation and Maintenance Manual, Second Edition Bell Laboratories, Murray Hill, N.J., September 1972.Google Scholar
- 6.S. I. Feldman ALTRAN Reference Card Bell Laboratories, Murray Hill, N.J., April 1975.Google Scholar
- 7.P. A. Fox, A. D. Hall and N. L. Schryer The PORT Mathematical Subroutine Library Computing Science Technical Report #47 Bell Laboratories, Murray Hill, N.J., August 1976.Google Scholar
- 8.P. A. Fox PORT Mathematical Subroutine Library User's Manual Bell Laboratories, Murray Hill, N.J., April 1976.Google Scholar
- 11.B. W. Kernighan RATFOR — A Preprocessor for a Rational FORTRAN Software Practice and Experience 5, pp. 395–406 (October 1975).Google Scholar
- 12.A. D. Hall The M6 Macro Processor Computing Science Technical Report #2 Bell Laboratories, Murray Hill, N.J., April 1972, 13 pages.Google Scholar
- 13.A. D. Hall SEDIT — A Source Program Editor Computing Science Technical Report #16 Bell Laboratories, Murray Hill, N.J., May 1974, 9 pages.Google Scholar
- 14.A. D. Hall FDS: A FORTRAN Debugging System Overview and Installer's Guide Computing Science Technical Report #29 Bell Laboratories, Murray Hill, N.J., April 1975, 38 pages.Google Scholar